aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/ChannelService.cs9
-rw-r--r--MediaBrowser.Api/ItemUpdateService.cs5
-rw-r--r--MediaBrowser.Api/Music/AlbumsService.cs26
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs24
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs30
-rw-r--r--MediaBrowser.Api/Playback/Hls/VideoHlsService.cs30
-rw-r--r--MediaBrowser.Api/Playback/Progressive/VideoService.cs5
-rw-r--r--MediaBrowser.Api/Playback/StreamRequest.cs4
-rw-r--r--MediaBrowser.Api/Playback/StreamState.cs5
-rw-r--r--MediaBrowser.Api/SearchService.cs4
-rw-r--r--MediaBrowser.Api/UserLibrary/ArtistsService.cs21
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs2
-rw-r--r--MediaBrowser.Controller/Channels/ChannelMediaInfo.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Audio.cs24
-rw-r--r--MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs24
-rw-r--r--MediaBrowser.Controller/Providers/ItemLookupInfo.cs11
-rw-r--r--MediaBrowser.Dlna/Didl/DidlBuilder.cs10
-rw-r--r--MediaBrowser.Dlna/PlayTo/Device.cs16
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlayToController.cs79
-rw-r--r--MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs7
-rw-r--r--MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml2
-rw-r--r--MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml2
-rw-r--r--MediaBrowser.Model/ApiClient/IApiClient.cs7
-rw-r--r--MediaBrowser.Model/Channels/ChannelQuery.cs6
-rw-r--r--MediaBrowser.Model/Configuration/MetadataOptions.cs5
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs4
-rw-r--r--MediaBrowser.Model/Dlna/ConditionProcessor.cs2
-rw-r--r--MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs2
-rw-r--r--MediaBrowser.Model/Dlna/DeviceProfile.cs16
-rw-r--r--MediaBrowser.Model/Dlna/MediaFormatProfileResolver.cs48
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs10
-rw-r--r--MediaBrowser.Model/Dlna/StreamInfo.cs4
-rw-r--r--MediaBrowser.Model/Extensions/DoubleHelper.cs14
-rw-r--r--MediaBrowser.Model/Extensions/ListHelper.cs2
-rw-r--r--MediaBrowser.Model/Querying/ItemsByNameQuery.cs1
-rw-r--r--MediaBrowser.Providers/Manager/ProviderUtils.cs4
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs15
-rw-r--r--MediaBrowser.Providers/Music/AlbumMetadataService.cs2
-rw-r--r--MediaBrowser.Providers/Music/Extensions.cs4
-rw-r--r--MediaBrowser.Providers/Music/LastfmAlbumProvider.cs6
-rw-r--r--MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs5
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs6
-rw-r--r--MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs9
-rw-r--r--MediaBrowser.Server.Implementations/Dto/DtoService.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs13
-rw-r--r--MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs28
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/da.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/de.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/el.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es.json16
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/he.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/it.json84
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json7
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json28
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json22
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json28
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json24
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json18
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ar.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ca.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/cs.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/da.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/de.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/el.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_GB.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_US.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es_MX.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/fr.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/he.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/it.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/kk.json57
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ms.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nb.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nl.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json89
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ru.json69
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/sv.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/vi.json49
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json49
-rw-r--r--MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs5
-rw-r--r--MediaBrowser.WebDashboard/Api/DashboardService.cs1
-rw-r--r--MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj6
105 files changed, 1689 insertions, 630 deletions
diff --git a/MediaBrowser.Api/ChannelService.cs b/MediaBrowser.Api/ChannelService.cs
index a6407349d..d71db929f 100644
--- a/MediaBrowser.Api/ChannelService.cs
+++ b/MediaBrowser.Api/ChannelService.cs
@@ -37,6 +37,12 @@ namespace MediaBrowser.Api
[ApiMember(Name = "SupportsLatestItems", Description = "Optional. Filter by channels that support getting latest items.", IsRequired = false, DataType = "boolean", ParameterType = "query", Verb = "GET")]
public bool? SupportsLatestItems { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is favorite.
+ /// </summary>
+ /// <value><c>null</c> if [is favorite] contains no value, <c>true</c> if [is favorite]; otherwise, <c>false</c>.</value>
+ public bool? IsFavorite { get; set; }
}
[Route("/Channels/{Id}/Features", "GET", Summary = "Gets features for a channel")]
@@ -202,7 +208,8 @@ namespace MediaBrowser.Api
Limit = request.Limit,
StartIndex = request.StartIndex,
UserId = request.UserId,
- SupportsLatestItems = request.SupportsLatestItems
+ SupportsLatestItems = request.SupportsLatestItems,
+ IsFavorite = request.IsFavorite
}, CancellationToken.None).Result;
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs
index 92e6a098d..d7182d68e 100644
--- a/MediaBrowser.Api/ItemUpdateService.cs
+++ b/MediaBrowser.Api/ItemUpdateService.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Entities;
+using System.Collections.Generic;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
@@ -209,7 +210,7 @@ namespace MediaBrowser.Api
if (song != null)
{
song.Album = request.Album;
- song.AlbumArtist = request.AlbumArtist;
+ song.AlbumArtists = string.IsNullOrWhiteSpace(request.AlbumArtist) ? new List<string>() : new List<string> { request.AlbumArtist };
song.Artists = request.Artists.ToList();
}
diff --git a/MediaBrowser.Api/Music/AlbumsService.cs b/MediaBrowser.Api/Music/AlbumsService.cs
index d8abf81ba..0732c951a 100644
--- a/MediaBrowser.Api/Music/AlbumsService.cs
+++ b/MediaBrowser.Api/Music/AlbumsService.cs
@@ -76,35 +76,13 @@ namespace MediaBrowser.Api.Music
var artists1 = album1.GetRecursiveChildren()
.OfType<Audio>()
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
+ .SelectMany(i => i.AllArtists)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();
var artists2 = album2.GetRecursiveChildren()
.OfType<Audio>()
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
+ .SelectMany(i => i.AllArtists)
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index b6e77188b..dd3351a93 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1221,7 +1221,7 @@ namespace MediaBrowser.Api.Playback
{
if (videoRequest != null)
{
- videoRequest.MaxFramerate = double.Parse(val, UsCulture);
+ videoRequest.MaxFramerate = float.Parse(val, UsCulture);
}
}
else if (i == 12)
@@ -1509,8 +1509,6 @@ namespace MediaBrowser.Api.Playback
state.OutputContainer = (container ?? string.Empty).TrimStart('.');
- ApplyDeviceProfileSettings(state);
-
state.OutputAudioBitrate = GetAudioBitrateParam(state.Request, state.AudioStream);
state.OutputAudioSampleRate = request.AudioSampleRate;
@@ -1522,7 +1520,12 @@ namespace MediaBrowser.Api.Playback
{
state.OutputVideoCodec = GetVideoCodec(videoRequest);
state.OutputVideoBitrate = GetVideoBitrateParamValue(state.VideoRequest, state.VideoStream);
+ }
+
+ ApplyDeviceProfileSettings(state);
+ if (videoRequest != null)
+ {
if (state.VideoStream != null && CanStreamCopyVideo(videoRequest, state.VideoStream))
{
state.OutputVideoCodec = "copy";
@@ -1952,21 +1955,6 @@ namespace MediaBrowser.Api.Playback
inputModifier += " -fflags genpts";
}
- if (!string.IsNullOrEmpty(state.InputFormat))
- {
- inputModifier += " -f " + state.InputFormat;
- }
-
- if (!string.IsNullOrEmpty(state.InputVideoCodec))
- {
- inputModifier += " -vcodec " + state.InputVideoCodec;
- }
-
- if (!string.IsNullOrEmpty(state.InputAudioCodec))
- {
- inputModifier += " -acodec " + state.InputAudioCodec;
- }
-
if (!string.IsNullOrEmpty(state.InputAudioSync))
{
inputModifier += " -async " + state.InputAudioSync;
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index aa39b8c9d..352cbf365 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -282,27 +282,22 @@ namespace MediaBrowser.Api.Playback.Hls
var args = "-codec:a:0 " + codec;
- if (state.AudioStream != null)
- {
- var channels = state.OutputAudioChannels;
-
- if (channels.HasValue)
- {
- args += " -ac " + channels.Value;
- }
-
- var bitrate = state.OutputAudioBitrate;
+ var channels = state.OutputAudioChannels;
- if (bitrate.HasValue)
- {
- args += " -ab " + bitrate.Value.ToString(UsCulture);
- }
+ if (channels.HasValue)
+ {
+ args += " -ac " + channels.Value;
+ }
- args += " " + GetAudioFilterParam(state, true);
+ var bitrate = state.OutputAudioBitrate;
- return args;
+ if (bitrate.HasValue)
+ {
+ args += " -ab " + bitrate.Value.ToString(UsCulture);
}
+ args += " " + GetAudioFilterParam(state, true);
+
return args;
}
@@ -313,7 +308,8 @@ namespace MediaBrowser.Api.Playback.Hls
// See if we can save come cpu cycles by avoiding encoding
if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
{
- return IsH264(state.VideoStream) ? "-codec:v:0 copy -bsf h264_mp4toannexb -bsf dump_extra" : "-codec:v:0 copy";
+ // TOOD: Switch to -bsf dump_extra?
+ return IsH264(state.VideoStream) ? "-codec:v:0 copy -bsf h264_mp4toannexb" : "-codec:v:0 copy";
}
var keyFrameArg = state.ReadInputAtNativeFramerate ?
diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
index e5b9d0985..2379fb005 100644
--- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
@@ -124,27 +124,22 @@ namespace MediaBrowser.Api.Playback.Hls
var args = "-codec:a:0 " + codec;
- if (state.AudioStream != null)
- {
- var channels = state.OutputAudioChannels;
-
- if (channels.HasValue)
- {
- args += " -ac " + channels.Value;
- }
+ var channels = state.OutputAudioChannels;
- var bitrate = state.OutputAudioBitrate;
-
- if (bitrate.HasValue)
- {
- args += " -ab " + bitrate.Value.ToString(UsCulture);
- }
+ if (channels.HasValue)
+ {
+ args += " -ac " + channels.Value;
+ }
- args += " " + GetAudioFilterParam(state, true);
+ var bitrate = state.OutputAudioBitrate;
- return args;
+ if (bitrate.HasValue)
+ {
+ args += " -ab " + bitrate.Value.ToString(UsCulture);
}
+ args += " " + GetAudioFilterParam(state, true);
+
return args;
}
@@ -160,7 +155,8 @@ namespace MediaBrowser.Api.Playback.Hls
// See if we can save come cpu cycles by avoiding encoding
if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
{
- return IsH264(state.VideoStream) ? "-codec:v:0 copy -bsf h264_mp4toannexb -bsf dump_extra" : "-codec:v:0 copy";
+ // TOOD: Switch to -bsf dump_extra?
+ return IsH264(state.VideoStream) ? "-codec:v:0 copy -bsf h264_mp4toannexb" : "-codec:v:0 copy";
}
var keyFrameArg = state.ReadInputAtNativeFramerate ?
diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs
index 11ae21e64..063b056b0 100644
--- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs
+++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs
@@ -140,7 +140,8 @@ namespace MediaBrowser.Api.Playback.Progressive
// See if we can save come cpu cycles by avoiding encoding
if (codec.Equals("copy", StringComparison.OrdinalIgnoreCase))
{
- return state.VideoStream != null && IsH264(state.VideoStream) ? args + " -bsf h264_mp4toannexb -bsf dump_extra" : args;
+ // TODO: Switch to -bsf dump_extra ?
+ return state.VideoStream != null && IsH264(state.VideoStream) ? args + " -bsf h264_mp4toannexb" : args;
}
const string keyFrameArg = " -force_key_frames expr:if(isnan(prev_forced_t),gte(t,.1),gte(t,prev_forced_t+5))";
@@ -149,8 +150,6 @@ namespace MediaBrowser.Api.Playback.Progressive
var hasGraphicalSubs = state.SubtitleStream != null && !state.SubtitleStream.IsTextSubtitleStream;
- var request = state.VideoRequest;
-
// Add resolution params, if specified
if (!hasGraphicalSubs)
{
diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs
index d5355783e..0e4db45e3 100644
--- a/MediaBrowser.Api/Playback/StreamRequest.cs
+++ b/MediaBrowser.Api/Playback/StreamRequest.cs
@@ -141,10 +141,10 @@ namespace MediaBrowser.Api.Playback
/// </summary>
/// <value>The framerate.</value>
[ApiMember(Name = "Framerate", Description = "Optional. A specific video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", IsRequired = false, DataType = "double", ParameterType = "query", Verb = "GET")]
- public double? Framerate { get; set; }
+ public float? Framerate { get; set; }
[ApiMember(Name = "MaxFramerate", Description = "Optional. A specific maximum video framerate to encode to, e.g. 23.976. Generally this should be omitted unless the device has specific requirements.", IsRequired = false, DataType = "double", ParameterType = "query", Verb = "GET")]
- public double? MaxFramerate { get; set; }
+ public float? MaxFramerate { get; set; }
/// <summary>
/// Gets or sets the profile.
diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs
index cf3b63efb..4737097cb 100644
--- a/MediaBrowser.Api/Playback/StreamState.cs
+++ b/MediaBrowser.Api/Playback/StreamState.cs
@@ -85,9 +85,6 @@ namespace MediaBrowser.Api.Playback
public bool DeInterlace { get; set; }
public bool ReadInputAtNativeFramerate { get; set; }
- public string InputFormat { get; set; }
- public string InputVideoCodec { get; set; }
- public string InputAudioCodec { get; set; }
public TransportStreamTimestamp InputTimestamp { get; set; }
@@ -260,7 +257,7 @@ namespace MediaBrowser.Api.Playback
/// <summary>
/// Predicts the audio sample rate that will be in the output stream
/// </summary>
- public double? TargetFramerate
+ public float? TargetFramerate
{
get
{
diff --git a/MediaBrowser.Api/SearchService.cs b/MediaBrowser.Api/SearchService.cs
index db646344a..9fcbe39eb 100644
--- a/MediaBrowser.Api/SearchService.cs
+++ b/MediaBrowser.Api/SearchService.cs
@@ -214,7 +214,7 @@ namespace MediaBrowser.Api
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToArray();
- result.AlbumArtist = songs.Select(i => i.AlbumArtist).FirstOrDefault(i => !string.IsNullOrEmpty(i));
+ result.AlbumArtist = songs.SelectMany(i => i.AlbumArtists).FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
var song = item as Audio;
@@ -222,7 +222,7 @@ namespace MediaBrowser.Api
if (song != null)
{
result.Album = song.Album;
- result.AlbumArtist = song.AlbumArtist;
+ result.AlbumArtist = song.AlbumArtists.FirstOrDefault();
result.Artists = song.Artists.ToArray();
}
diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
index 3af6da4b1..20b0f5fb1 100644
--- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
@@ -20,7 +20,7 @@ namespace MediaBrowser.Api.UserLibrary
{
}
- [Route("/AlbumArtists", "GET", Summary = "Gets all album artists from a given item, folder, or the entire library")]
+ [Route("/Artists/AlbumArtists", "GET", Summary = "Gets all album artists from a given item, folder, or the entire library")]
public class GetAlbumArtists : GetItemsByName
{
}
@@ -128,7 +128,24 @@ namespace MediaBrowser.Api.UserLibrary
{
if (request is GetAlbumArtists)
{
- return items.OfType<MusicArtist>();
+ return items
+ .OfType<IHasAlbumArtist>()
+ .Where(i => !(i is MusicAlbum))
+ .SelectMany(i => i.AlbumArtists)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .Select(name =>
+ {
+ try
+ {
+ return LibraryManager.GetArtist(name);
+ }
+ catch (Exception ex)
+ {
+ Logger.ErrorException("Error getting artist {0}", ex, name);
+ return null;
+ }
+
+ }).Where(i => i != null);
}
return items
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index 28337344a..c926c16ff 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -816,7 +816,7 @@ namespace MediaBrowser.Api.UserLibrary
if (!string.IsNullOrEmpty(request.AlbumArtistStartsWithOrGreater))
{
items = items.OfType<IHasAlbumArtist>()
- .Where(i => string.Compare(request.AlbumArtistStartsWithOrGreater, i.AlbumArtist, StringComparison.CurrentCultureIgnoreCase) < 1)
+ .Where(i => string.Compare(request.AlbumArtistStartsWithOrGreater, i.AlbumArtists.FirstOrDefault(), StringComparison.CurrentCultureIgnoreCase) < 1)
.Cast<BaseItem>();
}
diff --git a/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs b/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs
index e8369f573..64b480414 100644
--- a/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs
+++ b/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs
@@ -25,6 +25,8 @@ namespace MediaBrowser.Controller.Channels
public float? VideoLevel { get; set; }
public float? Framerate { get; set; }
+ public bool? IsAnamorphic { get; set; }
+
public MediaProtocol Protocol { get; set; }
public ChannelMediaInfo()
diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs
index bd407f91b..0900cc1ef 100644
--- a/MediaBrowser.Controller/Entities/Audio/Audio.cs
+++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs
@@ -79,16 +79,32 @@ namespace MediaBrowser.Controller.Entities.Audio
{
get
{
+ var list = AlbumArtists;
+
+ list.AddRange(Artists);
+
+ return list;
+
+ }
+ }
+
+ [IgnoreDataMember]
+ public List<string> AlbumArtists
+ {
+ get
+ {
var list = new List<string>();
if (!string.IsNullOrEmpty(AlbumArtist))
{
list.Add(AlbumArtist);
}
- list.AddRange(Artists);
return list;
-
+ }
+ set
+ {
+ AlbumArtist = value.FirstOrDefault();
}
}
@@ -132,7 +148,7 @@ namespace MediaBrowser.Controller.Entities.Audio
/// <returns><c>true</c> if the specified name has artist; otherwise, <c>false</c>.</returns>
public bool HasArtist(string name)
{
- return Artists.Contains(name, StringComparer.OrdinalIgnoreCase) || string.Equals(AlbumArtist, name, StringComparison.OrdinalIgnoreCase);
+ return AllArtists.Contains(name, StringComparer.OrdinalIgnoreCase);
}
/// <summary>
@@ -168,7 +184,7 @@ namespace MediaBrowser.Controller.Entities.Audio
{
var info = GetItemLookupInfo<SongInfo>();
- info.AlbumArtist = AlbumArtist;
+ info.AlbumArtists = AlbumArtists;
info.Album = Album;
info.Artists = Artists;
diff --git a/MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs b/MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs
index 08eaf903e..ca079c3bf 100644
--- a/MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs
+++ b/MediaBrowser.Controller/Entities/Audio/IHasAlbumArtist.cs
@@ -4,7 +4,7 @@ namespace MediaBrowser.Controller.Entities.Audio
{
public interface IHasAlbumArtist
{
- string AlbumArtist { get; set; }
+ List<string> AlbumArtists { get; set; }
}
public interface IHasArtist
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
index 277ec8b78..a4d9278e5 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
@@ -36,16 +36,33 @@ namespace MediaBrowser.Controller.Entities.Audio
{
get
{
+ var list = AlbumArtists;
+
+ list.AddRange(Artists);
+
+ return list;
+
+ }
+ }
+
+ [IgnoreDataMember]
+ public List<string> AlbumArtists
+ {
+ get
+ {
var list = new List<string>();
if (!string.IsNullOrEmpty(AlbumArtist))
{
list.Add(AlbumArtist);
}
- list.AddRange(Artists);
return list;
}
+ set
+ {
+ AlbumArtist = value.FirstOrDefault();
+ }
}
/// <summary>
@@ -104,8 +121,7 @@ namespace MediaBrowser.Controller.Entities.Audio
/// <returns><c>true</c> if the specified artist has artist; otherwise, <c>false</c>.</returns>
public bool HasArtist(string artist)
{
- return string.Equals(AlbumArtist, artist, StringComparison.OrdinalIgnoreCase)
- || Artists.Contains(artist, StringComparer.OrdinalIgnoreCase);
+ return AllArtists.Contains(artist, StringComparer.OrdinalIgnoreCase);
}
public string AlbumArtist { get; set; }
@@ -144,7 +160,7 @@ namespace MediaBrowser.Controller.Entities.Audio
{
var id = GetItemLookupInfo<AlbumInfo>();
- id.AlbumArtist = AlbumArtist;
+ id.AlbumArtists = AlbumArtists;
var artist = Parents.OfType<MusicArtist>().FirstOrDefault();
diff --git a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs
index 20bc572b4..7e6c6e140 100644
--- a/MediaBrowser.Controller/Providers/ItemLookupInfo.cs
+++ b/MediaBrowser.Controller/Providers/ItemLookupInfo.cs
@@ -65,7 +65,7 @@ namespace MediaBrowser.Controller.Providers
/// Gets or sets the album artist.
/// </summary>
/// <value>The album artist.</value>
- public string AlbumArtist { get; set; }
+ public List<string> AlbumArtists { get; set; }
/// <summary>
/// Gets or sets the artist provider ids.
@@ -78,6 +78,7 @@ namespace MediaBrowser.Controller.Providers
{
ArtistProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
SongInfos = new List<SongInfo>();
+ AlbumArtists = new List<string>();
}
}
@@ -137,9 +138,15 @@ namespace MediaBrowser.Controller.Providers
public class SongInfo : ItemLookupInfo
{
- public string AlbumArtist { get; set; }
+ public List<string> AlbumArtists { get; set; }
public string Album { get; set; }
public List<string> Artists { get; set; }
+
+ public SongInfo()
+ {
+ Artists = new List<string>();
+ AlbumArtists = new List<string>();
+ }
}
public class SeriesInfo : ItemLookupInfo, IHasIdentities<SeriesIdentity>
diff --git a/MediaBrowser.Dlna/Didl/DidlBuilder.cs b/MediaBrowser.Dlna/Didl/DidlBuilder.cs
index ecaeb6399..746931b68 100644
--- a/MediaBrowser.Dlna/Didl/DidlBuilder.cs
+++ b/MediaBrowser.Dlna/Didl/DidlBuilder.cs
@@ -494,9 +494,9 @@ namespace MediaBrowser.Dlna.Didl
AddValue(element, "upnp", "album", audio.Album, NS_UPNP);
}
- if (!string.IsNullOrEmpty(audio.AlbumArtist))
+ foreach (var artist in audio.AlbumArtists)
{
- AddValue(element, "upnp", "albumArtist", audio.AlbumArtist, NS_UPNP);
+ AddValue(element, "upnp", "albumArtist", artist, NS_UPNP);
}
}
@@ -504,10 +504,10 @@ namespace MediaBrowser.Dlna.Didl
if (album != null)
{
- if (!string.IsNullOrEmpty(album.AlbumArtist))
+ foreach (var artist in album.AlbumArtists)
{
- AddValue(element, "upnp", "artist", album.AlbumArtist, NS_UPNP);
- AddValue(element, "upnp", "albumArtist", album.AlbumArtist, NS_UPNP);
+ AddValue(element, "upnp", "artist", artist, NS_UPNP);
+ AddValue(element, "upnp", "albumArtist", artist, NS_UPNP);
}
}
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs
index f13c52c66..a5c3a6038 100644
--- a/MediaBrowser.Dlna/PlayTo/Device.cs
+++ b/MediaBrowser.Dlna/PlayTo/Device.cs
@@ -604,6 +604,9 @@ namespace MediaBrowser.Dlna.PlayTo
if (result == null || result.Document == null)
return new Tuple<bool, uBaseObject>(false, null);
+ var trackUriElem = result.Document.Descendants(uPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackURI")).FirstOrDefault(i => i != null);
+ var trackUri = trackUriElem == null ? null : trackUriElem.Value;
+
var durationElem = result.Document.Descendants(uPnpNamespaces.AvTransport + "GetPositionInfoResponse").Select(i => i.Element("TrackDuration")).FirstOrDefault(i => i != null);
var duration = durationElem == null ? null : durationElem.Value;
@@ -654,18 +657,25 @@ namespace MediaBrowser.Dlna.PlayTo
var e = uPnpResponse.Element(uPnpNamespaces.items);
- var uTrack = CreateUBaseObject(e);
+ var uTrack = CreateUBaseObject(e, trackUri);
return new Tuple<bool, uBaseObject>(true, uTrack);
}
- private static uBaseObject CreateUBaseObject(XElement container)
+ private static uBaseObject CreateUBaseObject(XElement container, string trackUri)
{
if (container == null)
{
throw new ArgumentNullException("container");
}
+ var url = container.GetValue(uPnpNamespaces.Res);
+
+ if (string.IsNullOrWhiteSpace(url))
+ {
+ url = trackUri;
+ }
+
return new uBaseObject
{
Id = container.GetAttributeValue(uPnpNamespaces.Id),
@@ -673,7 +683,7 @@ namespace MediaBrowser.Dlna.PlayTo
Title = container.GetValue(uPnpNamespaces.title),
IconUrl = container.GetValue(uPnpNamespaces.Artwork),
SecondText = "",
- Url = container.GetValue(uPnpNamespaces.Res),
+ Url = url,
ProtocolInfo = GetProtocolInfo(container),
MetaData = container.ToString()
};
diff --git a/MediaBrowser.Dlna/PlayTo/PlayToController.cs b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
index e8e681cb7..89d61bb21 100644
--- a/MediaBrowser.Dlna/PlayTo/PlayToController.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
@@ -134,15 +134,15 @@ namespace MediaBrowser.Dlna.PlayTo
async void _device_MediaChanged(object sender, MediaChangedEventArgs e)
{
- var streamInfo = StreamParams.ParseFromUrl(e.OldMediaInfo.Url, _libraryManager);
- var progress = GetProgressInfo(e.OldMediaInfo, streamInfo);
+ try
+ {
+ var streamInfo = StreamParams.ParseFromUrl(e.OldMediaInfo.Url, _libraryManager);
+ var progress = GetProgressInfo(e.OldMediaInfo, streamInfo);
- var positionTicks = progress.PositionTicks;
+ var positionTicks = progress.PositionTicks;
- ReportPlaybackStopped(e.OldMediaInfo, streamInfo, positionTicks);
+ ReportPlaybackStopped(e.OldMediaInfo, streamInfo, positionTicks);
- try
- {
streamInfo = StreamParams.ParseFromUrl(e.NewMediaInfo.Url, _libraryManager);
progress = GetProgressInfo(e.NewMediaInfo, streamInfo);
@@ -156,34 +156,41 @@ namespace MediaBrowser.Dlna.PlayTo
async void _device_PlaybackStopped(object sender, PlaybackStoppedEventArgs e)
{
- var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager);
- var progress = GetProgressInfo(e.MediaInfo, streamInfo);
+ try
+ {
+ var streamInfo = StreamParams.ParseFromUrl(e.MediaInfo.Url, _libraryManager);
+ var progress = GetProgressInfo(e.MediaInfo, streamInfo);
- var positionTicks = progress.PositionTicks;
+ var positionTicks = progress.PositionTicks;
- ReportPlaybackStopped(e.MediaInfo, streamInfo, positionTicks);
+ ReportPlaybackStopped(e.MediaInfo, streamInfo, positionTicks);
- var duration = streamInfo.MediaSource == null ?
- (_device.Duration == null ? (long?)null : _device.Duration.Value.Ticks) :
- streamInfo.MediaSource.RunTimeTicks;
+ var duration = streamInfo.MediaSource == null ?
+ (_device.Duration == null ? (long?)null : _device.Duration.Value.Ticks) :
+ streamInfo.MediaSource.RunTimeTicks;
- var playedToCompletion = (positionTicks.HasValue && positionTicks.Value == 0);
+ var playedToCompletion = (positionTicks.HasValue && positionTicks.Value == 0);
- if (!playedToCompletion && duration.HasValue && positionTicks.HasValue)
- {
- double percent = positionTicks.Value;
- percent /= duration.Value;
+ if (!playedToCompletion && duration.HasValue && positionTicks.HasValue)
+ {
+ double percent = positionTicks.Value;
+ percent /= duration.Value;
- playedToCompletion = Math.Abs(1 - percent) <= .1;
- }
+ playedToCompletion = Math.Abs(1 - percent) <= .1;
+ }
- if (playedToCompletion)
- {
- await SetPlaylistIndex(_currentPlaylistIndex + 1).ConfigureAwait(false);
+ if (playedToCompletion)
+ {
+ await SetPlaylistIndex(_currentPlaylistIndex + 1).ConfigureAwait(false);
+ }
+ else
+ {
+ Playlist.Clear();
+ }
}
- else
+ catch (Exception ex)
{
- Playlist.Clear();
+ _logger.ErrorException("Error reporting playback stopped", ex);
}
}
@@ -208,10 +215,10 @@ namespace MediaBrowser.Dlna.PlayTo
async void _device_PlaybackStart(object sender, PlaybackStartEventArgs e)
{
- var info = GetProgressInfo(e.MediaInfo);
-
try
{
+ var info = GetProgressInfo(e.MediaInfo);
+
await _sessionManager.OnPlaybackStart(info).ConfigureAwait(false);
}
catch (Exception ex)
@@ -222,10 +229,10 @@ namespace MediaBrowser.Dlna.PlayTo
async void _device_PlaybackProgress(object sender, PlaybackProgressEventArgs e)
{
- var info = GetProgressInfo(e.MediaInfo);
-
try
{
+ var info = GetProgressInfo(e.MediaInfo);
+
await _sessionManager.OnPlaybackProgress(info).ConfigureAwait(false);
}
catch (Exception ex)
@@ -523,9 +530,7 @@ namespace MediaBrowser.Dlna.PlayTo
private PlaylistItem GetPlaylistItem(BaseItem item, List<MediaSourceInfo> mediaSources, DeviceProfile profile, string deviceId, string mediaSourceId, int? audioStreamIndex, int? subtitleStreamIndex)
{
- var video = item as Video;
-
- if (video != null)
+ if (string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase))
{
return new PlaylistItem
{
@@ -545,9 +550,7 @@ namespace MediaBrowser.Dlna.PlayTo
};
}
- var audio = item as Audio;
-
- if (audio != null)
+ if (string.Equals(item.MediaType, MediaType.Audio, StringComparison.OrdinalIgnoreCase))
{
return new PlaylistItem
{
@@ -565,11 +568,9 @@ namespace MediaBrowser.Dlna.PlayTo
};
}
- var photo = item as Photo;
-
- if (photo != null)
+ if (string.Equals(item.MediaType, MediaType.Photo, StringComparison.OrdinalIgnoreCase))
{
- return new PlaylistItemFactory().Create(photo, profile);
+ return new PlaylistItemFactory().Create((Photo)item, profile);
}
throw new ArgumentException("Unrecognized item type.");
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
index 389772495..edf004c29 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2010Profile.cs
@@ -35,6 +35,8 @@ namespace MediaBrowser.Dlna.Profiles
}
};
+ AlbumArtPn = "JPEG_TN";
+
ModelName = "Windows Media Player Sharing";
ModelNumber = "3.0";
ModelUrl = "http://www.microsoft.com/";
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
index 27387250b..f1317d38a 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2011Profile.cs
@@ -35,6 +35,8 @@ namespace MediaBrowser.Dlna.Profiles
}
};
+ AlbumArtPn = "JPEG_TN";
+
ModelName = "Windows Media Player Sharing";
ModelNumber = "3.0";
ModelUrl = "http://www.microsoft.com/";
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
index e64710d8b..7e23b501d 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2012Profile.cs
@@ -1,6 +1,5 @@
-using System.Xml.Serialization;
-using MediaBrowser.Controller.Dlna;
-using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.Dlna;
+using System.Xml.Serialization;
namespace MediaBrowser.Dlna.Profiles
{
@@ -36,6 +35,8 @@ namespace MediaBrowser.Dlna.Profiles
}
};
+ AlbumArtPn = "JPEG_TN";
+
ModelName = "Windows Media Player Sharing";
ModelNumber = "3.0";
ModelUrl = "http://www.microsoft.com/";
diff --git a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
index aece3857d..aa18b37c4 100644
--- a/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyBravia2013Profile.cs
@@ -35,6 +35,8 @@ namespace MediaBrowser.Dlna.Profiles
}
};
+ AlbumArtPn = "JPEG_TN";
+
ModelName = "Windows Media Player Sharing";
ModelNumber = "3.0";
ModelUrl = "http://www.microsoft.com/";
diff --git a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
index 90705c5a5..e39ca9bf6 100644
--- a/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
+++ b/MediaBrowser.Dlna/Profiles/SonyPs3Profile.cs
@@ -32,6 +32,8 @@ namespace MediaBrowser.Dlna.Profiles
}
};
+ AlbumArtPn = "JPEG_TN";
+
SonyAggregationFlags = "10";
XDlnaDoc = "DMS-1.50";
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
index 7933c6199..a50fdb68e 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2010).xml
@@ -18,7 +18,7 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
- <AlbumArtPn>JPEG_SM</AlbumArtPn>
+ <AlbumArtPn>JPEG_TN</AlbumArtPn>
<MaxAlbumArtWidth>512</MaxAlbumArtWidth>
<MaxAlbumArtHeight>512</MaxAlbumArtHeight>
<MaxIconWidth xsi:nil="true" />
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
index 731ce3564..dd381a5b6 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2011).xml
@@ -18,7 +18,7 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
- <AlbumArtPn>JPEG_SM</AlbumArtPn>
+ <AlbumArtPn>JPEG_TN</AlbumArtPn>
<MaxAlbumArtWidth>512</MaxAlbumArtWidth>
<MaxAlbumArtHeight>512</MaxAlbumArtHeight>
<MaxIconWidth xsi:nil="true" />
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
index 2ce2c9be4..57d822d41 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2012).xml
@@ -18,7 +18,7 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
- <AlbumArtPn>JPEG_SM</AlbumArtPn>
+ <AlbumArtPn>JPEG_TN</AlbumArtPn>
<MaxAlbumArtWidth>512</MaxAlbumArtWidth>
<MaxAlbumArtHeight>512</MaxAlbumArtHeight>
<MaxIconWidth xsi:nil="true" />
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
index c76864df2..6f5679fee 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony Bravia (2013).xml
@@ -18,7 +18,7 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
- <AlbumArtPn>JPEG_SM</AlbumArtPn>
+ <AlbumArtPn>JPEG_TN</AlbumArtPn>
<MaxAlbumArtWidth>512</MaxAlbumArtWidth>
<MaxAlbumArtHeight>512</MaxAlbumArtHeight>
<MaxIconWidth xsi:nil="true" />
diff --git a/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml b/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
index 858d29686..494cedff7 100644
--- a/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
+++ b/MediaBrowser.Dlna/Profiles/Xml/Sony PlayStation 3.xml
@@ -18,7 +18,7 @@
<IgnoreTranscodeByteRangeRequests>false</IgnoreTranscodeByteRangeRequests>
<EnableAlbumArtInDidl>false</EnableAlbumArtInDidl>
<SupportedMediaTypes>Audio,Photo,Video</SupportedMediaTypes>
- <AlbumArtPn>JPEG_SM</AlbumArtPn>
+ <AlbumArtPn>JPEG_TN</AlbumArtPn>
<MaxAlbumArtWidth>512</MaxAlbumArtWidth>
<MaxAlbumArtHeight>512</MaxAlbumArtHeight>
<MaxIconWidth xsi:nil="true" />
diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs
index eac2e0d9b..4f008571c 100644
--- a/MediaBrowser.Model/ApiClient/IApiClient.cs
+++ b/MediaBrowser.Model/ApiClient/IApiClient.cs
@@ -350,6 +350,13 @@ namespace MediaBrowser.Model.ApiClient
Task<ItemsResult> GetArtistsAsync(ArtistsQuery query);
/// <summary>
+ /// Gets the album artists asynchronous.
+ /// </summary>
+ /// <param name="query">The query.</param>
+ /// <returns>Task{ItemsResult}.</returns>
+ Task<ItemsResult> GetAlbumArtistsAsync(ArtistsQuery query);
+
+ /// <summary>
/// Gets a studio
/// </summary>
/// <param name="name">The name.</param>
diff --git a/MediaBrowser.Model/Channels/ChannelQuery.cs b/MediaBrowser.Model/Channels/ChannelQuery.cs
index 62bb543f6..f7ed36853 100644
--- a/MediaBrowser.Model/Channels/ChannelQuery.cs
+++ b/MediaBrowser.Model/Channels/ChannelQuery.cs
@@ -28,6 +28,12 @@ namespace MediaBrowser.Model.Channels
/// </summary>
/// <value><c>true</c> if [supports latest items]; otherwise, <c>false</c>.</value>
public bool? SupportsLatestItems { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance is favorite.
+ /// </summary>
+ /// <value><c>null</c> if [is favorite] contains no value, <c>true</c> if [is favorite]; otherwise, <c>false</c>.</value>
+ public bool? IsFavorite { get; set; }
}
public class AllChannelMediaQuery
diff --git a/MediaBrowser.Model/Configuration/MetadataOptions.cs b/MediaBrowser.Model/Configuration/MetadataOptions.cs
index fdfbbf4f4..ddde688b2 100644
--- a/MediaBrowser.Model/Configuration/MetadataOptions.cs
+++ b/MediaBrowser.Model/Configuration/MetadataOptions.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Model.Entities;
-using System;
+using MediaBrowser.Model.Extensions;
using System.Collections.Generic;
-using System.Linq;
namespace MediaBrowser.Model.Configuration
{
@@ -87,7 +86,7 @@ namespace MediaBrowser.Model.Configuration
public bool IsMetadataSaverEnabled(string name)
{
- return !DisabledMetadataSavers.Contains(name, StringComparer.OrdinalIgnoreCase);
+ return !ListHelper.ContainsIgnoreCase(DisabledMetadataSavers, name);
}
}
}
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index bbe862238..0d728ec75 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -246,7 +246,9 @@ namespace MediaBrowser.Model.Configuration
MinResumePct = 5;
MaxResumePct = 90;
- MinResumeDurationSeconds = Convert.ToInt32(TimeSpan.FromMinutes(5).TotalSeconds);
+
+ // 5 minutes
+ MinResumeDurationSeconds = 300;
RealtimeMonitorDelay = 30;
diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
index 61428e39b..66c3e0b19 100644
--- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs
+++ b/MediaBrowser.Model/Dlna/ConditionProcessor.cs
@@ -15,7 +15,7 @@ namespace MediaBrowser.Model.Dlna
int? videoBitrate,
string videoProfile,
double? videoLevel,
- double? videoFramerate,
+ float? videoFramerate,
int? packetLength,
TransportStreamTimestamp? timestamp,
bool? isAnamorphic)
diff --git a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
index 55418e13b..b6d9d9f77 100644
--- a/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
+++ b/MediaBrowser.Model/Dlna/ContentFeatureBuilder.cs
@@ -106,7 +106,7 @@ namespace MediaBrowser.Model.Dlna
long? runtimeTicks,
string videoProfile,
double? videoLevel,
- double? videoFramerate,
+ float? videoFramerate,
int? packetLength,
TranscodeSeekInfo transcodeSeekInfo,
bool? isAnamorphic)
diff --git a/MediaBrowser.Model/Dlna/DeviceProfile.cs b/MediaBrowser.Model/Dlna/DeviceProfile.cs
index fb670a5de..807e04427 100644
--- a/MediaBrowser.Model/Dlna/DeviceProfile.cs
+++ b/MediaBrowser.Model/Dlna/DeviceProfile.cs
@@ -1,8 +1,6 @@
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.MediaInfo;
-using System;
using System.Collections.Generic;
-using System.Linq;
using System.Xml.Serialization;
namespace MediaBrowser.Model.Dlna
@@ -157,12 +155,12 @@ namespace MediaBrowser.Model.Dlna
continue;
}
- if (!i.GetAudioCodecs().Contains(audioCodec ?? string.Empty))
+ if (!ListHelper.ContainsIgnoreCase(i.GetAudioCodecs(), audioCodec ?? string.Empty))
{
continue;
}
- if (!StringHelper.EqualsIgnoreCase(videoCodec, i.VideoCodec))
+ if (!StringHelper.EqualsIgnoreCase(videoCodec, i.VideoCodec ?? string.Empty))
{
continue;
}
@@ -190,7 +188,7 @@ namespace MediaBrowser.Model.Dlna
}
List<string> audioCodecs = i.GetAudioCodecs();
- if (audioCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec))
+ if (audioCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec ?? string.Empty))
{
continue;
}
@@ -267,7 +265,7 @@ namespace MediaBrowser.Model.Dlna
int? videoBitrate,
string videoProfile,
double? videoLevel,
- double? videoFramerate,
+ float? videoFramerate,
int? packetLength,
TransportStreamTimestamp timestamp,
bool? isAnamorphic)
@@ -282,19 +280,19 @@ namespace MediaBrowser.Model.Dlna
}
List<string> containers = i.GetContainers();
- if (containers.Count > 0 && !ListHelper.ContainsIgnoreCase(containers, container))
+ if (containers.Count > 0 && !ListHelper.ContainsIgnoreCase(containers, container ?? string.Empty))
{
continue;
}
List<string> audioCodecs = i.GetAudioCodecs();
- if (audioCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec))
+ if (audioCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(audioCodecs, audioCodec ?? string.Empty))
{
continue;
}
List<string> videoCodecs = i.GetVideoCodecs();
- if (videoCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(videoCodecs, videoCodec))
+ if (videoCodecs.Count > 0 && !ListHelper.ContainsIgnoreCase(videoCodecs, videoCodec ?? string.Empty))
{
continue;
}
diff --git a/MediaBrowser.Model/Dlna/MediaFormatProfileResolver.cs b/MediaBrowser.Model/Dlna/MediaFormatProfileResolver.cs
index 022c0efda..9bbe52dbf 100644
--- a/MediaBrowser.Model/Dlna/MediaFormatProfileResolver.cs
+++ b/MediaBrowser.Model/Dlna/MediaFormatProfileResolver.cs
@@ -7,7 +7,7 @@ namespace MediaBrowser.Model.Dlna
{
public class MediaFormatProfileResolver
{
- public IEnumerable<MediaFormatProfile> ResolveVideoFormat(string container, string videoCodec, string audioCodec, int? width, int? height, TransportStreamTimestamp timestampType)
+ public List<MediaFormatProfile> ResolveVideoFormat(string container, string videoCodec, string audioCodec, int? width, int? height, TransportStreamTimestamp timestampType)
{
if (StringHelper.EqualsIgnoreCase(container, "asf"))
{
@@ -22,18 +22,18 @@ namespace MediaBrowser.Model.Dlna
}
if (StringHelper.EqualsIgnoreCase(container, "avi"))
- return new[] { MediaFormatProfile.AVI };
+ return new List<MediaFormatProfile> { MediaFormatProfile.AVI };
if (StringHelper.EqualsIgnoreCase(container, "mkv"))
- return new[] { MediaFormatProfile.MATROSKA };
+ return new List<MediaFormatProfile> { MediaFormatProfile.MATROSKA };
if (StringHelper.EqualsIgnoreCase(container, "mpeg2ps") ||
StringHelper.EqualsIgnoreCase(container, "ts"))
- return new[] { MediaFormatProfile.MPEG_PS_NTSC, MediaFormatProfile.MPEG_PS_PAL };
+ return new List<MediaFormatProfile> { MediaFormatProfile.MPEG_PS_NTSC, MediaFormatProfile.MPEG_PS_PAL };
if (StringHelper.EqualsIgnoreCase(container, "mpeg1video"))
- return new[] { MediaFormatProfile.MPEG1 };
+ return new List<MediaFormatProfile> { MediaFormatProfile.MPEG1 };
if (StringHelper.EqualsIgnoreCase(container, "mpeg2ts") ||
StringHelper.EqualsIgnoreCase(container, "mpegts") ||
@@ -44,10 +44,10 @@ namespace MediaBrowser.Model.Dlna
}
if (StringHelper.EqualsIgnoreCase(container, "flv"))
- return new[] { MediaFormatProfile.FLV };
+ return new List<MediaFormatProfile> { MediaFormatProfile.FLV };
if (StringHelper.EqualsIgnoreCase(container, "wtv"))
- return new[] { MediaFormatProfile.WTV };
+ return new List<MediaFormatProfile> { MediaFormatProfile.WTV };
if (StringHelper.EqualsIgnoreCase(container, "3gp"))
{
@@ -56,12 +56,12 @@ namespace MediaBrowser.Model.Dlna
}
if (StringHelper.EqualsIgnoreCase(container, "ogv") || StringHelper.EqualsIgnoreCase(container, "ogg"))
- return new[] { MediaFormatProfile.OGV };
+ return new List<MediaFormatProfile> { MediaFormatProfile.OGV };
return new List<MediaFormatProfile>();
}
- private IEnumerable<MediaFormatProfile> ResolveVideoMPEG2TSFormat(string videoCodec, string audioCodec, int? width, int? height, TransportStreamTimestamp timestampType)
+ private List<MediaFormatProfile> ResolveVideoMPEG2TSFormat(string videoCodec, string audioCodec, int? width, int? height, TransportStreamTimestamp timestampType)
{
string suffix = "";
@@ -98,36 +98,36 @@ namespace MediaBrowser.Model.Dlna
if (StringHelper.EqualsIgnoreCase(videoCodec, "h264"))
{
if (StringHelper.EqualsIgnoreCase(audioCodec, "lpcm"))
- return new[] { MediaFormatProfile.AVC_TS_HD_50_LPCM_T };
+ return new List<MediaFormatProfile> { MediaFormatProfile.AVC_TS_HD_50_LPCM_T };
if (StringHelper.EqualsIgnoreCase(audioCodec, "dts"))
{
if (timestampType == TransportStreamTimestamp.None)
{
- return new[] { MediaFormatProfile.AVC_TS_HD_DTS_ISO };
+ return new List<MediaFormatProfile> { MediaFormatProfile.AVC_TS_HD_DTS_ISO };
}
- return new[] { MediaFormatProfile.AVC_TS_HD_DTS_T };
+ return new List<MediaFormatProfile> { MediaFormatProfile.AVC_TS_HD_DTS_T };
}
if (StringHelper.EqualsIgnoreCase(audioCodec, "mp3"))
{
if (timestampType == TransportStreamTimestamp.None)
{
- return new[] { ValueOf(string.Format("AVC_TS_HP_{0}D_MPEG1_L2_ISO", resolution)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("AVC_TS_HP_{0}D_MPEG1_L2_ISO", resolution)) };
}
- return new[] { ValueOf(string.Format("AVC_TS_HP_{0}D_MPEG1_L2_T", resolution)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("AVC_TS_HP_{0}D_MPEG1_L2_T", resolution)) };
}
if (StringHelper.EqualsIgnoreCase(audioCodec, "aac"))
- return new[] { ValueOf(string.Format("AVC_TS_MP_{0}D_AAC_MULT5{1}", resolution, suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("AVC_TS_MP_{0}D_AAC_MULT5{1}", resolution, suffix)) };
if (StringHelper.EqualsIgnoreCase(audioCodec, "mp3"))
- return new[] { ValueOf(string.Format("AVC_TS_MP_{0}D_MPEG1_L3{1}", resolution, suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("AVC_TS_MP_{0}D_MPEG1_L3{1}", resolution, suffix)) };
if (string.IsNullOrEmpty(audioCodec) ||
StringHelper.EqualsIgnoreCase(audioCodec, "ac3"))
- return new[] { ValueOf(string.Format("AVC_TS_MP_{0}D_AC3{1}", resolution, suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("AVC_TS_MP_{0}D_AC3{1}", resolution, suffix)) };
}
else if (StringHelper.EqualsIgnoreCase(videoCodec, "vc1"))
{
@@ -135,28 +135,28 @@ namespace MediaBrowser.Model.Dlna
{
if ((width.HasValue && width.Value > 720) || (height.HasValue && height.Value > 576))
{
- return new[] { MediaFormatProfile.VC1_TS_AP_L2_AC3_ISO };
+ return new List<MediaFormatProfile> { MediaFormatProfile.VC1_TS_AP_L2_AC3_ISO };
}
- return new[] { MediaFormatProfile.VC1_TS_AP_L1_AC3_ISO };
+ return new List<MediaFormatProfile> { MediaFormatProfile.VC1_TS_AP_L1_AC3_ISO };
}
if (StringHelper.EqualsIgnoreCase(audioCodec, "dts"))
{
suffix = StringHelper.EqualsIgnoreCase(suffix, "_ISO") ? suffix : "_T";
- return new[] { ValueOf(string.Format("VC1_TS_HD_DTS{0}", suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("VC1_TS_HD_DTS{0}", suffix)) };
}
}
else if (StringHelper.EqualsIgnoreCase(videoCodec, "mpeg4") || StringHelper.EqualsIgnoreCase(videoCodec, "msmpeg4"))
{
if (StringHelper.EqualsIgnoreCase(audioCodec, "aac"))
- return new[] { ValueOf(string.Format("MPEG4_P2_TS_ASP_AAC{0}", suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("MPEG4_P2_TS_ASP_AAC{0}", suffix)) };
if (StringHelper.EqualsIgnoreCase(audioCodec, "mp3"))
- return new[] { ValueOf(string.Format("MPEG4_P2_TS_ASP_MPEG1_L3{0}", suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("MPEG4_P2_TS_ASP_MPEG1_L3{0}", suffix)) };
if (StringHelper.EqualsIgnoreCase(audioCodec, "mp2"))
- return new[] { ValueOf(string.Format("MPEG4_P2_TS_ASP_MPEG2_L2{0}", suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("MPEG4_P2_TS_ASP_MPEG2_L2{0}", suffix)) };
if (StringHelper.EqualsIgnoreCase(audioCodec, "ac3"))
- return new[] { ValueOf(string.Format("MPEG4_P2_TS_ASP_AC3{0}", suffix)) };
+ return new List<MediaFormatProfile> { ValueOf(string.Format("MPEG4_P2_TS_ASP_AC3{0}", suffix)) };
}
return new List<MediaFormatProfile>();
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 5e8ba3ff1..877570844 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -323,6 +323,12 @@ namespace MediaBrowser.Model.Dlna
playlistItem.VideoBitrate = Math.Min(videoBitrate, currentValue);
}
+
+ // Hate to hard-code this, but it's still probably better than being subjected to encoder defaults
+ if (!playlistItem.VideoBitrate.HasValue)
+ {
+ playlistItem.VideoBitrate = 5000000;
+ }
}
return playlistItem;
@@ -555,8 +561,8 @@ namespace MediaBrowser.Model.Dlna
}
case ProfileConditionValue.VideoFramerate:
{
- double num;
- if (DoubleHelper.TryParseCultureInvariant(value, out num))
+ float num;
+ if (FloatHelper.TryParseCultureInvariant(value, out num))
{
item.MaxFramerate = num;
}
diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs
index 9d23597fa..8d507ae37 100644
--- a/MediaBrowser.Model/Dlna/StreamInfo.cs
+++ b/MediaBrowser.Model/Dlna/StreamInfo.cs
@@ -45,7 +45,7 @@ namespace MediaBrowser.Model.Dlna
public int? MaxWidth { get; set; }
public int? MaxHeight { get; set; }
- public double? MaxFramerate { get; set; }
+ public float? MaxFramerate { get; set; }
public string DeviceProfileId { get; set; }
public string DeviceId { get; set; }
@@ -191,7 +191,7 @@ namespace MediaBrowser.Model.Dlna
/// <summary>
/// Predicts the audio sample rate that will be in the output stream
/// </summary>
- public double? TargetFramerate
+ public float? TargetFramerate
{
get
{
diff --git a/MediaBrowser.Model/Extensions/DoubleHelper.cs b/MediaBrowser.Model/Extensions/DoubleHelper.cs
index 00e3bc624..e6a4e0581 100644
--- a/MediaBrowser.Model/Extensions/DoubleHelper.cs
+++ b/MediaBrowser.Model/Extensions/DoubleHelper.cs
@@ -19,6 +19,20 @@ namespace MediaBrowser.Model.Extensions
}
}
+ public static class FloatHelper
+ {
+ /// <summary>
+ /// Tries the parse culture invariant.
+ /// </summary>
+ /// <param name="s">The s.</param>
+ /// <param name="result">The result.</param>
+ /// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
+ public static bool TryParseCultureInvariant(string s, out float result)
+ {
+ return float.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, out result);
+ }
+ }
+
public static class BoolHelper
{
/// <summary>
diff --git a/MediaBrowser.Model/Extensions/ListHelper.cs b/MediaBrowser.Model/Extensions/ListHelper.cs
index bfab14b20..6c5d471c0 100644
--- a/MediaBrowser.Model/Extensions/ListHelper.cs
+++ b/MediaBrowser.Model/Extensions/ListHelper.cs
@@ -6,7 +6,7 @@ namespace MediaBrowser.Model.Extensions
{
public static class ListHelper
{
- public static bool ContainsIgnoreCase(List<string> list, string value)
+ public static bool ContainsIgnoreCase(IEnumerable<string> list, string value)
{
if (value == null)
{
diff --git a/MediaBrowser.Model/Querying/ItemsByNameQuery.cs b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
index 4227dc0c5..bef2f7aed 100644
--- a/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
+++ b/MediaBrowser.Model/Querying/ItemsByNameQuery.cs
@@ -90,6 +90,7 @@ namespace MediaBrowser.Model.Querying
/// </summary>
/// <value>The name starts with or greater.</value>
public string NameStartsWith { get; set; }
+ /// <summary>
/// Gets or sets the name less than.
/// </summary>
/// <value>The name less than.</value>
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index d77a545d8..9b9acdd09 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -223,9 +223,9 @@ namespace MediaBrowser.Providers.Manager
if (sourceHasAlbumArtist != null && targetHasAlbumArtist != null)
{
- if (replaceData || string.IsNullOrEmpty(targetHasAlbumArtist.AlbumArtist))
+ if (replaceData || targetHasAlbumArtist.AlbumArtists.Count > 0)
{
- targetHasAlbumArtist.AlbumArtist = sourceHasAlbumArtist.AlbumArtist;
+ targetHasAlbumArtist.AlbumArtists = sourceHasAlbumArtist.AlbumArtists;
}
}
}
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
index 3a701f60c..ac0724a9a 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeAudioInfo.cs
@@ -194,8 +194,19 @@ namespace MediaBrowser.Providers.MediaInfo
}
- // Several different forms of albumartist
- audio.AlbumArtist = FFProbeHelpers.GetDictionaryValue(tags, "albumartist") ?? FFProbeHelpers.GetDictionaryValue(tags, "album artist") ?? FFProbeHelpers.GetDictionaryValue(tags, "album_artist");
+ var albumArtist = FFProbeHelpers.GetDictionaryValue(tags, "albumartist") ?? FFProbeHelpers.GetDictionaryValue(tags, "album artist") ?? FFProbeHelpers.GetDictionaryValue(tags, "album_artist");
+
+ if (string.IsNullOrWhiteSpace(albumArtist))
+ {
+ audio.AlbumArtists = new List<string>();
+ }
+ else
+ {
+ audio.AlbumArtists = SplitArtists(albumArtist)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
+
+ }
// Track number
audio.IndexNumber = GetDictionaryDiscValue(tags, "track");
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
index 96020791e..f049c79e1 100644
--- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs
+++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
@@ -105,7 +105,7 @@ namespace MediaBrowser.Providers.Music
var updateType = ItemUpdateType.None;
var albumArtist = songs
- .Select(i => i.AlbumArtist)
+ .SelectMany(i => i.AlbumArtists)
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
if (!string.IsNullOrEmpty(albumArtist))
diff --git a/MediaBrowser.Providers/Music/Extensions.cs b/MediaBrowser.Providers/Music/Extensions.cs
index a959eb08c..b14a1ba09 100644
--- a/MediaBrowser.Providers/Music/Extensions.cs
+++ b/MediaBrowser.Providers/Music/Extensions.cs
@@ -8,11 +8,11 @@ namespace MediaBrowser.Providers.Music
{
public static string GetAlbumArtist(this AlbumInfo info)
{
- var id = info.AlbumArtist;
+ var id = info.AlbumArtists.FirstOrDefault();
if (string.IsNullOrEmpty(id))
{
- return info.SongInfos.Select(i => i.AlbumArtist)
+ return info.SongInfos.SelectMany(i => i.AlbumArtists)
.FirstOrDefault(i => !string.IsNullOrEmpty(i));
}
diff --git a/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs b/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs
index f7086d8e6..846539748 100644
--- a/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs
+++ b/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs
@@ -82,11 +82,11 @@ namespace MediaBrowser.Providers.Music
var albumArtist = item.GetAlbumArtist();
// Get each song, distinct by the combination of AlbumArtist and Album
- var songs = item.SongInfos.DistinctBy(i => (i.AlbumArtist ?? string.Empty) + (i.Album ?? string.Empty), StringComparer.OrdinalIgnoreCase).ToList();
+ var songs = item.SongInfos.DistinctBy(i => (i.AlbumArtists.FirstOrDefault() ?? string.Empty) + (i.Album ?? string.Empty), StringComparer.OrdinalIgnoreCase).ToList();
- foreach (var song in songs.Where(song => !string.IsNullOrEmpty(song.Album) && !string.IsNullOrEmpty(song.AlbumArtist)))
+ foreach (var song in songs.Where(song => !string.IsNullOrEmpty(song.Album) && !string.IsNullOrEmpty(song.AlbumArtists.FirstOrDefault())))
{
- var result = await GetAlbumResult(song.AlbumArtist, song.Album, cancellationToken).ConfigureAwait(false);
+ var result = await GetAlbumResult(song.AlbumArtists.FirstOrDefault(), song.Album, cancellationToken).ConfigureAwait(false);
if (result != null && result.album != null)
{
diff --git a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
index e36d8a320..7a30c4a50 100644
--- a/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
+++ b/MediaBrowser.Providers/Music/MusicBrainzAlbumProvider.cs
@@ -176,6 +176,11 @@ namespace MediaBrowser.Providers.Music
return GetReleaseResult(albumName, artistMusicBrainId, cancellationToken);
}
+ if (string.IsNullOrWhiteSpace(artistName))
+ {
+ return Task.FromResult(new ReleaseResult());
+ }
+
return GetReleaseResultByArtistName(albumName, artistName, cancellationToken);
}
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index 98e7593cf..188a26c60 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -119,6 +119,12 @@ namespace MediaBrowser.Server.Implementations.Channels
channels = channels.Where(i => (GetChannelProvider(i) is ISupportsLatestMedia) == val)
.ToList();
}
+ if (query.IsFavorite.HasValue)
+ {
+ var val = query.IsFavorite.Value;
+ channels = channels.Where(i => _userDataManager.GetUserData(user.Id, i.GetUserDataKey()).IsFavorite == val)
+ .ToList();
+ }
if (user != null)
{
diff --git a/MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs b/MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs
index 94bbc08da..c58b9181b 100644
--- a/MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs
+++ b/MediaBrowser.Server.Implementations/Collections/ManualCollectionsFolder.cs
@@ -1,5 +1,5 @@
-using System.Linq;
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities;
+using System.Linq;
namespace MediaBrowser.Server.Implementations.Collections
{
@@ -32,5 +32,10 @@ namespace MediaBrowser.Server.Implementations.Collections
{
get { return Model.Entities.CollectionType.BoxSets; }
}
+
+ public override string GetClientTypeName()
+ {
+ return typeof (CollectionFolder).Name;
+ }
}
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
index c7c93057d..348d3cb26 100644
--- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs
+++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs
@@ -932,7 +932,7 @@ namespace MediaBrowser.Server.Implementations.Dto
if (hasAlbumArtist != null)
{
- dto.AlbumArtist = hasAlbumArtist.AlbumArtist;
+ dto.AlbumArtist = hasAlbumArtist.AlbumArtists.FirstOrDefault();
}
// Add video info
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 521a6f843..64e0a6662 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -1480,18 +1480,7 @@ namespace MediaBrowser.Server.Implementations.Library
{
return items
.OfType<Audio>()
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
+ .SelectMany(i => i.AllArtists)
.Distinct(StringComparer.OrdinalIgnoreCase);
}
diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
index a555e1f9c..467bedcf1 100644
--- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
+++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
@@ -307,7 +307,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
Sanitize(result);
_logger.Debug("Live stream info: " + _json.SerializeToString(result));
-
+
if (!string.IsNullOrEmpty(result.Id))
{
_openStreams.AddOrUpdate(result.Id, result, (key, info) => result);
@@ -972,7 +972,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
progress.Report(100);
return;
}
-
+
await _refreshSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
try
@@ -1036,10 +1036,23 @@ namespace MediaBrowser.Server.Implementations.LiveTv
{
var service = ActiveService;
+ if (service == null)
+ {
+ return new QueryResult<RecordingInfoDto>
+ {
+ Items = new RecordingInfoDto[] { }
+ };
+ }
+
var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId));
var recordings = await service.GetRecordingsAsync(cancellationToken).ConfigureAwait(false);
+ if (user != null && !IsLiveTvEnabled(user))
+ {
+ recordings = new List<RecordingInfo>();
+ }
+
if (!string.IsNullOrEmpty(query.ChannelId))
{
var guid = new Guid(query.ChannelId);
@@ -1181,7 +1194,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
foreach (var i in timers)
{
- var program = string.IsNullOrEmpty(i.ProgramId) ?
+ var program = string.IsNullOrEmpty(i.ProgramId) ?
null :
await GetInternalProgram(_tvDtoService.GetInternalProgramId(service.Name, i.ProgramId).ToString("N"), cancellationToken).ConfigureAwait(false);
@@ -1618,7 +1631,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv
var startDate = _programs.Count == 0 ? DateTime.MinValue :
programs.Select(i => i.Value.StartDate).Min();
- var endDate = programs.Count == 0 ? DateTime.MinValue :
+ var endDate = programs.Count == 0 ? DateTime.MinValue :
programs.Select(i => i.Value.StartDate).Max();
return new GuideInfo
@@ -1727,13 +1740,18 @@ namespace MediaBrowser.Server.Implementations.LiveTv
};
info.EnabledUsers = _userManager.Users
- .Where(i => i.Configuration.EnableLiveTvAccess && info.IsEnabled)
+ .Where(IsLiveTvEnabled)
.Select(i => i.Id.ToString("N"))
.ToList();
return info;
}
+ private bool IsLiveTvEnabled(User user)
+ {
+ return user.Configuration.EnableLiveTvAccess && ActiveService != null;
+ }
+
public IEnumerable<User> GetEnabledUsers()
{
var service = ActiveService;
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
index a21ca41e7..d9bde2090 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "\u0627\u064a\u0642\u0627\u0641",
+ "OptionOn": "\u062a\u0634\u063a\u064a\u0644",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "\u062a\u0645 \u062d\u0641\u0638 \u0627\u0644\u0627\u0639\u062f\u0627\u062f\u0627\u062a.",
"AddUser": "\u0627\u0636\u0627\u0641\u0629 \u0645\u0633\u062a\u062e\u062f\u0645",
"Users": "\u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "\u0627\u0633\u062a\u0623\u0646\u0641",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 b28a2627b..b6c67083e 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Apagat",
+ "OptionOn": "Enc\u00e8s",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Configuraci\u00f3 guardada.",
"AddUser": "Afegir Usuari",
"Users": "Usuaris",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 5e3b0be38..6998eaccc 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Vypnout",
+ "OptionOn": "Zapnout",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Nastaven\u00ed ulo\u017eeno.",
"AddUser": "P\u0159idat u\u017eivatele",
"Users": "U\u017eivatel\u00e9",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "P\u0159ehr\u00e1t",
"ButtonEdit": "Upravit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Pozastavit",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 14aaffebb..0e6fe6a33 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mit bibliotek",
"SettingsSaved": "Indstillinger er gemt",
"AddUser": "Tilf\u00f8j bruger",
"Users": "Brugere",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Afspil",
"ButtonEdit": "Rediger",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Fors\u00e6t",
- "HeaderMyLibrary": "Mit bibliotek",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 26a4d61ba..b2987fa9c 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Passwort erstellen",
+ "OptionOff": "Aus",
+ "OptionOn": "Ein",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Meine Bibliothek",
"SettingsSaved": "Einstellungen gespeichert",
"AddUser": "Benutzer hinzuf\u00fcgen",
"Users": "Benutzer",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Stumm",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "N\u00e4chster Track",
"ButtonPause": "Pause",
"ButtonPlay": "Abspielen",
"ButtonEdit": "Bearbeiten",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Spiele Trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Vorheriger Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "Die folgenden Titel werden zu einem Element gruppiert:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Fortsetzen",
- "HeaderMyLibrary": "Meine Bibliothek",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Letzte Medien",
"ButtonMore": "Mehr...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 ddd762182..c28e6870d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "\u03c3\u03b2\u03b7\u03c3\u03c4\u03cc\u03c2",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "\u039f\u03b9 \u03c1\u03c5\u03b8\u03bc\u03af\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03cd\u03c4\u03b7\u03ba\u03b1\u03bd",
"AddUser": "\u03a0\u03c1\u03bf\u03c3\u03b8\u03ae\u03ba\u03b7 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7",
"Users": "\u039f\u03b9 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "\u03a3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03b9 ",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 89f8c0c0e..5e8ffeb02 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Settings saved.",
"AddUser": "Add User",
"Users": "Users",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 b3ac8b974..5fafacc78 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Settings saved.",
"AddUser": "Add User",
"Users": "Users",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 44082a286..0d7275354 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Crear Contrase\u00f1a",
+ "OptionOff": "Apagado",
+ "OptionOn": "Encendido",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Por favor, seleccione dos o m\u00e1s elementos para unir al grupo.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mi librer\u00eda",
"SettingsSaved": "Configuraci\u00f3n guardada",
"AddUser": "Agregar usuario",
"Users": "Usuarios",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Idioma desconocido",
"ButtonMute": "Silencio",
"ButtonUnmute": "Activar audio",
- "ButtonNextTrack": "Pista siguiente",
"ButtonPause": "Pausa",
"ButtonPlay": "Reproducir",
"ButtonEdit": "Editar",
"ButtonQueue": "En cola",
"ButtonPlayTrailer": "Reproducir trailer",
"ButtonPlaylist": "Lista de reproducci\u00f3n",
- "ButtonPreviousTrack": "Pista anterior",
"LabelEnabled": "Activado",
"LabelDisabled": "Desactivado",
"ButtonMoreInformation": "M\u00e1s informaci\u00f3n",
@@ -121,7 +127,7 @@
"MessageTheFollowingItemsWillBeGrouped": "Los siguientes t\u00edtulos se agrupar\u00e1n en un elemento.",
"MessageConfirmItemGrouping": "Los clientes de Media Browser elegir\u00e1n autom\u00e1ticamente la mejor forma de reproduccion sobre la base de dispositivo y rendimiento de la red. \u00bfEst\u00e1 seguro que desea continuar?",
"HeaderResume": "Continuar",
- "HeaderMyLibrary": "Mi librer\u00eda",
+ "HeaderMyViews": "My Views",
"HeaderLibraryFolders": "Vista de carpeta",
"HeaderLatestMedia": "\u00daltimos medios",
"ButtonMore": "M\u00e1s...",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 4a6886199..d5c854c1a 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "No",
+ "OptionOn": "Si",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Por favor selecciona dos o mas elementos para agruparlos",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mi Biblioteca",
"SettingsSaved": "Configuraci\u00f3n guardada.",
"AddUser": "Agregar usuario",
"Users": "Usuarios",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Idioma Desconocido",
"ButtonMute": "Mudo",
"ButtonUnmute": "Quitar mudo",
- "ButtonNextTrack": "Pista Siguiente",
"ButtonPause": "Pausar",
"ButtonPlay": "Reproducir",
"ButtonEdit": "Editar",
"ButtonQueue": "A cola",
"ButtonPlayTrailer": "Reproducir Trailer",
"ButtonPlaylist": "Lista de Reprod.",
- "ButtonPreviousTrack": "Pista Anterior",
"LabelEnabled": "Habilitado",
"LabelDisabled": "Deshabilitado",
"ButtonMoreInformation": "Mas Informaci\u00f3n",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "Los siguientes t\u00edtulos ser\u00e1n agrupados en un solo elemento.",
"MessageConfirmItemGrouping": "Los clientes de Media Browser elegir\u00e1n autom\u00e1ticamente la versi\u00f3n optima para reproducir basado en el dispositivo y el rendimiento de redo. \u00bfEsta seguro de que desea continuar?",
"HeaderResume": "Continuar",
- "HeaderMyLibrary": "Mi Biblioteca",
- "HeaderLibraryFolders": "Vista de Carpetas",
+ "HeaderMyViews": "Mis Vistas",
+ "HeaderLibraryFolders": "Carpetas de Medios",
"HeaderLatestMedia": "Agregados Recientemente",
"ButtonMore": "M\u00e1s...",
"HeaderFavoriteMovies": "Pel\u00edculas Preferidas",
@@ -181,9 +187,11 @@
"LabelRunningOnPort": "Ejecutando en el puerto: {0}.",
"LabelRunningOnPorts": "Ejecutando en los puertos {0} y {1}.",
"HeaderLatestFromChannel": "M\u00e1s Recientes de {0}",
- "ButtonDownload": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "ButtonDownload": "Descargar",
+ "LabelUnknownLanaguage": "Idioma desconocido",
+ "HeaderCurrentSubtitles": "Subtitulos Actuales",
+ "MessageDownloadQueued": "La descarga se ha agregado a la cola.",
+ "MessageAreYouSureDeleteSubtitles": "\u00bfEstas seguro de que deseas eliminar este archivo de subtitulos?",
+ "ButtonRemoteControl": "Control Remoto",
+ "HeaderLatestTvRecordings": "\u00daltimas Grabaciones"
} \ 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 c6faf8c49..6e7f3246a 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Cr\u00e9er mot de passe",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Ma biblioth\u00e8que",
"SettingsSaved": "Param\u00e8tres sauvegard\u00e9s.",
"AddUser": "Ajouter utilisateur",
"Users": "Utilisateurs",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Langue inconnue",
"ButtonMute": "Sourdine",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Piste suivante",
"ButtonPause": "Pause",
"ButtonPlay": "Lire",
"ButtonEdit": "Modifier",
"ButtonQueue": "En file d'attente",
"ButtonPlayTrailer": "Lire bande-annonce",
"ButtonPlaylist": "Liste de lecture",
- "ButtonPreviousTrack": "Piste pr\u00e9c\u00e9dante",
"LabelEnabled": "Activ\u00e9",
"LabelDisabled": "D\u00e9sactiv\u00e9",
"ButtonMoreInformation": "Plus d'information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Reprendre",
- "HeaderMyLibrary": "Ma biblioth\u00e8que",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Derniers m\u00e9dias",
"ButtonMore": "Plus...",
"HeaderFavoriteMovies": "Films favoris",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 7a8ce44d3..c22783249 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "\u05db\u05d1\u05d5\u05d9",
+ "OptionOn": "\u05e4\u05d5\u05e2\u05dc",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "\u05d4\u05d4\u05d2\u05d3\u05e8\u05d5\u05ea \u05e0\u05e9\u05de\u05e8\u05d5.",
"AddUser": "\u05d4\u05d5\u05e1\u05e3 \u05de\u05e9\u05ea\u05de\u05e9",
"Users": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "\u05e0\u05d2\u05df",
"ButtonEdit": "\u05e2\u05e8\u05d5\u05da",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "\u05d4\u05de\u05e9\u05da",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 e51018d02..dcd0f73e8 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Crea Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Si prega di selezionare due o pi\u00f9 elementi al gruppo insieme.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mia Libreria",
"SettingsSaved": "Settaggi salvati.",
"AddUser": "Aggiungi utente",
"Users": "Utenti",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "(linguaggio sconosciuto)",
"ButtonMute": "Muto",
"ButtonUnmute": "Togli muto",
- "ButtonNextTrack": "Prossimo",
"ButtonPause": "Pausa",
"ButtonPlay": "Riproduci",
"ButtonEdit": "Modifica",
"ButtonQueue": "In coda",
"ButtonPlayTrailer": "Visualizza trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Precedente",
"LabelEnabled": "Abilitato",
"LabelDisabled": "Disabilitato",
"ButtonMoreInformation": "Maggiori informazioni",
@@ -121,7 +127,7 @@
"MessageTheFollowingItemsWillBeGrouped": "I seguenti titoli saranno raggruppati in un unico elemento:",
"MessageConfirmItemGrouping": "Clienti Media Browser sceglier\u00e0 automaticamente la versione ottimale per giocare sulla base del dispositivo e prestazioni di rete. Sei sicuro di voler continuare?",
"HeaderResume": "Riprendi",
- "HeaderMyLibrary": "Mia Libreria",
+ "HeaderMyViews": "Mie viste",
"HeaderLibraryFolders": "Vista",
"HeaderLatestMedia": "Ultimi Media",
"ButtonMore": "Pi\u00f9 info...",
@@ -147,43 +153,45 @@
"ButtonRemove": "Rimuovi",
"LabelChapterDownloaders": "Download capitoli:",
"LabelChapterDownloadersHelp": "Abilitare e classificare le downloader capitolo preferite in ordine di priorit\u00e0. Downloader priorit\u00e0 pi\u00f9 bassa saranno utilizzati solo per compilare le informazioni mancanti.",
- "HeaderFavoriteAlbums": "Favorite Albums",
- "HeaderLatestChannelMedia": "Latest Channel Items",
- "ButtonOrganizeFile": "Organize File",
- "ButtonDeleteFile": "Delete File",
- "HeaderOrganizeFile": "Organize File",
- "HeaderDeleteFile": "Delete File",
- "StatusSkipped": "Skipped",
- "StatusFailed": "Failed",
- "StatusSuccess": "Success",
- "MessageFileWillBeDeleted": "The following file will be deleted:",
- "MessageSureYouWishToProceed": "Are you sure you wish to proceed?",
- "MessageDuplicatesWillBeDeleted": "In addition the following dupliates will be deleted:",
- "MessageFollowingFileWillBeMovedFrom": "The following file will be moved from:",
- "MessageDestinationTo": "to:",
- "HeaderSelectWatchFolder": "Select Watch Folder",
- "HeaderSelectWatchFolderHelp": "Browse or enter the path to your watch folder. The folder must be writeable.",
- "OrganizePatternResult": "Result: {0}",
- "HeaderRestart": "Restart",
- "HeaderShutdown": "Shutdown",
- "MessageConfirmRestart": "Are you sure you wish to restart Media Browser Server?",
- "MessageConfirmShutdown": "Are you sure you wish to shutdown Media Browser Server?",
+ "HeaderFavoriteAlbums": "Album preferiti",
+ "HeaderLatestChannelMedia": "Ultimi elementi aggiunti",
+ "ButtonOrganizeFile": "Organizza file",
+ "ButtonDeleteFile": "Elimina file",
+ "HeaderOrganizeFile": "Organizza file",
+ "HeaderDeleteFile": "Elimina file",
+ "StatusSkipped": "Salta",
+ "StatusFailed": "Fallito",
+ "StatusSuccess": "Successo",
+ "MessageFileWillBeDeleted": "Questo file sar\u00e0 eliminato:",
+ "MessageSureYouWishToProceed": "Sei sicuro ,Procedo?",
+ "MessageDuplicatesWillBeDeleted": "Inoltre saranno cancellati i seguenti duplicati:",
+ "MessageFollowingFileWillBeMovedFrom": "Il seguente file verr\u00e0 spostato da:",
+ "MessageDestinationTo": "A:",
+ "HeaderSelectWatchFolder": "Seleziona Cartella",
+ "HeaderSelectWatchFolderHelp": "Sfoglia o inserire il percorso della cartella orologio. La cartella deve essere scrivibile.",
+ "OrganizePatternResult": "Risultati: {0}",
+ "HeaderRestart": "Riavvia",
+ "HeaderShutdown": "Spegni",
+ "MessageConfirmRestart": "Sei sicuro di voler riavviare Media Server Browser?",
+ "MessageConfirmShutdown": "Sei sicuro di voler Spegnere Media Server Browser?",
"ButtonUpdateNow": "Aggiorna Adesso",
- "NewVersionOfSomethingAvailable": "A new version of {0} is available!",
- "VersionXIsAvailableForDownload": "Version {0} is now available for download.",
- "LabelVersionNumber": "Version {0}",
- "LabelPlayMethodTranscoding": "Transcoding",
- "LabelPlayMethodDirectStream": "Direct Streaming",
- "LabelPlayMethodDirectPlay": "Direct Playing",
+ "NewVersionOfSomethingAvailable": "Una nuova versione di {0} \u00e8 disponibile!",
+ "VersionXIsAvailableForDownload": "Versione {0} \u00e8 ora disponibile per il download.",
+ "LabelVersionNumber": "Versione {0}",
+ "LabelPlayMethodTranscoding": "Trascodifica",
+ "LabelPlayMethodDirectStream": "diretta Streaming",
+ "LabelPlayMethodDirectPlay": "Diretta Playing",
"LabelAudioCodec": "Audio: {0}",
"LabelVideoCodec": "Video: {0}",
- "LabelRemoteAccessUrl": "Remote access: {0}",
- "LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
- "HeaderLatestFromChannel": "Latest from {0}",
+ "LabelRemoteAccessUrl": "Accesso remoto: {0}",
+ "LabelRunningOnPort": "Avviato su porta {0}",
+ "LabelRunningOnPorts": "Avviato su porte {0} e {1}.",
+ "HeaderLatestFromChannel": "Ultime da {0}",
"ButtonDownload": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "LabelUnknownLanaguage": "lingua sconosciuta",
+ "HeaderCurrentSubtitles": "Sottotitoli correnti",
+ "MessageDownloadQueued": "Il download \u00e8 stato accodato.",
+ "MessageAreYouSureDeleteSubtitles": "Sei sicuro di voler cancellare questo file dei sottotitoli?",
+ "ButtonRemoteControl": "telecomando",
+ "HeaderLatestTvRecordings": "Ultime registrazioni"
} \ 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 af55208a7..6851e0387 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
@@ -122,8 +122,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -187,5 +187,6 @@
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
"MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
- "ButtonRemoteControl": "Remote Control"
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
index 77f72728b..99a9ff6c1 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "\u04e8\u0448\u0456\u0440",
+ "OptionOn": "\u049a\u043e\u0441",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "\u0411\u0456\u0440\u0435\u0443 \u043d\u0435 \u043a\u04e9\u0431\u0456\u0440\u0435\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0456 \u0431\u0456\u0440\u0433\u0435 \u0442\u043e\u043f\u0442\u0430\u04a3\u044b\u0437.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c",
"SettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441\u0430\u049b\u0442\u0430\u043b\u0434\u044b.",
"AddUser": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043d\u044b \u04af\u0441\u0442\u0435\u0443",
"Users": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "\u0411\u0435\u043b\u0433\u0456\u0441\u0456\u0437 \u0442\u0456\u043b",
"ButtonMute": "\u0414\u044b\u0431\u044b\u0441\u0442\u044b \u04e9\u0448\u0456\u0440\u0443",
"ButtonUnmute": "\u0414\u044b\u0431\u044b\u0441\u0442\u044b \u049b\u043e\u0441\u0443",
- "ButtonNextTrack": "\u041a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u0448\u044b\u049b",
"ButtonPause": "\u04ae\u0437\u0456\u043b\u0456\u0441",
"ButtonPlay": "\u041e\u0439\u043d\u0430\u0442\u0443",
"ButtonEdit": "\u04e8\u04a3\u0434\u0435\u0443",
"ButtonQueue": "\u041a\u0435\u0437\u0435\u043a",
"ButtonPlayTrailer": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440\u0434\u0456 \u043e\u0439\u043d\u0430\u0442\u0443",
"ButtonPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456",
- "ButtonPreviousTrack": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b \u0436\u043e\u043b\u0448\u044b\u049b",
"LabelEnabled": "\u049a\u043e\u0441\u044b\u043b\u0493\u0430\u043d",
"LabelDisabled": "\u0410\u0436\u044b\u0440\u0430\u0442\u044b\u043b\u0493\u0430\u043d",
"ButtonMoreInformation": "\u041a\u04e9\u0431\u0456\u0440\u0435\u043a \u0430\u049b\u043f\u0430\u0440\u0430\u0442",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "\u041a\u0435\u043b\u0435\u0441\u0456 \u0430\u0442\u0430\u0443\u043b\u0430\u0440 \u0431\u0456\u0440 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043a\u0435 \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u044b\u043b\u0430\u0434\u044b:",
"MessageConfirmItemGrouping": "Media Browser \u043a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440\u0456 \u0436\u0430\u0431\u0434\u044b\u049b \u0436\u04d9\u043d\u0435 \u0436\u0435\u043b\u0456 \u04e9\u043d\u0456\u043c\u0434\u0456\u043b\u0456\u043a\u0442\u0435\u0440\u0456\u043d\u0435 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0456\u043d\u0456\u043f \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u043e\u04a3\u0442\u0430\u0439\u043b\u044b \u043d\u04b1\u0441\u049b\u0430\u0441\u044b\u043d \u0442\u0430\u04a3\u0434\u0430\u0439\u0434\u044b. \u0428\u044b\u043d\u044b\u043c\u0435\u043d \u0436\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443 \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
"HeaderResume": "\u0416\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443",
- "HeaderMyLibrary": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c",
- "HeaderLibraryFolders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0456",
+ "HeaderMyViews": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c",
+ "HeaderLibraryFolders": "\u0422\u0430\u0441\u0443\u0448\u044b \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u044b",
"HeaderLatestMedia": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0442\u0430\u0441\u0443\u0448\u044b\u043b\u0430\u0440",
"ButtonMore": "\u041a\u04e9\u0431\u0456\u0440\u0435\u043a...",
"HeaderFavoriteMovies": "\u0422\u0430\u04a3\u0434\u0430\u0443\u043b\u044b \u0444\u0438\u043b\u044c\u043c\u0434\u0435\u0440",
@@ -177,13 +183,15 @@
"LabelPlayMethodDirectPlay": "\u0422\u0456\u043a\u0435\u043b\u0435\u0439 \u043e\u0439\u043d\u0430\u0442\u0443",
"LabelAudioCodec": "\u0414\u044b\u0431\u044b\u0441: {0}",
"LabelVideoCodec": "\u0411\u0435\u0439\u043d\u0435: {0}",
- "LabelRemoteAccessUrl": "\u0410\u043b\u044b\u0441\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443: {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": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "ButtonDownload": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443",
+ "LabelUnknownLanaguage": "\u0411\u0435\u043b\u0433\u0456\u0441\u0456\u0437 \u0442\u0456\u043b",
+ "HeaderCurrentSubtitles": "\u0410\u0493\u044b\u043c\u0434\u044b\u049b \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440",
+ "MessageDownloadQueued": "\u0416\u04af\u043a\u0442\u0435\u0443 \u043a\u0435\u0437\u0435\u043a\u043a\u0435 \u043a\u0456\u0440\u0433\u0456\u0437\u0456\u043b\u0434\u0456.",
+ "MessageAreYouSureDeleteSubtitles": "\u0428\u044b\u043d\u044b\u043c\u0435\u043d \u043e\u0441\u044b \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440 \u0444\u0430\u0439\u043b\u044b\u043d \u0436\u043e\u044e \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
+ "ButtonRemoteControl": "\u049a\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443",
+ "HeaderLatestTvRecordings": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0436\u0430\u0437\u0431\u0430\u043b\u0430\u0440"
} \ 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 654ad5426..51055f880 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Seting Disimpan",
"AddUser": "Tambah Pengguna",
"Users": "Para Pengguna",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 9f99bb726..351ab9520 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Av",
+ "OptionOn": "P\u00e5",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mitt bibliotek",
"SettingsSaved": "Innstillinger lagret",
"AddUser": "Legg til bruker",
"Users": "Brukere",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Fortsett",
- "HeaderMyLibrary": "Mitt bibliotek",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 901bb28f9..4e045acf3 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Maak wachtwoord",
+ "OptionOff": "Uit",
+ "OptionOn": "Aan",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Selecteer twee of meer items om te groeperen.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mijn Bibliotheek",
"SettingsSaved": "Instellingen opgeslagen.",
"AddUser": "Gebruiker toevoegen",
"Users": "Gebruikers",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Onbekende taal",
"ButtonMute": "Dempen",
"ButtonUnmute": "Dempen opheffen",
- "ButtonNextTrack": "Volgend nummer",
"ButtonPause": "Pauze",
"ButtonPlay": "Afspelen",
"ButtonEdit": "Bewerken",
"ButtonQueue": "Wachtrij",
"ButtonPlayTrailer": "Trailer Afspelen",
"ButtonPlaylist": "Afspeellijst",
- "ButtonPreviousTrack": "Vorig nummer",
"LabelEnabled": "Ingeschakeld",
"LabelDisabled": "Uitgeschakeld",
"ButtonMoreInformation": "Meer informatie",
@@ -121,7 +127,7 @@
"MessageTheFollowingItemsWillBeGrouped": "De volgende titels worden gegroepeerd in \u00e9\u00e9n item:",
"MessageConfirmItemGrouping": "Media Browser clients zullen automatisch de optimale versie afspelen op basis van het apparaat en de prestaties van het netwerk. Weet u zeker dat u wilt doorgaan?",
"HeaderResume": "Hervatbaar",
- "HeaderMyLibrary": "Mijn Bibliotheek",
+ "HeaderMyViews": "Mijn weergaves",
"HeaderLibraryFolders": "Mapweergave",
"HeaderLatestMedia": "Nieuw in bibliotheek",
"ButtonMore": "Meer ...",
@@ -182,8 +188,10 @@
"LabelRunningOnPorts": "Draait op poort {0} en {1}.",
"HeaderLatestFromChannel": "Laatste van {0}",
"ButtonDownload": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "LabelUnknownLanaguage": "Onbekende taal",
+ "HeaderCurrentSubtitles": "Huidige Ondertitels",
+ "MessageDownloadQueued": "De download is in de wachtrij geplaatst.",
+ "MessageAreYouSureDeleteSubtitles": "Weet u zeker dat u dit ondertitelbestand wilt verwijderen?",
+ "ButtonRemoteControl": "Beheer op afstand",
+ "HeaderLatestTvRecordings": "Nieuwste opnames"
} \ 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 5169e9600..609c8e477 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Criar Senha",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Por favor, selecione dois ou mais itens para agrupar.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Minha Biblioteca",
"SettingsSaved": "Ajustes salvos.",
"AddUser": "Adicionar Usu\u00e1rio",
"Users": "Usu\u00e1rios",
@@ -42,7 +50,7 @@
"LabelCancelled": "(cancelado)",
"LabelFailed": "(falhou)",
"LabelAbortedByServerShutdown": "(Abortada pelo desligamento do servidor)",
- "LabelScheduledTaskLastRan": "\u00daltima execu\u00e7\u00e3o {0}, levando {1}.",
+ "LabelScheduledTaskLastRan": "\u00daltima execu\u00e7\u00e3o {0}, demorando {1}.",
"HeaderDeleteTaskTrigger": "Excluir Disparador da Tarefa",
"HeaderTaskTriggers": "Disparadores de Tarefa",
"MessageDeleteTaskTrigger": "Tem certeza que deseja excluir este disparador de tarefa?",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Idioma desconhecido",
"ButtonMute": "Mudo",
"ButtonUnmute": "Remover Mudo",
- "ButtonNextTrack": "Pr\u00f3xima Faixa",
"ButtonPause": "Pausar",
"ButtonPlay": "Reproduzir",
"ButtonEdit": "Editar",
"ButtonQueue": "Fila",
"ButtonPlayTrailer": "Reproduzir Trailer",
"ButtonPlaylist": "Lista reprodu\u00e7\u00e3o",
- "ButtonPreviousTrack": "Faixa Anterior",
"LabelEnabled": "Ativada",
"LabelDisabled": "Desativada",
"ButtonMoreInformation": "Mais informa\u00e7\u00f5es",
@@ -121,7 +127,7 @@
"MessageTheFollowingItemsWillBeGrouped": "Os seguintes t\u00edtulos ser\u00e3o agrupados em um \u00fanico item:",
"MessageConfirmItemGrouping": "Os clientes do Media Browser escolher\u00e3o automaticamente a vers\u00e3o ideal para reproduzir com base no performance do dispositivo e da rede. Tem certeza que deseja continuar?",
"HeaderResume": "Retomar",
- "HeaderMyLibrary": "Minha Biblioteca",
+ "HeaderMyViews": "My Views",
"HeaderLibraryFolders": "Visualiza\u00e7\u00e3o da Pasta",
"HeaderLatestMedia": "M\u00eddias Recentes",
"ButtonMore": "Mais...",
@@ -129,7 +135,7 @@
"HeaderFavoriteShows": "S\u00e9ries Favoritas",
"HeaderFavoriteEpisodes": "Epis\u00f3dios Favoritos",
"HeaderFavoriteGames": "Jogos Favoritos",
- "HeaderRatingsDownloads": "Critica \/ Transfer\u00eancias",
+ "HeaderRatingsDownloads": "Critica \/ Downloads",
"HeaderConfirmProfileDeletion": "Confirmar Exclus\u00e3o do Perfil",
"MessageConfirmProfileDeletion": "Tem certeza que deseja excluir este perfil?",
"HeaderSelectServerCachePath": "Selecione o Caminho do Cache do Servidor",
@@ -182,8 +188,10 @@
"LabelRunningOnPorts": "Dispon\u00edvel nas portas {0} e {1}.",
"HeaderLatestFromChannel": "\u00daltimo desde {0}",
"ButtonDownload": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "LabelUnknownLanaguage": "Idioma desconhecido",
+ "HeaderCurrentSubtitles": "Legendas Atuais",
+ "MessageDownloadQueued": "O download foi enfileirado.",
+ "MessageAreYouSureDeleteSubtitles": "Tem certeza que deseja excluir este arquivo de legendas?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 46b3830e1..89d5c217b 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Criar Senha",
+ "OptionOff": "Desligado",
+ "OptionOn": "Ligado",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "Configura\u00e7\u00f5es guardadas.",
"AddUser": "Adicionar Utilizador",
"Users": "Utilizadores",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Pr\u00f3xima Faixa",
"ButtonPause": "Pausar",
"ButtonPlay": "Reproduzir",
"ButtonEdit": "Editar",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Faixa Anterior",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resumir",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 99d50d32c..e64ac3606 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c",
+ "OptionOff": "\u0412\u044b\u043a\u043b",
+ "OptionOn": "\u0412\u043a\u043b",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0432\u0430 \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u043c\u0435\u0441\u0442\u0435.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
"SettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u044b\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.",
"AddUser": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f",
"Users": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "\u041d\u0435\u043e\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a",
"ButtonMute": "\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",
"ButtonUnmute": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",
- "ButtonNextTrack": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
"ButtonPause": "\u041f\u0430\u0443\u0437\u0430",
"ButtonPlay": "\u0412\u043e\u0441\u043f\u0440",
"ButtonEdit": "\u041f\u0440\u0430\u0432\u0438\u0442\u044c",
"ButtonQueue": "\u041e\u0447\u0435\u0440\u0435\u0434\u044c",
"ButtonPlayTrailer": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0442\u0440\u0435\u0439\u043b\u0435\u0440",
"ButtonPlaylist": "\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
- "ButtonPreviousTrack": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
"LabelEnabled": "\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u043e",
"LabelDisabled": "\u0412\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e",
"ButtonMoreInformation": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
@@ -121,9 +127,9 @@
"MessageTheFollowingItemsWillBeGrouped": "\u0412 \u0435\u0434\u0438\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f :",
"MessageConfirmItemGrouping": "\u041a\u043b\u0438\u0435\u043d\u0442\u044b Media Browser \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0442\u0438. \u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?",
"HeaderResume": "\u0412\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u0438\u043c\u044b\u0435",
- "HeaderMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
- "HeaderLibraryFolders": "\u0412\u0438\u0434 \u043f\u0430\u043f\u043e\u043a",
- "HeaderLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439",
+ "HeaderMyViews": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
+ "HeaderLibraryFolders": "\u041c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0438",
+ "HeaderLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u043e\u0432",
"ButtonMore": "\u0411\u043e\u043b\u0435\u0435...",
"HeaderFavoriteMovies": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b",
"HeaderFavoriteShows": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u044b",
@@ -181,9 +187,11 @@
"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": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "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",
+ "HeaderCurrentSubtitles": "\u0422\u0435\u043a\u0443\u0449\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
+ "MessageDownloadQueued": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c.",
+ "MessageAreYouSureDeleteSubtitles": "\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 \u0444\u0430\u0439\u043b \u0441\u0443\u0431\u0438\u0442\u0440\u043e\u0432?",
+ "ButtonRemoteControl": "\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e",
+ "HeaderLatestTvRecordings": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439"
} \ 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 5d3498c4c..47f2b8fdb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Av",
+ "OptionOn": "P\u00e5",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "V\u00e4lj tv\u00e5 eller flera objekt att gruppera.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "Mitt bibliotek",
"SettingsSaved": "Inst\u00e4llningarna sparade.",
"AddUser": "Skapa anv\u00e4ndare",
"Users": "Anv\u00e4ndare",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Ok\u00e4nt spr\u00e5k",
"ButtonMute": "Tyst",
"ButtonUnmute": "Muting av",
- "ButtonNextTrack": "N\u00e4sta sp\u00e5r",
"ButtonPause": "Paus",
"ButtonPlay": "Spela upp",
"ButtonEdit": "\u00c4ndra",
"ButtonQueue": "K\u00f6",
"ButtonPlayTrailer": "Spela upp trailer",
"ButtonPlaylist": "Spellista",
- "ButtonPreviousTrack": "F\u00f6reg\u00e5ende sp\u00e5r",
"LabelEnabled": "Aktiverad",
"LabelDisabled": "Avaktiverad",
"ButtonMoreInformation": "Mer information",
@@ -121,7 +127,7 @@
"MessageTheFollowingItemsWillBeGrouped": "F\u00f6ljande titlar kommer att grupperas till ett enda objekt:",
"MessageConfirmItemGrouping": "Media Browser-klienter kommer automatiskt att v\u00e4lja den b\u00e4sta versionen f\u00f6r uppspelning baserat p\u00e5 enhets- och n\u00e4tverksprestanda.Vill du forts\u00e4tta?",
"HeaderResume": "\u00c5teruppta",
- "HeaderMyLibrary": "Mitt bibliotek",
+ "HeaderMyViews": "Mina vyer",
"HeaderLibraryFolders": "Mappvy",
"HeaderLatestMedia": "Nytillkommet",
"ButtonMore": "Mer...",
@@ -181,9 +187,11 @@
"LabelRunningOnPort": "Anv\u00e4nder port {0}.",
"LabelRunningOnPorts": "Anv\u00e4nder port {0} och {1}.",
"HeaderLatestFromChannel": "Senaste fr\u00e5n {0}",
- "ButtonDownload": "Download",
- "LabelUnknownLanaguage": "Unknown language",
- "HeaderCurrentSubtitles": "Current Subtitles",
- "MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "ButtonDownload": "Ladda ned",
+ "LabelUnknownLanaguage": "Ok\u00e4nt spr\u00e5k",
+ "HeaderCurrentSubtitles": "Aktuella undertexter",
+ "MessageDownloadQueued": "Nedladdningen har lagts i k\u00f6n.",
+ "MessageAreYouSureDeleteSubtitles": "\u00c4r du s\u00e4ker p\u00e5 att du vill radera den h\u00e4r undertextfilen?",
+ "ButtonRemoteControl": "Fj\u00e4rrkontroll",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 0e21fc76a..8963853af 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "Create Password",
+ "OptionOff": "Off",
+ "OptionOn": "On",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "L\u01b0u c\u00e1c c\u00e0i \u0111\u1eb7t.",
"AddUser": "Th\u00eam ng\u01b0\u1eddi d\u00f9ng",
"Users": "Ng\u01b0\u1eddi d\u00f9ng",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "S\u01a1 y\u1ebfu l\u00fd l\u1ecbch",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 40e457f43..85ccd54eb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
@@ -1,4 +1,12 @@
{
+ "CreatePassword": "\u5275\u5efa\u5bc6\u78bc",
+ "OptionOff": "\u95dc\u9589",
+ "OptionOn": "\u958b\u555f",
+ "LabelAborted": "(Aborted by server shutdown)",
+ "MessagePleaseSelectItemsToGroup": "Please select two or more items to group together.",
+ "ButtonNextTrack": "Next Track",
+ "ButtonPreviousTrack": "Previous Track",
+ "HeaderMyLibrary": "My Library",
"SettingsSaved": "\u8a2d\u7f6e\u5df2\u4fdd\u5b58\u3002",
"AddUser": "\u6dfb\u52a0\u7528\u6236",
"Users": "\u7528\u6236",
@@ -58,14 +66,12 @@
"LabelUnknownLanguage": "Unknown language",
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
- "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "\u64ad\u653e",
"ButtonEdit": "\u7de8\u8f2f",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "PlayTrailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -121,8 +127,8 @@
"MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:",
"MessageConfirmItemGrouping": "Media Browser clients will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?",
"HeaderResume": "Resume",
- "HeaderMyLibrary": "My Library",
- "HeaderLibraryFolders": "Folder View",
+ "HeaderMyViews": "My Views",
+ "HeaderLibraryFolders": "Media Folders",
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "More...",
"HeaderFavoriteMovies": "Favorite Movies",
@@ -185,5 +191,7 @@
"LabelUnknownLanaguage": "Unknown language",
"HeaderCurrentSubtitles": "Current Subtitles",
"MessageDownloadQueued": "The download has been queued.",
- "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
+ "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?",
+ "ButtonRemoteControl": "Remote Control",
+ "HeaderLatestTvRecordings": "Latest Recordings"
} \ 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 7d558129a..ef58f37f9 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ar.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "\u0639\u0631\u0636 \u0641\u0642\u0637 \u0627\u0644\u062a\u0631\u062c\u0645\u0627\u062a \u0627\u0644\u0642\u0633\u0631\u064a\u0629",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "\u062e\u0631\u0648\u062c",
"LabelVisitCommunity": "\u0632\u064a\u0627\u0631\u0629 \u0627\u0644\u0645\u062c\u062a\u0645\u0639",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 ee4f7c0d1..05f519056 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Sortir",
"LabelVisitCommunity": "Visitar la comunitat",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 65f1d6814..167e21db8 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Aktualizace",
+ "HeaderUpdateLevel": "Level aktualizace",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Zobrazit pouze vynucen\u00e9 titulky",
+ "HeaderCustomizeOptionsPerMediaType": "Upravit nastaven\u00ed podle typu m\u00e9dia",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Chyba",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Zav\u0159\u00edt",
"LabelVisitCommunity": "Nav\u0161t\u00edvit komunitu",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Herci a obsazen\u00ed",
"HeaderAdditionalParts": "Dal\u0161\u00ed sou\u010d\u00e1sti",
"ButtonSplitVersionsApart": "Rozd\u011blit verze od sebe",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Chyb\u00ed",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Nahrazen\u00ed cest se pou\u017e\u00edv\u00e1 pro namapov\u00e1n\u00ed cest k serveru, kter\u00e9 je p\u0159\u00edstupn\u00e9 u\u017eivateli. Povolen\u00edm p\u0159\u00edm\u00e9ho p\u0159\u00edstupu m\u016f\u017ee umo\u017enit u\u017eivateli jeho p\u0159ehr\u00e1n\u00ed bez u\u017eit\u00ed streamov\u00e1n\u00ed a p\u0159ek\u00f3dov\u00e1n\u00ed servru.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Klienti",
"LabelCompleted": "Hotovo",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 1dbfbfbd1..e6ea74d50 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/da.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "Mit bibliotek",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Afslut",
"LabelVisitCommunity": "Bes\u00f8g F\u00e6lleskab",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scener",
"ButtonSubtitles": "Undertekster",
"ButtonAudioTracks": "Lyd filer",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "Mit bibliotek",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 28adedbf8..c0e2415c2 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/de.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Zeige nur erzwungene Untertitel",
+ "HeaderCustomizeOptionsPerMediaType": "Passe die Optionen per Medientyp an",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Gescheitert",
+ "LabelSeries": "Serien:",
+ "ButtonPreviousTrack": "Vorheriger Track",
+ "ButtonNextTrack": "N\u00e4chster Track",
+ "HeaderMyLibrary": "Meine Bibliothek",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Ende",
"LabelVisitCommunity": "Besuche die Community",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Besetzung & Crew",
"HeaderAdditionalParts": "Zus\u00e4tzliche Teile",
"ButtonSplitVersionsApart": "Spalte Versionen ab",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Fehlend",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Pfad Substitutionen werden zum Abbilden eines Pfad auf dem Server zu einem Pfad der Clients direkt zugreifen k\u00f6nnen, verwendet. Weil Clients direkten Zugang zu den Medien auf dem Server haben, sind sie in der Lage die Medien direkt \u00fcber das Netzwerk zu spielen und dabei vermeiden sie die nutzung von Server-Ressourcen f\u00fcr streaming transkodieren.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programm",
"HeaderClients": "Clients",
"LabelCompleted": "Fertiggestellt",
- "LabelFailed": "Failed",
"LabelSkipped": "\u00dcbersprungen",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Staffelnummer",
"LabelEpisodeNumber": "Episodennummer",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Szenen",
"ButtonSubtitles": "Untertitel",
"ButtonAudioTracks": "Audiospuren",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Gruppiere Filme in Collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Letzte Medien",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "Meine Bibliothek",
"LabelProfileCodecsHelp": "Getrennt durch Komma. Leerlassen, um auf alle Codecs anzuwenden.",
"LabelProfileContainersHelp": "Getrennt durch Komma. Leerlassen, um auf alle Container anzuwenden.",
"HeaderResponseProfile": "Antwort Profil",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Meldungen",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 929200abc..1caf760b1 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/el.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "\u03ad\u03be\u03bf\u03b4\u03bf\u03c2",
"LabelVisitCommunity": "\u0395\u03c0\u03af\u03c3\u03ba\u03b5\u03c8\u03b7 \u039a\u03bf\u03b9\u03bd\u03cc\u03c4\u03b7\u03c4\u03b1",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 57641701b..751d1e468 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customise options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Exit",
"LabelVisitCommunity": "Visit Community",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 28e67c615..503e8e8d6 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Exit",
"LabelVisitCommunity": "Visit Community",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 b2ac923bc..5819ab339 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Actualizaciones",
+ "HeaderUpdateLevel": "Nivel de actualizaci\u00f3n",
+ "LabelRequireTextSubtitles": "Descarga incluso si el v\u00eddeo ya contiene subt\u00edtulos gr\u00e1ficos",
+ "LabelRequireTextSubtitlesHelp": "Mantener versiones de texto de los subt\u00edtulos se traducir\u00e1 en una prestaci\u00f3n m\u00e1s eficiente para los clientes m\u00f3viles.",
+ "HeaderSubtitleDownloadingMoreHelp": "Los subt\u00edtulos se consideran faltantes cuando la pista de audio est\u00e1 en un idioma extranjero, y no hay subt\u00edtulos disponibles en el idioma preferido.",
+ "LabelDisplayForcedSubtitlesOnly": "Mostrar \u00fanicamente subtitulos forzados",
+ "HeaderCustomizeOptionsPerMediaType": "Personalizar las opciones por tipo de medio",
+ "LabelAudioLanguagePreferenceHelp": "Si est\u00e1 vac\u00edo, se seleccionar\u00e1 la pista de audio por defecto, sin importar el idioma.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "Todos los dispositivos",
+ "HeaderThisDevice": "Este dispositivo",
+ "OptionLibraryButtons": "Botones de biblioteca",
+ "OptionLibraryTiles": "T\u00edtulos de biblioteca",
+ "OptionSmallLibraryTiles": "T\u00edtulos de librer\u00eda (peque\u00f1o)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Err\u00f3neo",
+ "LabelSeries": "Serie:",
+ "ButtonPreviousTrack": "Pista anterior",
+ "ButtonNextTrack": "Pista siguiente",
+ "HeaderMyLibrary": "Mi librer\u00eda",
+ "HeaderLibraryViews": "Vistas de librer\u00eda",
"LabelExit": "Salir",
"LabelVisitCommunity": "Visitar la comunidad",
"LabelGithubWiki": "Wiki de Github",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Reparto y equipo t\u00e9cnico",
"HeaderAdditionalParts": "Partes adicionales",
"ButtonSplitVersionsApart": "Dividir versiones aparte",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Falta",
"LabelOffline": "Apagado",
"PathSubstitutionHelp": "Las rutas alternativas se utilizan para mapear una ruta en el servidor a la que los clientes puedan acceder. El permitir que los clientes se conecten directamente a trav\u00e9s de la red y puedan reproducir los medios directamente, evita utilizar recursos del servidor para la transcodificaci\u00f3n y el stream,",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Completado",
- "LabelFailed": "Error",
"LabelSkipped": "Omitido",
"HeaderEpisodeOrganization": "Organizaci\u00f3n de episodios",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Temporada n\u00famero:",
"LabelEpisodeNumber": "Episodio n\u00famero:",
"LabelEndingEpisodeNumber": "N\u00famero episodio final:",
@@ -630,8 +661,6 @@
"ButtonScenes": "Escenas",
"ButtonSubtitles": "Subt\u00edtulos",
"ButtonAudioTracks": "Pistas de audio",
- "ButtonPreviousTrack": "Pista anterior",
- "ButtonNextTrack": "Pista siguiente",
"ButtonStop": "Detener",
"ButtonPause": "Pausa",
"LabelGroupMoviesIntoCollections": "Agrupar pel\u00edculas en colecciones",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "\u00daltimos medios",
"OptionSpecialFeatures": "Caracter\u00edsticas especiales",
"HeaderCollections": "Colecciones",
- "HeaderMyLibrary": "Mi librer\u00eda",
"LabelProfileCodecsHelp": "Separados por comas. Esto se puede dejar vac\u00edo para aplicar a todos los codecs.",
"LabelProfileContainersHelp": "Separados por comas. Esto se puede dejar vac\u00edo para aplicar a todos los contenedores.",
"HeaderResponseProfile": "Perfil de respuesta",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Secci\u00f3n uno de la p\u00e1gina de inicio:",
"LabelHomePageSection2": "Secci\u00f3n dos de la p\u00e1gina de inicio:",
"LabelHomePageSection3": "Secci\u00f3n tres de la p\u00e1gina de inicio:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "Mi librer\u00eda (botones)",
"OptionMyLibrary": "Mi librer\u00eda",
"OptionMyLibrarySmall": "Mi librer\u00eda (peque\u00f1o)",
"OptionResumablemedia": "Continuar",
"OptionLatestMedia": "\u00daltimos medios",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "Nada",
"HeaderLiveTv": "TV en vivo",
"HeaderReports": "Informes",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Canales",
"ViewTypeLiveTV": "Tv en vivo",
"HeaderOtherDisplaySettings": "Configuraci\u00f3n de pantalla",
- "HeaderLibraryViews": "Vistas de librer\u00eda",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Agrupar autom\u00e1ticamente las siguientes carpetas en vistas tales como pel\u00edculas, m\u00fasica y televisi\u00f3n",
"LabelSelectFolderGroupsHelp": "Las carpetas que no est\u00e9n marcadas se mostrar\u00e1n por s\u00ed mismas en su propia secci\u00f3n.",
"OptionDisplayAdultContent": "Mostrar contenido para adultos",
- "OptionLibraryFolders": "Vista de carpeta"
+ "OptionLibraryFolders": "Vista de carpeta",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 20bd38e16..741646596 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "Cuando los usuarios reproduzcan contenidos",
+ "HeaderEnableNotificationForEvents": "Enviar notificaciones para los siguientes eventos:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Cuando se encuentren disponibles actualizaciones",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Cuando las tareas programadas fallen",
+ "OptionNotifyOnNewLibraryContent": "Cuando se a\u00f1adan nuevos contenidos a la biblioteca",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Actualizaciones",
+ "HeaderUpdateLevel": "Nivel de Actualizaci\u00f3n",
+ "LabelRequireTextSubtitles": "Descargar a\u00fan cuando el video ya contiene subt\u00edtulos gr\u00e1ficos",
+ "LabelRequireTextSubtitlesHelp": "Mantener versiones de texto de los subt\u00edtulos resultar\u00e1 en una entrega m\u00e1s eficiente para clientes m\u00f3viles.",
+ "HeaderSubtitleDownloadingMoreHelp": "Los subt\u00edtulos se consideran como faltantes cuando la pista de audio se encuentra en un lenguaje extranjero y no se cuenta con subt\u00edtulos disponibles en el lenguaje preferido.",
+ "LabelDisplayForcedSubtitlesOnly": "Mostrar \u00fanicamente subtitulos forzados",
+ "HeaderCustomizeOptionsPerMediaType": "Personalice opciones por tipo de medio",
+ "LabelAudioLanguagePreferenceHelp": "Si se deja vac\u00edo, la pista de audio por defecto ser\u00e1 seleccionada, independientemente del lenguaje.",
+ "TabCustomizations": "Personalizaciones",
+ "HeaderAllDevices": "Todos los Dispositivos",
+ "HeaderThisDevice": "Este Dispositivo",
+ "OptionLibraryButtons": "Botones de la biblioteca",
+ "OptionLibraryTiles": "Mosaicos de biblioteca (largo)",
+ "OptionSmallLibraryTiles": "Mosaicos de biblioteca (peque\u00f1o)",
+ "ButtonPlayTrailer": "Avance",
+ "LabelFailed": "Fallido",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Pista Anterior",
+ "ButtonNextTrack": "Pista Siguiente",
+ "HeaderMyLibrary": "Mi Biblioteca",
+ "HeaderLibraryViews": "Vistas de Biblioteca",
"LabelExit": "Salir",
"LabelVisitCommunity": "Visitar la Comunidad",
"LabelGithubWiki": "Wiki de Github",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Reparto y Personal",
"HeaderAdditionalParts": "Partes Adicionales",
"ButtonSplitVersionsApart": "Separar Versiones",
- "ButtonPlayTrailer": "Avance",
"LabelMissing": "Falta",
"LabelOffline": "Desconectado",
"PathSubstitutionHelp": "Las rutas alternativas se utilizan para mapear una ruta en el servidor a la que los clientes puedan acceder. Al permitir a los clientes acceder directamente a los medios en el servidor podr\u00e1n reproducirlos directamente a trav\u00e9s de la red evitando el uso de recursos del servidor para transmitirlos y transcodificarlos.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Completado",
- "LabelFailed": "Fallido",
"LabelSkipped": "Omitido",
"HeaderEpisodeOrganization": "Organizaci\u00f3n de Episodios",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "N\u00famero de temporada",
"LabelEpisodeNumber": "N\u00famero de episodio",
"LabelEndingEpisodeNumber": "N\u00famero episodio final",
@@ -630,8 +661,6 @@
"ButtonScenes": "Escenas",
"ButtonSubtitles": "Subt\u00edtulos",
"ButtonAudioTracks": "Pistas de audio",
- "ButtonPreviousTrack": "Pista anterior",
- "ButtonNextTrack": "Pista siguiente",
"ButtonStop": "Detener",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Agrupar pel\u00edculas en colecciones",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Agregados Recientemente",
"OptionSpecialFeatures": "Caracter\u00edsticas Especiales",
"HeaderCollections": "Colecciones",
- "HeaderMyLibrary": "Mi Biblioteca",
"LabelProfileCodecsHelp": "Separados por comas. Puede dejarse vaci\u00f3 para aplicarlo a todos los codecs.",
"LabelProfileContainersHelp": "Separados por comas. Puede dejarse vaci\u00f3 para aplicarlo a todos los contenedores.",
"HeaderResponseProfile": "Perfil de Respuesta:",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Pagina principal secci\u00f3n uno:",
"LabelHomePageSection2": "Pagina principal secci\u00f3n dos:",
"LabelHomePageSection3": "Pagina principal secci\u00f3n tres:",
+ "LabelHomePageSection4": "Pagina principal secci\u00f3n cuatro:",
"OptionMyLibraryButtons": "Mi Biblioteca (botones)",
"OptionMyLibrary": "Mi Biblioteca",
"OptionMyLibrarySmall": "Mi Biblioteca (peque\u00f1o)",
"OptionResumablemedia": "Reanudar",
"OptionLatestMedia": "Agregados recientemente",
+ "OptionLatestChannelMedia": "Elementos recientes de canales",
+ "HeaderLatestChannelItems": "Elementos Recientes de Canales",
"OptionNone": "Ninguno",
"HeaderLiveTv": "TV en Vivo",
"HeaderReports": "Reportes",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Canales",
"ViewTypeLiveTV": "TV en Vivo",
"HeaderOtherDisplaySettings": "Configuraci\u00f3n de Pantalla",
- "HeaderLibraryViews": "Vistas de Biblioteca",
+ "HeaderMyViews": "Mis Vistas",
"LabelSelectFolderGroups": "Agrupar autom\u00e1ticamente el contenido de las siguientes carpetas en vistas tales como Pel\u00edculas, M\u00fasica y TV:",
"LabelSelectFolderGroupsHelp": "Las carpetas sin marcar ser\u00e1n desplegadas individualmente en su propia vista.",
"OptionDisplayAdultContent": "Desplegar contenido para Adultos",
- "OptionLibraryFolders": "Vista de carpetas"
+ "OptionLibraryFolders": "Carpetas de medios",
+ "TitleRemoteControl": "Control Remoto",
+ "OptionLatestTvRecordings": "\u00daltimas grabaciones"
} \ 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 ac668901d..3975d5b43 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Mises \u00e0 jour",
+ "HeaderUpdateLevel": "Niveau de mise \u00e0 jour",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Les sous-titres son consid\u00e9r\u00e9s manquants lorsque la piste audio est dans une langue \u00e9trang\u00e8re, et qu'aucun sous-titre n'est disponible dans la langue pr\u00e9f\u00e9r\u00e9e.",
+ "LabelDisplayForcedSubtitlesOnly": "Afficher seulement les sous-titres forc\u00e9s",
+ "HeaderCustomizeOptionsPerMediaType": "Personnaliser les param\u00e8tres par type de m\u00e9dias",
+ "LabelAudioLanguagePreferenceHelp": "Si laiss\u00e9 vide, la piste audio par d\u00e9faut sera s\u00e9lectionn\u00e9e, peu importe la langue.",
+ "TabCustomizations": "Personnalisations",
+ "HeaderAllDevices": "Tous les appareils",
+ "HeaderThisDevice": "Cet appareil",
+ "OptionLibraryButtons": "Boutons de r\u00e9pertoires de m\u00e9dias",
+ "OptionLibraryTiles": "Tuiles de r\u00e9pertoires de m\u00e9dias",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Bande-annonce",
+ "LabelFailed": "\u00c9chec",
+ "LabelSeries": "S\u00e9ries:",
+ "ButtonPreviousTrack": "Piste pr\u00e9c\u00e9dante",
+ "ButtonNextTrack": "Piste suivante",
+ "HeaderMyLibrary": "Ma biblioth\u00e8que",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Quitter",
"LabelVisitCommunity": "Visiter la Communaut\u00e9",
"LabelGithubWiki": "GitHub Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "\u00c9quipe de tournage",
"HeaderAdditionalParts": "Parties Additionelles",
"ButtonSplitVersionsApart": "S\u00e9parer les versions",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Manquant(s)",
"LabelOffline": "Hors ligne",
"PathSubstitutionHelp": "Les substitutions de chemins d'acc\u00e8s sont utilis\u00e9es pour faire correspondre un chemin d'acc\u00e8s du serveur \u00e0 un chemin d'acc\u00e8s accessible par les clients. En autorisant un acc\u00e8s direct aux m\u00e9dias du serveur, les clients pourront les lire directement du r\u00e9seau et \u00e9viter l'utilisation inutiles des ressources du serveur en demandant du transcodage.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programme",
"HeaderClients": "Clients",
"LabelCompleted": "Compl\u00e9t\u00e9",
- "LabelFailed": "Failed",
"LabelSkipped": "Saut\u00e9",
"HeaderEpisodeOrganization": "Organisation d'\u00e9pisodes",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Num\u00e9ro de saison",
"LabelEpisodeNumber": "Num\u00e9ro d'\u00e9pisode",
"LabelEndingEpisodeNumber": "Num\u00e9ro d'\u00e9pisode se terminant",
@@ -630,8 +661,6 @@
"ButtonScenes": "Sc\u00e8nes",
"ButtonSubtitles": "Sous-titres",
"ButtonAudioTracks": "Piste audio",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Arr\u00eat",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Grouper les films en collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Derniers m\u00e9dias",
"OptionSpecialFeatures": "\u00c9v\u00eanements sp\u00e9ciaux",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "Ma biblioth\u00e8que",
"LabelProfileCodecsHelp": "S\u00e9par\u00e9s par des virgules. Peut \u00eatre laiss\u00e9 vide pour appliquer tous les codecs.",
"LabelProfileContainersHelp": "S\u00e9par\u00e9s par des virgules. Peut \u00eatre laiss\u00e9 vide pour appliquer tous les conteneurs.",
"HeaderResponseProfile": "Profil de r\u00e9ponse",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Section 1 de la page de d\u00e9marrage:",
"LabelHomePageSection2": "Section 2 de la page de d\u00e9marrage:",
"LabelHomePageSection3": "Section 3 de la page de d\u00e9marrage:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Reprendre",
"OptionLatestMedia": "Les plus r\u00e9cents",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "Aucun",
"HeaderLiveTv": "TV en directe",
"HeaderReports": "Rapports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 91ec33054..66c33c3d9 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/he.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "\u05e2\u05d9\u05d3\u05db\u05d5\u05e0\u05d9\u05dd",
+ "HeaderUpdateLevel": "\u05e8\u05de\u05ea \u05d4\u05e2\u05d9\u05d3\u05db\u05d5\u05df",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "\u05d4\u05e6\u05d2 \u05e8\u05e7 \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea \u05de\u05d0\u05d5\u05dc\u05e6\u05d5\u05ea",
+ "HeaderCustomizeOptionsPerMediaType": "\u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05ea\u05d0\u05de\u05d4 \u05dc\u05e4\u05d9 \u05e1\u05d5\u05d2 \u05de\u05d3\u05d9\u05d4",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "\u05d8\u05e8\u05d9\u05d9\u05dc\u05e8\u05d9\u05dd",
+ "LabelFailed": "\u05e0\u05db\u05e9\u05dc",
+ "LabelSeries": "\u05e1\u05d3\u05e8\u05d4:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "\u05d9\u05e6\u05d9\u05d0\u05d4",
"LabelVisitCommunity": "\u05d1\u05e7\u05e8 \u05d1\u05e7\u05d4\u05d9\u05dc\u05d4",
"LabelGithubWiki": "\u05e1\u05e4\u05e8\u05d9\u05d9\u05ea \u05d4\u05e7\u05d5\u05d3",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "\u05e9\u05d7\u05e7\u05e0\u05d9\u05dd \u05d5\u05e6\u05d5\u05d5\u05ea",
"HeaderAdditionalParts": "\u05d7\u05dc\u05e7\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd",
"ButtonSplitVersionsApart": "\u05e4\u05e6\u05dc \u05d2\u05e8\u05e1\u05d0\u05d5\u05ea \u05d1\u05e0\u05e4\u05e8\u05d3",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "\u05d7\u05e1\u05e8",
"LabelOffline": "\u05dc\u05d0 \u05de\u05e7\u05d5\u05d5\u05df",
"PathSubstitutionHelp": "\u05e0\u05ea\u05d9\u05d1\u05d9\u05dd \u05d7\u05dc\u05d5\u05e4\u05d9\u05d9\u05dd \u05d4\u05dd \u05dc\u05e6\u05d5\u05e8\u05da \u05de\u05d9\u05e4\u05d5\u05d9 \u05e0\u05ea\u05d9\u05d1\u05d9\u05dd \u05d1\u05e9\u05e8\u05ea \u05dc\u05e0\u05ea\u05d9\u05d1\u05d9\u05dd \u05e9\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05d2\u05e9\u05ea \u05d0\u05dc\u05d9\u05d4\u05dd. \u05e2\u05dc \u05d9\u05d3\u05d9 \u05d4\u05e8\u05e9\u05d0\u05d4 \u05dc\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d2\u05d9\u05e9\u05d4 \u05d9\u05e9\u05d9\u05e8\u05d4 \u05dc\u05de\u05d3\u05d9\u05d4 \u05d1\u05e9\u05e8\u05ea \u05d0\u05dd \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05e0\u05d2\u05df \u05d0\u05ea \u05d4\u05e7\u05d1\u05e6\u05d9\u05dd \u05d9\u05e9\u05d9\u05e8\u05d5\u05ea \u05e2\u05dc \u05d2\u05d1\u05d9 \u05d4\u05e8\u05e9\u05ea \u05d5\u05dc\u05d4\u05d9\u05de\u05e0\u05e2 \u05de\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1\u05de\u05e9\u05d0\u05d1\u05d9 \u05d4\u05e9\u05e8\u05ea \u05dc\u05e6\u05d5\u05e8\u05da \u05e7\u05d9\u05d3\u05d5\u05d3 \u05d5\u05e9\u05d9\u05d3\u05d5\u05e8.",
@@ -479,10 +512,8 @@
"HeaderProgram": "\u05ea\u05d5\u05db\u05e0\u05d4",
"HeaderClients": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd",
"LabelCompleted": "\u05d4\u05d5\u05e9\u05dc\u05dd",
- "LabelFailed": "Failed",
"LabelSkipped": "\u05d3\u05d5\u05dc\u05d2",
"HeaderEpisodeOrganization": "\u05d0\u05d9\u05e8\u05d2\u05d5\u05df \u05e4\u05e8\u05e7\u05d9\u05dd",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "\u05de\u05e1\u05e4\u05e8 \u05e2\u05d5\u05e0\u05d4:",
"LabelEpisodeNumber": "\u05de\u05e1\u05e4\u05e8 \u05e4\u05e8\u05e7:",
"LabelEndingEpisodeNumber": "\u05de\u05e1\u05e4\u05e8 \u05e1\u05d9\u05d5\u05dd \u05e4\u05e8\u05e7:",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 1889ff91d..53e13727b 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/it.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Aggiornamenti",
+ "HeaderUpdateLevel": "Livello",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Visualizzare solo i sottotitoli forzati",
+ "HeaderCustomizeOptionsPerMediaType": "Personalizza le opzioni per i media.",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Personalizzazioni",
+ "HeaderAllDevices": "Tutti i dispositivi",
+ "HeaderThisDevice": "Questo dispositivo",
+ "OptionLibraryButtons": "Bottoni libreria",
+ "OptionLibraryTiles": "Files Libreria",
+ "OptionSmallLibraryTiles": "Titles Biblioteca (piccolo)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Fallito",
+ "LabelSeries": "Serie:",
+ "ButtonPreviousTrack": "Precedente",
+ "ButtonNextTrack": "Prossimo",
+ "HeaderMyLibrary": "Mia Libreria",
+ "HeaderLibraryViews": "Biblioteca Visualizzazioni",
"LabelExit": "Esci",
"LabelVisitCommunity": "Visita Comunit\u00e0",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Parti addizionali",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "mancante",
"LabelOffline": "Spento",
"PathSubstitutionHelp": "il percorso 'sostituzioni' vengono utilizzati per mappare un percorso sul server per un percorso che i client sono in grado di accedere. Consentendo ai clienti l'accesso diretto ai media sul server possono essere in grado di giocare direttamente attraverso la rete ed evitare di utilizzare le risorse del server per lo streaming e transcodificare tra di loro.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programma",
"HeaderClients": "Dispositivi",
"LabelCompleted": "Completato",
- "LabelFailed": "Failed",
"LabelSkipped": "Saltato",
"HeaderEpisodeOrganization": "Organizzazione Episodi",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Numero Stagione:",
"LabelEpisodeNumber": "Numero Episodio:",
"LabelEndingEpisodeNumber": "Ultimo Episodio Numero:",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scene",
"ButtonSubtitles": "Sottotitoli",
"ButtonAudioTracks": "Traccia Audio",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pausa",
"LabelGroupMoviesIntoCollections": "Raggruppa i film nelle collection",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Ultimi Media",
"OptionSpecialFeatures": "caratteristiche Speciali",
"HeaderCollections": "Collezioni",
- "HeaderMyLibrary": "Mia Libreria",
"LabelProfileCodecsHelp": "Separati da virgola. Questo pu\u00f2 essere lasciato vuoto da applicare a tutti i codec.",
"LabelProfileContainersHelp": "Separati da virgola. Questo pu\u00f2 essere lasciato vuoto da applicare a tutti i contenitori.",
"HeaderResponseProfile": "Risposta Profilo",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Sezione 1 pagina iniziale",
"LabelHomePageSection2": "Sezione 2 pagina iniziale",
"LabelHomePageSection3": "Sezione 3 pagina iniziale",
+ "LabelHomePageSection4": "Sezione Home page sezione quattro:",
"OptionMyLibraryButtons": "Mia libreria",
"OptionMyLibrary": "Mia libreria",
"OptionMyLibrarySmall": "Mia libreria",
"OptionResumablemedia": "Riprendi",
"OptionLatestMedia": "Ultimo media",
+ "OptionLatestChannelMedia": "Ultime voci del canale",
+ "HeaderLatestChannelItems": "Ultime Canale Articoli",
"OptionNone": "Nessuno",
"HeaderLiveTv": "Diretta TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Canali",
"ViewTypeLiveTV": "Tv diretta",
"HeaderOtherDisplaySettings": "Impostazioni Video",
- "HeaderLibraryViews": "Biblioteca Visualizzazioni",
+ "HeaderMyViews": "Mie viste",
"LabelSelectFolderGroups": "Automaticamente i contenuti del gruppo dalle seguenti cartelle nella vista come film, musica e TV:",
"LabelSelectFolderGroupsHelp": "Le cartelle che siano deselezionate verranno visualizzati da soli nel loro punto di vista.",
"OptionDisplayAdultContent": "Visualizzazioni contenuti per adulti",
- "OptionLibraryFolders": "Vista"
+ "OptionLibraryFolders": "Vista",
+ "TitleRemoteControl": "Telecomando",
+ "OptionLatestTvRecordings": "Ultime registrazioni"
} \ 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 c05ec1c31..8122c030c 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "\u041f\u0430\u0439\u0434\u0430\u043b\u0443\u043d\u044b\u0448\u044b\u043b\u0430\u0440 \u043c\u0430\u0437\u043c\u04b1\u043d\u0434\u044b \u043e\u0439\u043d\u0430\u0442\u049b\u0430\u0434\u0430",
+ "HeaderEnableNotificationForEvents": "\u041d\u0435 \u0431\u043e\u043b\u0493\u0430\u043d\u0434\u0430 \u04d9\u043a\u0456\u043c\u0448\u0456\u043b\u0435\u0440\u0434\u0456 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443:",
+ "HeaderEnableNotificationForPlayback": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440 \u043e\u0439\u043d\u0430\u0493\u0430\u043d\u0434\u0430 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443:",
+ "OptionNotifyOnUpdates": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443\u043b\u0430\u0440 \u049b\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456",
+ "OptionNotifyOnVideoPlayback": "\u0411\u0435\u0439\u043d\u0435 \u043e\u0439\u043d\u0430\u0442\u0443",
+ "OptionNotifyOnAudioPlayback": "\u0414\u044b\u0431\u044b\u0441 \u043e\u0439\u043d\u0430\u0442\u0443",
+ "OptionNotifyOnGamePlayback": "\u041e\u0439\u044b\u043d\u0434\u0430\u0440 \u043e\u0439\u043d\u0430\u0442\u0443",
+ "OptionNotifyOnFailedTasks": "\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",
+ "OptionNotifyOnNewLibraryContent": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u0493\u0430 \u0436\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u04af\u0441\u0442\u0435\u043b\u0433\u0435\u043d",
+ "OptionNotifyOnServerRestartRequired": "\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",
+ "NotificationOptionUpdatesAvailable": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443\u043b\u0430\u0440 \u049b\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456",
+ "NotificationOptionFailedTasks": "\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",
+ "TabUpdates": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443\u043b\u0430\u0440",
+ "HeaderUpdateLevel": "\u0416\u0430\u04a3\u0430\u0440\u0442\u0443 \u0434\u0435\u04a3\u0433\u0435\u0439\u0456",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "\u0422\u0435\u043a \u049b\u0430\u043d\u0430 \u043c\u04d9\u0436\u0431\u04af\u0440\u043b\u0456 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440\u0434\u0456 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0443",
+ "HeaderCustomizeOptionsPerMediaType": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0434\u0456 \u0442\u0430\u0441\u0443\u0448\u044b \u0442\u04af\u0440\u0456 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u0435\u04a3\u0448\u0435\u0443",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "\u0411\u0430\u0440\u043b\u044b\u049b \u0436\u0430\u0431\u0434\u044b\u049b\u0442\u0430\u0440",
+ "HeaderThisDevice": "\u041e\u0441\u044b \u0436\u0430\u0431\u0434\u044b\u049b",
+ "OptionLibraryButtons": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u0442\u04af\u0439\u043c\u0435\u0448\u0456\u043a\u0442\u0435\u0440\u0456",
+ "OptionLibraryTiles": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u049b\u0430\u0442\u0430\u0440\u043b\u0430\u0440\u044b (\u04af\u043b\u043a\u0435\u043d)",
+ "OptionSmallLibraryTiles": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u049b\u0430\u0442\u0430\u0440\u043b\u0430\u0440\u044b (\u043a\u0456\u0448\u0456)",
+ "ButtonPlayTrailer": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440",
+ "LabelFailed": "\u0421\u04d9\u0442\u0441\u0456\u0437",
+ "LabelSeries": "\u0421\u0435\u0440\u0438\u0430\u043b:",
+ "ButtonPreviousTrack": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b \u0436\u043e\u043b\u0448\u044b\u049b",
+ "ButtonNextTrack": "\u041a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u0448\u044b\u049b",
+ "HeaderMyLibrary": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c",
+ "HeaderLibraryViews": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456",
"LabelExit": "\u0428\u044b\u0493\u0443",
"LabelVisitCommunity": "\u049a\u0430\u0443\u044b\u043c\u0434\u0430\u0441\u0442\u044b\u049b\u049b\u0430 \u0431\u0430\u0440\u0443",
"LabelGithubWiki": "Github \u0443\u0438\u043a\u0438\u0456",
@@ -32,7 +66,7 @@
"LabelEnableChapterImageExtractionForMovies": "\u0424\u0438\u043b\u044c\u043c\u0434\u0435\u0440 \u04af\u0448\u0456\u043d \u0441\u0430\u0445\u043d\u0430 \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d \u0448\u044b\u0493\u0430\u0440\u044b\u043f \u0430\u043b\u0443\u0434\u044b \u049b\u043e\u0441\u0443",
"LabelChapterImageExtractionForMoviesHelp": "\u0421\u0430\u0445\u043d\u0430 \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d \u0448\u044b\u0493\u0430\u0440\u044b\u043f \u0430\u043b\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440\u0433\u0435 \u0441\u0430\u0445\u043d\u0430 \u0431\u04e9\u043b\u0435\u043a\u0442\u0435\u0443\u0433\u0435 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d \u0441\u044b\u0437\u0431\u0430\u043b\u044b\u049b \u043c\u04d9\u0437\u0456\u0440\u043b\u0435\u0440\u0434\u0456 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u0411\u04b1\u043b \u043f\u0440\u043e\u0446\u0435\u0441 \u0431\u0430\u044f\u0443, \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0434\u044b \u0442\u043e\u0437\u0434\u044b\u0440\u0430\u0442\u044b\u043d \u0436\u04d9\u043d\u0435 \u0431\u0456\u0440\u0430\u0437 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u043a\u0435\u04a3\u0456\u0441\u0442\u0456\u043a\u0442\u0456 \u049b\u0430\u0436\u0435\u0442 \u0435\u0442\u0435\u0442\u0456\u043d \u0431\u043e\u043b\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d. \u0411\u04b1\u043b \u0442\u04af\u043d\u0433\u0456 4:00 \u0441\u0430\u0493\u0430\u0442\u044b\u043d\u0430 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d \u0442\u0430\u043f\u0441\u044b\u0440\u043c\u0430 \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0439\u0434\u0456, \u0434\u0435\u0433\u0435\u043d\u043c\u0435\u043d \u0431\u04b1\u043b \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d \u0442\u0430\u043f\u0441\u044b\u0440\u043c\u0430\u043b\u0430\u0440 \u0430\u0439\u043c\u0430\u0493\u044b\u043d\u0434\u0430 \u0442\u0435\u04a3\u0448\u0435\u043b\u0435\u0434\u0456. \u0411\u04b1\u043b \u0442\u0430\u043f\u0441\u044b\u0440\u043c\u0430\u043d\u044b \u049b\u0430\u0440\u0431\u0430\u043b\u0430\u0441 \u0441\u0430\u0493\u0430\u0442\u0442\u0430\u0440\u044b\u043d\u0434\u0430 \u043e\u0440\u044b\u043d\u0434\u0430\u0443 \u04b1\u0441\u044b\u043d\u044b\u043b\u043c\u0430\u0439\u0434\u044b.",
"LabelEnableAutomaticPortMapping": "\u041f\u043e\u0440\u0442 \u0430\u0432\u0442\u043e\u0441\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443\u044b\u043d \u049b\u043e\u0441\u0443",
- "LabelEnableAutomaticPortMappingHelp": "UPnP \u0430\u043b\u044b\u0441\u0442\u0430\u043d \u0436\u0435\u04a3\u0456\u043b \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u04af\u0448\u0456\u043d \u0440\u043e\u0443\u0442\u0435\u0440\u0434\u0456 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043b\u0430\u0443\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u0411\u04b1\u043b \u043a\u0435\u0439\u0431\u0456\u0440 \u0440\u043e\u0443\u0442\u0435\u0440 \u04b1\u043b\u0433\u0456\u043b\u0435\u0440\u0456\u043c\u0435\u043d \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u043c\u0435\u0439\u0442\u0456\u043d\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
+ "LabelEnableAutomaticPortMappingHelp": "UPnP \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443\u0434\u044b \u0436\u0435\u04a3\u0456\u043b\u0434\u0435\u0442\u0443 \u04af\u0448\u0456\u043d \u0440\u043e\u0443\u0442\u0435\u0440\u0434\u0456 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043b\u0430\u0443\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u0411\u04b1\u043b \u043a\u0435\u0439\u0431\u0456\u0440 \u0440\u043e\u0443\u0442\u0435\u0440 \u04b1\u043b\u0433\u0456\u043b\u0435\u0440\u0456\u043c\u0435\u043d \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u043c\u0435\u0439\u0442\u0456\u043d\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
"ButtonOk": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b",
"ButtonCancel": "\u0411\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
"ButtonNew": "\u0416\u0430\u0441\u0430\u0443",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "\u0422\u04af\u0441\u0456\u0440\u0443\u0433\u0435 \u049b\u0430\u0442\u044b\u0441\u049b\u0430\u043d\u0434\u0430\u0440",
"HeaderAdditionalParts": "\u0416\u0430\u043b\u0493\u0430\u0441\u0430\u0442\u044b\u043d \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440",
"ButtonSplitVersionsApart": "\u041d\u04af\u0441\u049b\u0430\u043b\u0430\u0440\u0434\u044b \u049b\u0430\u0439\u0442\u0430 \u0431\u04e9\u043b\u0443",
- "ButtonPlayTrailer": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440",
"LabelMissing": "\u0416\u043e\u049b",
"LabelOffline": "\u049a\u043e\u0441\u044b\u043b\u043c\u0430\u0493\u0430\u043d",
"PathSubstitutionHelp": "\u0416\u043e\u043b \u0430\u043b\u043c\u0430\u0441\u0442\u044b\u0440\u0443\u043b\u0430\u0440\u044b\u043d \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0435\u0433\u0456 \u0436\u043e\u043b\u0434\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0430 \u0430\u043b\u0430\u0442\u044b\u043d \u0436\u043e\u043b\u043c\u0435\u043d \u0441\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0430\u0434\u044b. \u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0435\u0433\u0456 \u0442\u0430\u0441\u0443\u0448\u044b\u043b\u0430\u0440\u0493\u0430 \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u04af\u0448\u0456\u043d \u043a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440\u0433\u0435 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0456\u043b\u0433\u0435\u043d\u0434\u0435, \u0431\u04b1\u043b\u0430\u0440 \u0442\u0430\u0441\u0443\u0448\u044b\u043d\u044b \u0436\u0435\u043b\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u043e\u0439\u043d\u0430\u0442\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0436\u04d9\u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0435\u0441\u0443\u0440\u0441\u0442\u0430\u0440\u044b\u043d \u0430\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443 \u04af\u0448\u0456\u043d \u0436\u04d9\u043d\u0435 \u049b\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443 \u04af\u0448\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0434\u0430\u043d \u0436\u0430\u043b\u0442\u0430\u0440\u0430\u0434\u044b.",
@@ -428,7 +461,7 @@
"EditCollectionItemsHelp": "\u0411\u04b1\u043b \u0442\u043e\u043f\u0442\u0430\u043c\u0430\u0493\u0430 \u049b\u0430\u043b\u0430\u0443\u044b\u04a3\u044b\u0437 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u04d9\u0440\u049b\u0430\u0439\u0441\u044b \u0444\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 \u043d\u0435 \u043e\u0439\u044b\u043d\u0434\u0430\u0440\u0434\u044b \u04af\u0441\u0442\u0435\u04a3\u0456\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u0430\u043b\u0430\u0441\u0442\u0430\u04a3\u044b\u0437.",
"HeaderAddTitles": "\u0410\u0442\u0430\u0443\u043b\u0430\u0440\u0434\u044b \u04af\u0441\u0442\u0435\u0443",
"LabelEnableDlnaPlayTo": "DLNA \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u0441\u044b\u043d\u0434\u0430 \u043e\u0439\u043d\u0430\u0442\u0443\u0434\u044b \u049b\u043e\u0441\u0443",
- "LabelEnableDlnaPlayToHelp": "Media Browser \u0436\u0435\u043b\u0456\u0434\u0435\u0433\u0456 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u0434\u044b \u0442\u0430\u0431\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0436\u04d9\u043d\u0435 \u0431\u04b1\u043b\u0430\u0440\u0434\u044b \u0430\u043b\u044b\u0441\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d \u04b1\u0441\u044b\u043d\u0430\u0434\u044b.",
+ "LabelEnableDlnaPlayToHelp": "Media Browser \u0436\u0435\u043b\u0456\u0434\u0435\u0433\u0456 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u0434\u044b \u0442\u0430\u0431\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0436\u04d9\u043d\u0435 \u0431\u04b1\u043b\u0430\u0440\u0434\u044b \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d \u04b1\u0441\u044b\u043d\u0430\u0434\u044b.",
"LabelEnableDlnaDebugLogging": "DLNA \u043a\u04af\u0439\u043a\u0435\u043b\u0442\u0456\u0440\u0443 \u0436\u0430\u0437\u0431\u0430\u043b\u0430\u0440\u044b\u043d \u0436\u04b1\u0440\u043d\u0430\u043b\u0434\u0430 \u049b\u043e\u0441\u0443",
"LabelEnableDlnaDebugLoggingHelp": "\u04e8\u0442\u0435 \u0430\u0443\u049b\u044b\u043c\u0434\u044b \u0436\u04b1\u0440\u043d\u0430\u043b \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u0436\u0430\u0441\u0430\u043b\u0430\u0434\u044b \u0436\u04d9\u043d\u0435 \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u0430\u049b\u0430\u0443\u043b\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u0436\u043e\u044e \u04af\u0448\u0456\u043d \u049b\u0430\u0436\u0435\u0442 \u0431\u043e\u043b\u0493\u0430\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0430\u0434\u044b.",
"LabelEnableDlnaClientDiscoveryInterval": "\u041a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440\u0434\u0456 \u0442\u0430\u0443\u044b\u043f \u0430\u0448\u0443 \u0430\u0440\u0430\u043b\u044b\u0493\u044b, \u0441:",
@@ -458,9 +491,9 @@
"ButtonCreate": "\u0416\u0430\u0441\u0430\u0443",
"LabelHttpServerPortNumber": "HTTP \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u043e\u0440\u0442\u044b\u043d\u044b\u04a3 \u043d\u04e9\u043c\u0456\u0440\u0456:",
"LabelWebSocketPortNumber": "\u0412\u0435\u0431-\u0441\u043e\u043a\u0435\u0442 \u043f\u043e\u0440\u0442\u044b\u043d\u044b\u04a3 \u043d\u04e9\u043c\u0456\u0440\u0456:",
- "LabelEnableAutomaticPortHelp": "UPnP \u0430\u043b\u044b\u0441\u0442\u0430\u043d \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u04af\u0448\u0456\u043d \u0440\u043e\u0443\u0442\u0435\u0440\u0434\u0456 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043b\u0430\u0443\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u0411\u04b1\u043b \u043a\u0435\u0439\u0431\u0456\u0440 \u0440\u043e\u0443\u0442\u0435\u0440 \u04b1\u043b\u0433\u0456\u043b\u0435\u0440\u0456\u043c\u0435\u043d \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u043c\u0435\u0439\u0442\u0456\u043d\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
+ "LabelEnableAutomaticPortHelp": "UPnP \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u04af\u0448\u0456\u043d \u0440\u043e\u0443\u0442\u0435\u0440\u0434\u0456 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043b\u0430\u0443\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u0411\u04b1\u043b \u043a\u0435\u0439\u0431\u0456\u0440 \u0440\u043e\u0443\u0442\u0435\u0440 \u04b1\u043b\u0433\u0456\u043b\u0435\u0440\u0456\u043c\u0435\u043d \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u043c\u0435\u0439\u0442\u0456\u043d\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
"LabelExternalDDNS": "\u0421\u044b\u0440\u0442\u049b\u044b DDNS:",
- "LabelExternalDDNSHelp": "\u0415\u0433\u0435\u0440 dynamic DNS \u0431\u043e\u043b\u0441\u0430, \u0431\u04b1\u043d\u044b \u043c\u04b1\u043d\u0434\u0430 \u0435\u043d\u0433\u0456\u0437\u0456\u04a3\u0456\u0437. Media Browser \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430\u043b\u0430\u0440\u044b \u0431\u04b1\u043d\u044b \u0430\u043b\u044b\u0441\u0442\u0430\u043d \u049b\u043e\u0441\u044b\u043b\u0493\u0430\u043d\u0434\u0430 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0430\u0434\u044b.",
+ "LabelExternalDDNSHelp": "\u0415\u0433\u0435\u0440 dynamic DNS \u0431\u043e\u043b\u0441\u0430, \u0431\u04b1\u043d\u044b \u043c\u04b1\u043d\u0434\u0430 \u0435\u043d\u0433\u0456\u0437\u0456\u04a3\u0456\u0437. Media Browser \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430\u043b\u0430\u0440\u044b \u0431\u04b1\u043d\u044b \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u049b\u043e\u0441\u044b\u043b\u0493\u0430\u043d\u0434\u0430 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0430\u0434\u044b.",
"TabResume": "\u0416\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443",
"TabWeather": "\u0410\u0443\u0430 \u0440\u0430\u0439\u044b",
"TitleAppSettings": "\u049a\u043e\u043b\u0434\u0430\u043d\u0431\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0456",
@@ -479,10 +512,8 @@
"HeaderProgram": "\u0411\u0435\u0440\u0456\u043b\u0456\u043c",
"HeaderClients": "\u041a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440",
"LabelCompleted": "\u0410\u044f\u049b\u0442\u0430\u043b\u0493\u0430\u043d",
- "LabelFailed": "\u0421\u04d9\u0442\u0441\u0456\u0437",
"LabelSkipped": "\u04e8\u0442\u043a\u0456\u0437\u0456\u043b\u0433\u0435\u043d",
"HeaderEpisodeOrganization": "\u042d\u043f\u0438\u0437\u043e\u0434\u0442\u044b \u04b1\u0439\u044b\u043c\u0434\u0430\u0441\u0442\u044b\u0440\u0443",
- "LabelSeries": "\u0421\u0435\u0440\u0438\u0430\u043b:",
"LabelSeasonNumber": "\u041c\u0430\u0443\u0441\u044b\u043c \u043d\u04e9\u043c\u0456\u0440\u0456",
"LabelEpisodeNumber": "\u042d\u043f\u0438\u0437\u043e\u0434 \u043d\u04e9\u043c\u0456\u0440\u0456",
"LabelEndingEpisodeNumber": "\u0410\u044f\u049b\u0442\u0430\u0443\u0448\u044b \u044d\u043f\u0438\u0437\u043e\u0434\u0442\u044b\u04a3 \u043d\u04e9\u043c\u0456\u0440\u0456",
@@ -630,8 +661,6 @@
"ButtonScenes": "\u0421\u0430\u0445\u043d\u0430\u043b\u0430\u0440",
"ButtonSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440",
"ButtonAudioTracks": "\u0414\u044b\u0431\u044b\u0441 \u0436\u043e\u043b\u0448\u044b\u049b\u0442\u0430\u0440\u044b",
- "ButtonPreviousTrack": "\u0410\u043b\u0434\u044b\u04a3\u0493\u044b \u0436\u043e\u043b\u0448\u044b\u049b",
- "ButtonNextTrack": "\u041a\u0435\u043b\u0435\u0441\u0456 \u0436\u043e\u043b\u0448\u044b\u049b",
"ButtonStop": "\u0422\u043e\u049b\u0442\u0430\u0442\u0443",
"ButtonPause": "\u04ae\u0437\u0456\u043b\u0456\u0441",
"LabelGroupMoviesIntoCollections": "\u0422\u043e\u043f\u0442\u0430\u043c\u0430\u043b\u0430\u0440 \u0456\u0448\u0456\u043d\u0434\u0435\u0433\u0456 \u0444\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0434\u0456 \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u0443",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0442\u0430\u0441\u0443\u0448\u044b\u043b\u0430\u0440",
"OptionSpecialFeatures": "\u0410\u0440\u043d\u0430\u0439\u044b \u049b\u043e\u0441\u044b\u043c\u0448\u0430\u043b\u0430\u0440",
"HeaderCollections": "\u0422\u043e\u043f\u0442\u0430\u043c\u0430\u043b\u0430\u0440",
- "HeaderMyLibrary": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c",
"LabelProfileCodecsHelp": "\u04ae\u0442\u0456\u0440 \u0430\u0440\u049b\u044b\u043b\u044b \u0431\u04e9\u043b\u0456\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d. \u0411\u0430\u0440\u043b\u044b\u049b \u043a\u043e\u0434\u0435\u043a\u0442\u0435\u0440\u0433\u0435 \u049b\u043e\u043b\u0434\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043b \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u043b\u0443 \u043c\u04af\u043c\u043a\u0456\u043d.",
"LabelProfileContainersHelp": "\u04ae\u0442\u0456\u0440 \u0430\u0440\u049b\u044b\u043b\u044b \u0431\u04e9\u043b\u0456\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d. \u0411\u0430\u0440\u043b\u044b\u049b \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043b\u0435\u0440\u0433\u0435 \u049b\u043e\u043b\u0434\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043b \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u043b\u0443 \u043c\u04af\u043c\u043a\u0456\u043d.",
"HeaderResponseProfile": "\u04ae\u043d \u049b\u0430\u0442\u0443 \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u044b",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442 1-\u0431\u04e9\u043b\u0456\u043c:",
"LabelHomePageSection2": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442 2-\u0431\u04e9\u043b\u0456\u043c:",
"LabelHomePageSection3": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442 3-\u0431\u04e9\u043b\u0456\u043c:",
+ "LabelHomePageSection4": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442 4-\u0431\u04e9\u043b\u0456\u043c:",
"OptionMyLibraryButtons": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c (\u0442\u04af\u0439\u043c\u0435\u0448\u0456\u043a\u0442\u0435\u0440)",
"OptionMyLibrary": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c",
"OptionMyLibrarySmall": "\u041c\u0435\u043d\u0456\u04a3 \u0442\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430\u043c (\u043a\u0456\u0448\u0456)",
"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",
+ "HeaderLatestChannelItems": "\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",
"OptionNone": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439",
"HeaderLiveTv": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0414",
"HeaderReports": "\u0415\u0441\u0435\u043f\u0442\u0435\u0440",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "\u0410\u0440\u043d\u0430\u043b\u0430\u0440",
"ViewTypeLiveTV": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0414",
"HeaderOtherDisplaySettings": "\u0411\u0435\u0439\u043d\u0435\u043b\u0435\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0456",
- "HeaderLibraryViews": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456",
+ "HeaderMyViews": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c",
"LabelSelectFolderGroups": "\u041a\u0435\u043b\u0435\u0441\u0456 \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u0434\u0430\u0493\u044b \u043c\u0430\u0437\u043c\u04b1\u043d\u0434\u044b \u041a\u0438\u043d\u043e, \u041c\u0443\u0437\u044b\u043a\u0430 \u0436\u04d9\u043d\u0435 \u0422\u0414 \u0441\u0438\u044f\u049b\u0442\u044b \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0433\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0442\u044b \u0442\u04af\u0440\u0434\u0435 \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u0443:",
"LabelSelectFolderGroupsHelp": "\u0411\u0435\u043b\u0433\u0456\u043b\u0435\u043d\u0431\u0435\u0433\u0435\u043d \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440 \u04e9\u0437 \u0431\u0435\u0442\u0456\u043c\u0435\u043d \u04e9\u0437\u0456\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0456\u043d\u0434\u0435 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u043d\u0435\u0434\u0456.",
"OptionDisplayAdultContent": "\u0415\u0440\u0435\u0441\u0435\u043a\u0442\u0435\u0440\u0433\u0435 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d \u043c\u0430\u0437\u043c\u04b1\u043d\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0443",
- "OptionLibraryFolders": "\u049a\u0430\u043b\u0442\u0430\u043b\u0430\u0440 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0456"
+ "OptionLibraryFolders": "\u0422\u0430\u0441\u0443\u0448\u044b \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u044b",
+ "TitleRemoteControl": "\u049a\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443",
+ "OptionLatestTvRecordings": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0436\u0430\u0437\u0431\u0430\u043b\u0430\u0440"
} \ 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 50638a892..ff3ea24f1 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Tutup",
"LabelVisitCommunity": "Melawat Masyarakat",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 06cac7c98..0f97aa95e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Oppdateringer",
+ "HeaderUpdateLevel": "Oppdaterings-niv\u00e5",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "Mitt bibliotek",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Exit",
"LabelVisitCommunity": "Bes\u00f8k oss",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "Mitt bibliotek",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 eede08238..31f4a38fe 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Meld administratieve gebruikers wanneer:",
+ "HeaderEnableNotificationForPlayback": "Meld wanneer gebruikers spelen:",
+ "OptionNotifyOnUpdates": "Updates zijn beschikbaar zijn",
+ "OptionNotifyOnVideoPlayback": "Video afspelen",
+ "OptionNotifyOnAudioPlayback": "Audio afspelen",
+ "OptionNotifyOnGamePlayback": "Games afspelen",
+ "OptionNotifyOnFailedTasks": "Geplande taken mislukt zijn",
+ "OptionNotifyOnNewLibraryContent": "Nieuwe bibliotheek inhoud wordt toegevoegd",
+ "OptionNotifyOnServerRestartRequired": "De server moet opnieuw worden gestart",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Niveau",
+ "LabelRequireTextSubtitles": "Ook downloaden als de film al ondertitels bevat",
+ "LabelRequireTextSubtitlesHelp": "Als de tekst versies van ondertiteling bewaard wordt zal er effici\u00ebnter naar mobiele apparaten gespeeld worden.",
+ "HeaderSubtitleDownloadingMoreHelp": "Ondertiteling wordt als missend gezien als het audio spoor in een buitenlandse taal is en er geen ondertiteling in de voorkeurstaal aanwezig is.",
+ "LabelDisplayForcedSubtitlesOnly": "laat alleen geforceerde ondertiteling zien",
+ "HeaderCustomizeOptionsPerMediaType": "Pas opties aan per mediatype",
+ "LabelAudioLanguagePreferenceHelp": "Indien niet ingevuld zal het standaard audio spoor geselecteerd worden, ongeacht de taal.",
+ "TabCustomizations": "Aanpassingen",
+ "HeaderAllDevices": "Alle apparaten",
+ "HeaderThisDevice": "Dit apparaat",
+ "OptionLibraryButtons": "Bibliotheek knoppen",
+ "OptionLibraryTiles": "Bibliotheek tegels (groot)",
+ "OptionSmallLibraryTiles": "Bibliotheek tegels (klein)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Mislukt",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Vorig nummer",
+ "ButtonNextTrack": "Volgend nummer",
+ "HeaderMyLibrary": "Mijn Bibliotheek",
+ "HeaderLibraryViews": "Bibliotheken overzicht",
"LabelExit": "Afsluiten",
"LabelVisitCommunity": "Bezoek Gemeenschap",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Extra onderdelen",
"ButtonSplitVersionsApart": "Splits Versies Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Ontbreekt",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Pad vervangen worden gebruikt voor het in kaart brengen van een pad op de server naar een pad dat de Cli\u00ebnt in staat stelt om toegang te krijgen. Doordat de Cli\u00ebnt directe toegang tot de media op de server heeft is deze in staat om ze direct af te spelen via het netwerk. Daardoor wordt het gebruik van server resources om te streamen en te transcoderen vermeden.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programma",
"HeaderClients": "Clients",
"LabelCompleted": "Compleet",
- "LabelFailed": "Mislukt",
"LabelSkipped": "Overgeslagen",
"HeaderEpisodeOrganization": "Afleveringen Organisatie",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Seizoen:",
"LabelEpisodeNumber": "Aflevering:",
"LabelEndingEpisodeNumber": "Laatste aflevering:",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Ondertitels",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Vorige track",
- "ButtonNextTrack": "Volgende track",
"ButtonStop": "Stop",
"ButtonPause": "Pauze",
"LabelGroupMoviesIntoCollections": "Groepeer films in verzamelingen",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Nieuw in bibliotheek",
"OptionSpecialFeatures": "Extra's",
"HeaderCollections": "Verzamelingen",
- "HeaderMyLibrary": "Mijn Bibliotheek",
"LabelProfileCodecsHelp": "Gescheiden door een komma. Deze kan leeg gelaten worden om te laten gelden voor alle codecs.",
"LabelProfileContainersHelp": "Gescheiden door een komma. Deze kan leeg gelaten worden om te laten gelden voor alle containers.",
"HeaderResponseProfile": "Antwoord Profiel",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Startpagina sectie een:",
"LabelHomePageSection2": "Startpagina sectie twee:",
"LabelHomePageSection3": "Startpagina sectie drie:",
+ "LabelHomePageSection4": "Startpagina sectie vier",
"OptionMyLibraryButtons": "Mijn bibliotheek (knoppen)",
"OptionMyLibrary": "Mijn bibliotheek",
"OptionMyLibrarySmall": "Mijn bibliotheek (klein)",
"OptionResumablemedia": "Hervatten",
"OptionLatestMedia": "Nieuwste media",
+ "OptionLatestChannelMedia": "Nieuwste kanaal items",
+ "HeaderLatestChannelItems": "Nieuwste kanaal items",
"OptionNone": "Geen",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Rapporten",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Kanalen",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Beeld instellingen",
- "HeaderLibraryViews": "Bibliotheken overzicht",
+ "HeaderMyViews": "Mijn weergaves",
"LabelSelectFolderGroups": "De volgende mappen automatisch groeperen in de secties zoals Films, Muziek en TV:",
"LabelSelectFolderGroupsHelp": "Mappen die niet aangevinkt zijn worden in hun eigen sectie weergegeven.",
"OptionDisplayAdultContent": "Toon Inhoud voor volwassen",
- "OptionLibraryFolders": "Mapweergave"
+ "OptionLibraryFolders": "Mapweergave",
+ "TitleRemoteControl": "Beheer op afstand",
+ "OptionLatestTvRecordings": "Nieuwste opnames"
} \ 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 0f7d4fd53..f83c90a75 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Notificar usu\u00e1rios administradores quando:",
+ "HeaderEnableNotificationForPlayback": "Notificar quando os usu\u00e1rios reproduzirem:",
+ "OptionNotifyOnUpdates": "Atualiza\u00e7\u00f5es estiverem disponiveis",
+ "OptionNotifyOnVideoPlayback": "V\u00eddeo",
+ "OptionNotifyOnAudioPlayback": "\u00c1udio",
+ "OptionNotifyOnGamePlayback": "Jogos",
+ "OptionNotifyOnFailedTasks": "Tarefas agendadas falharem",
+ "OptionNotifyOnNewLibraryContent": "Novo conte\u00fado for adicionado \u00e0 biblioteca",
+ "OptionNotifyOnServerRestartRequired": "O servidor necessita ser reiniciado",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Atualiza\u00e7\u00f5es",
+ "HeaderUpdateLevel": "N\u00edvel de Atualiza\u00e7\u00e3o",
+ "LabelRequireTextSubtitles": "Transferir mesmo se o v\u00eddeo possuir legendas gr\u00e1ficas",
+ "LabelRequireTextSubtitlesHelp": "Manter vers\u00f5es das legendas em texto resultar\u00e1 em uma entrega mais eficiente para os clientes m\u00f3veis.",
+ "HeaderSubtitleDownloadingMoreHelp": "Ser\u00e1 considerado que faltam legendas quando a faixa de \u00e1udio estiver em um idioma estrangeiro e n\u00e3o existirem legendas dispon\u00edveis no idioma preferido.",
+ "LabelDisplayForcedSubtitlesOnly": "Exibir apenas legendas for\u00e7adas",
+ "HeaderCustomizeOptionsPerMediaType": "Personalize op\u00e7\u00f5es por tipo de m\u00eddia",
+ "LabelAudioLanguagePreferenceHelp": "Se estiver em branco, a faixa de \u00e1udio padr\u00e3o ser\u00e1 selecionada, independente do idioma.",
+ "TabCustomizations": "Personaliza\u00e7\u00f5es",
+ "HeaderAllDevices": "Todos os Dispositivos",
+ "HeaderThisDevice": "Este Dispositivo",
+ "OptionLibraryButtons": "Bot\u00f5es da biblioteca",
+ "OptionLibraryTiles": "Tiles da biblioteca (grandes)",
+ "OptionSmallLibraryTiles": "Tiles da biblioteca (pequenas)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Falhou",
+ "LabelSeries": "S\u00e9rie:",
+ "ButtonPreviousTrack": "Faixa Anterior",
+ "ButtonNextTrack": "Pr\u00f3xima Faixa",
+ "HeaderMyLibrary": "Minha Biblioteca",
+ "HeaderLibraryViews": "Visualiza\u00e7\u00f5es da Biblioteca",
"LabelExit": "Sair",
"LabelVisitCommunity": "Visitar a Comunidade",
"LabelGithubWiki": "Wiki do Github",
@@ -46,8 +80,8 @@
"HeaderPreferredMetadataLanguage": "Idioma preferido dos metadados:",
"LabelSaveLocalMetadata": "Salvar artwork e metadados dentro das pastas da m\u00eddia",
"LabelSaveLocalMetadataHelp": "Salvar artwork e metadados diretamente nas pastas da m\u00eddia as deixar\u00e1 em um local f\u00e1cil para edit\u00e1-las.",
- "LabelDownloadInternetMetadata": "Transferir artwork e metadados da internet",
- "LabelDownloadInternetMetadataHelp": "O Media Browser pode transferir informa\u00e7\u00f5es sobre sua m\u00eddia para melhorar a apresenta\u00e7\u00e3o.",
+ "LabelDownloadInternetMetadata": "Fazer download das imagens e metadados da internet",
+ "LabelDownloadInternetMetadataHelp": "O Media Browser pode fazer download das informa\u00e7\u00f5es de sua m\u00eddia para melhorar a apresenta\u00e7\u00e3o.",
"TabPreferences": "Prefer\u00eancias",
"TabPassword": "Senha",
"TabLibraryAccess": "Acesso \u00e0 Biblioteca",
@@ -91,7 +125,7 @@
"LabelDropImageHere": "Soltar Imagem Aqui",
"ImageUploadAspectRatioHelp": "Propor\u00e7\u00e3o de Imagem 1:1 Recomendada. Apenas JPG\/PNG",
"MessageNothingHere": "Nada aqui.",
- "MessagePleaseEnsureInternetMetadata": "Por favor, certifique-se que a transfer\u00eancia de metadados da internet est\u00e1 habilitada.",
+ "MessagePleaseEnsureInternetMetadata": "Por favor, certifique-se que o download de metadados da internet est\u00e1 habilitado.",
"TabSuggested": "Sugeridos",
"TabLatest": "Recentes",
"TabUpcoming": "Por Estrear",
@@ -280,10 +314,10 @@
"LabelAutomaticUpdatesTmdbHelp": "Se ativado, novas imagens ser\u00e3o automaticamente transferidas ao serem adicionadas ao TheMovieDB.org. As Imagens atuais n\u00e3o ser\u00e3o substitu\u00eddas.",
"LabelAutomaticUpdatesTvdbHelp": "Se ativado, novas imagens ser\u00e3o automaticamente transferidas ao serem adicionadas ao TheTVDB.com. As Imagens atuais n\u00e3o ser\u00e3o substitu\u00eddas.",
"ExtractChapterImagesHelp": "Extrair imagens de cap\u00edtulos permitir\u00e1 aos clientes exibir menus gr\u00e1ficos de sele\u00e7\u00e3o de cenas. O processo pode ser lento, uso intensivo de cpu e pode exigir bastante espa\u00e7o em disco. Ele ser\u00e1 executado \u00e0s 4:00hs, embora isto possa ser configur\u00e1vel na \u00e1rea de tarefas agendadas. N\u00e3o \u00e9 recomendado executar esta tarefa durante as horas de pico de uso.",
- "LabelMetadataDownloadLanguage": "Idioma preferido para transfer\u00eancia:",
+ "LabelMetadataDownloadLanguage": "Idioma preferido para download:",
"ButtonAutoScroll": "Auto-rolagem",
"LabelImageSavingConvention": "Conven\u00e7\u00e3o para salvar a imagem:",
- "LabelImageSavingConventionHelp": "O Media Browser reconhece imagens da maioria das aplica\u00e7\u00f5es de m\u00eddia. Escolher a conven\u00e7\u00e3o de transfer\u00eancia \u00e9 \u00fatil se voc\u00ea usa tamb\u00e9m outros produtos.",
+ "LabelImageSavingConventionHelp": "O Media Browser reconhece imagens da maioria das aplica\u00e7\u00f5es de m\u00eddia. Escolher a conven\u00e7\u00e3o de download \u00e9 \u00fatil se voc\u00ea usa tamb\u00e9m outros produtos.",
"OptionImageSavingCompatible": "Compat\u00edvel - Media Browser\/Plex\/Xbmc",
"OptionImageSavingStandard": "Padr\u00e3o - MB2",
"ButtonSignIn": "Iniciar Sess\u00e3o",
@@ -329,8 +363,8 @@
"OptionRecordSeries": "Gravar S\u00e9ries",
"HeaderDetails": "Detalhes",
"TitleLiveTV": "TV ao Vivo",
- "LabelNumberOfGuideDays": "N\u00famero de dias de dados do guia para transferir:",
- "LabelNumberOfGuideDaysHelp": "Transferir mais dias de dados do guia permite agendar com mais anteced\u00eancia e ver mais itens, mas tamb\u00e9m levar\u00e1 mais tempo para transferir. Auto escolher\u00e1 com base no n\u00famero de canais.",
+ "LabelNumberOfGuideDays": "N\u00famero de dias de dados do guia para download:",
+ "LabelNumberOfGuideDaysHelp": "Fazer download de mais dias de dados do guia permite agendar com mais anteced\u00eancia e ver mais itens, mas tamb\u00e9m levar\u00e1 mais tempo para o download. Auto escolher\u00e1 com base no n\u00famero de canais.",
"LabelActiveService": "Servi\u00e7o Ativo:",
"LabelActiveServiceHelp": "V\u00e1rios plugins de tv podem ser instalados, mas apenas um pode estar ativo de cada vez.",
"OptionAutomatic": "Auto",
@@ -351,8 +385,8 @@
"TabOther": "Outros",
"LabelMaxBackdropsPerItem": "N\u00famero m\u00e1ximo de imagens de fundo por item:",
"LabelMaxScreenshotsPerItem": "N\u00famero m\u00e1ximo de imagens de tela por item:",
- "LabelMinBackdropDownloadWidth": "Tamanho m\u00ednimo da imagem de fundo a transferir:",
- "LabelMinScreenshotDownloadWidth": "Tamanho m\u00ednimo da imagem de tela a transferir:",
+ "LabelMinBackdropDownloadWidth": "Tamanho m\u00ednimo da imagem de fundo para download:",
+ "LabelMinScreenshotDownloadWidth": "Tamanho m\u00ednimo da imagem de tela para download:",
"ButtonAddScheduledTaskTrigger": "Adicionar Disparador da Tarefa",
"HeaderAddScheduledTaskTrigger": "Adicionar Disparador da Tarefa",
"ButtonAdd": "Adicionar",
@@ -360,7 +394,7 @@
"OptionDaily": "Di\u00e1rio",
"OptionWeekly": "Semanal",
"OptionOnInterval": "Em um intervalo",
- "OptionOnAppStartup": "No in\u00edcio da aplica\u00e7\u00e3o",
+ "OptionOnAppStartup": "Ao iniciar a aplica\u00e7\u00e3o",
"OptionAfterSystemEvent": "Depois de um evento do sistema",
"LabelDay": "Dia:",
"LabelTime": "Hora:",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Elenco & Equipe",
"HeaderAdditionalParts": "Partes Adicionais",
"ButtonSplitVersionsApart": "Separar Vers\u00f5es",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Ausente",
"LabelOffline": "Desconectado",
"PathSubstitutionHelp": "Substitui\u00e7\u00f5es de caminho s\u00e3o usadas para mapear um caminho no servidor que possa ser acessado pelos clientes. Ao permitir o acesso dos clientes \u00e0 m\u00eddia no servidor, eles podem reproduzir diretamente atrav\u00e9s da rede e evitar o uso de recursos do servidor para fazer stream ou transcodifica\u00e7\u00e3o.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Completado",
- "LabelFailed": "Falhou",
"LabelSkipped": "Ignorado",
"HeaderEpisodeOrganization": "Organiza\u00e7\u00e3o do Epis\u00f3dio",
- "LabelSeries": "S\u00e9rie:",
"LabelSeasonNumber": "N\u00famero da temporada",
"LabelEpisodeNumber": "N\u00famero do epis\u00f3dio",
"LabelEndingEpisodeNumber": "N\u00famero do epis\u00f3dio final",
@@ -492,7 +523,7 @@
"HeaderSupportTheTeamHelp": "Ajude a assegurar a continuidade do desenvolvimento deste projeto atrav\u00e9s de doa\u00e7\u00e3o. Uma parte de todas as doa\u00e7\u00f5es ser\u00e1 dividida por outras ferramentas gr\u00e1tis que n\u00f3s dependemos.",
"ButtonEnterSupporterKey": "Digite a chave de colaborador",
"DonationNextStep": "Depois de terminar, por favor volte e digite a chave de colaborador que recebeu por email.",
- "AutoOrganizeHelp": "Auto-organizar monitora suas pastas de transfer\u00eancias em busca de novos arquivos e os move para seus diret\u00f3rios de m\u00eddia.",
+ "AutoOrganizeHelp": "Auto-organizar monitora suas pastas de download em busca de novos arquivos e os move para seus diret\u00f3rios de m\u00eddia.",
"AutoOrganizeTvHelp": "A organiza\u00e7\u00e3o de arquivos de TV s\u00f3 adicionar\u00e1 arquivos \u00e0s s\u00e9ries existentes. Ela n\u00e3o criar\u00e1 novas pastas de s\u00e9ries.",
"OptionEnableEpisodeOrganization": "Ativar a organiza\u00e7\u00e3o de novos epis\u00f3dios",
"LabelWatchFolder": "Pasta de Monitora\u00e7\u00e3o:",
@@ -510,7 +541,7 @@
"HeaderPattern": "Padr\u00e3o",
"HeaderResult": "Resultado",
"LabelDeleteEmptyFolders": "Apagar pastas vazias depois da organiza\u00e7\u00e3o",
- "LabelDeleteEmptyFoldersHelp": "Ativar isto para manter o diret\u00f3rio de transfer\u00eancias limpo.",
+ "LabelDeleteEmptyFoldersHelp": "Ativar isto para manter o diret\u00f3rio de download limpo.",
"LabelDeleteLeftOverFiles": "Apagar os arquivos deixados com as seguintes extens\u00f5es:",
"LabelDeleteLeftOverFilesHelp": "Separar com ;. Por exemplo: .nfo;.txt",
"OptionOverwriteExistingEpisodes": "Sobrescrever epis\u00f3dios existentes",
@@ -630,8 +661,6 @@
"ButtonScenes": "Cenas",
"ButtonSubtitles": "Legendas",
"ButtonAudioTracks": "Faixas de \u00e1udio",
- "ButtonPreviousTrack": "Faixa anterior",
- "ButtonNextTrack": "Pr\u00f3xima faixa",
"ButtonStop": "Parar",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Agrupar filmes nas cole\u00e7\u00f5es",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "M\u00eddias Recentes",
"OptionSpecialFeatures": "Caracter\u00edsticas Especiais",
"HeaderCollections": "Cole\u00e7\u00f5es",
- "HeaderMyLibrary": "Minha Biblioteca",
"LabelProfileCodecsHelp": "Separados por v\u00edrgula. Pode ser deixado em branco para usar com todos os codecs.",
"LabelProfileContainersHelp": "Separados por v\u00edrgula. Pode ser deixado em branco para usar com todos os containers.",
"HeaderResponseProfile": "Perfil de Resposta",
@@ -721,8 +749,8 @@
"OptionEstimateContentLength": "Estimar o tamanho do conte\u00fado quando transcodificar",
"OptionReportByteRangeSeekingWhenTranscoding": "Reportar que o servidor suporta busca de byte quando transcodificar",
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Isto \u00e9 necess\u00e1rio para alguns dispositivos que n\u00e3o buscam o tempo muito bem.",
- "HeaderSubtitleDownloadingHelp": "Quando o Media Browser verificar seus arquivos de v\u00eddeo, ele pode buscar legendas que n\u00e3o existam e transferi-las usando um provedor de legendas como, por exemplo, o OpenSubtitles.org.",
- "HeaderDownloadSubtitlesFor": "Transferir legendas para:",
+ "HeaderSubtitleDownloadingHelp": "Quando o Media Browser verificar seus arquivos de v\u00eddeo, ele pode buscar legendas que n\u00e3o existam e fazer download usando um provedor de legendas como, por exemplo, o OpenSubtitles.org.",
+ "HeaderDownloadSubtitlesFor": "Fazer download de legendas para:",
"MessageNoChapterProviders": "Instale um plugin provedor de cap\u00edtulos como o ChapterDb para habilitar mais op\u00e7\u00f5es de cap\u00edtulos.",
"LabelSkipIfGraphicalSubsPresent": "Ignorar se o v\u00eddeo j\u00e1 possuir legendas gr\u00e1ficas",
"LabelSkipIfGraphicalSubsPresentHelp": "Manter vers\u00f5es das legendas em texto resultar\u00e1 em uma entrega mais eficiente para os clientes m\u00f3veis.",
@@ -734,9 +762,9 @@
"HeaderChapterDownloadingHelp": "Quando o Media Browser verifica seus arquivos de v\u00eddeo, pode fazer download de nomes amig\u00e1veis para os cap\u00edtulos atrav\u00e9s de plugins como o ChapterDb.",
"LabelPlayDefaultAudioTrack": "Reproduzir a faixa de \u00e1udio padr\u00e3o independente do idioma",
"LabelSubtitlePlaybackMode": "Modo da Legenda:",
- "LabelDownloadLanguages": "Idiomas para transfer\u00eancia:",
+ "LabelDownloadLanguages": "Idiomas para download:",
"ButtonRegister": "Registrar",
- "LabelSkipIfAudioTrackPresent": "Ignorar se a faixa de \u00e1udio padr\u00e3o coincidir com o idioma de transfer\u00eancia",
+ "LabelSkipIfAudioTrackPresent": "Ignorar se a faixa de \u00e1udio padr\u00e3o coincidir com o idioma de download",
"LabelSkipIfAudioTrackPresentHelp": "Desmarque esta op\u00e7\u00e3o para garantir que todos os v\u00eddeos t\u00eam legendas, independente do idioma do \u00e1udio.",
"HeaderSendMessage": "Enviar mensagem",
"ButtonSend": "Enviar",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Se\u00e7\u00e3o um da tela de in\u00edcio:",
"LabelHomePageSection2": "Se\u00e7\u00e3o dois da tela de in\u00edcio:",
"LabelHomePageSection3": "Se\u00e7\u00e3o tr\u00eas da tela de in\u00edcio:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "Minha biblioteca (bot\u00f5es)",
"OptionMyLibrary": "Minha biblioteca",
"OptionMyLibrarySmall": "Minha biblioteca (pequena)",
"OptionResumablemedia": "Retomar",
"OptionLatestMedia": "M\u00eddias recentes",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "Nenhum",
"HeaderLiveTv": "TV ao Vivo",
"HeaderReports": "Relat\u00f3rios",
@@ -795,10 +826,10 @@
"LabelChannelStreamQuality": "Qualidade preferida do stream de internet:",
"LabelChannelStreamQualityHelp": "Em um ambiente com banda larga de pouca velocidade, limitar a qualidade pode ajudar a assegurar um streaming mais flu\u00eddo.",
"OptionBestAvailableStreamQuality": "Melhor dispon\u00edvel",
- "LabelEnableChannelContentDownloadingFor": "Ativar a transfer\u00eancia de conte\u00fado do canal para:",
- "LabelEnableChannelContentDownloadingForHelp": "Alguns canais suportam a transfer\u00eancia de conte\u00fado antes de sua visualiza\u00e7\u00e3o. Ative esta fun\u00e7\u00e3o em ambientes com banda larga de baixa velocidade para transferir o conte\u00fado do canal durante horas sem uso. O conte\u00fado \u00e9 transferido como parte da tarefa agendada de transfer\u00eancia do canal.",
- "LabelChannelDownloadPath": "Caminho para transfer\u00eancia do conte\u00fado do canal:",
- "LabelChannelDownloadPathHelp": "Se desejar, defina um caminho personalizado para a transfer\u00eancia. Deixe em branco para transferir para uma pasta interna do programa.",
+ "LabelEnableChannelContentDownloadingFor": "Ativar o download de conte\u00fado do canal para:",
+ "LabelEnableChannelContentDownloadingForHelp": "Alguns canais suportam o download de conte\u00fado antes de sua visualiza\u00e7\u00e3o. Ative esta fun\u00e7\u00e3o em ambientes com banda larga de baixa velocidade para fazer o download do conte\u00fado do canal durante horas sem uso. O conte\u00fado \u00e9 transferido como parte da tarefa agendada de download do canal.",
+ "LabelChannelDownloadPath": "Caminho para download do conte\u00fado do canal:",
+ "LabelChannelDownloadPathHelp": "Se desejar, defina um caminho personalizado para a transfer\u00eancia. Deixe em branco para fazer download para uma pasta interna do programa.",
"LabelChannelDownloadAge": "Excluir conte\u00fado depois de: (dias)",
"LabelChannelDownloadAgeHelp": "O conte\u00fado transferido que for mais velho que este valor ser\u00e1 exclu\u00eddo. Poder\u00e1 seguir reproduzindo-o atrav\u00e9s de streaming da internet.",
"ChannelSettingsFormHelp": "Instalar canais como, por exemplo, Trailers e Vimeo no cat\u00e1logo de plugins.",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Canais",
"ViewTypeLiveTV": "TV ao Vivo",
"HeaderOtherDisplaySettings": "Ajustes de Exibi\u00e7\u00e3o",
- "HeaderLibraryViews": "Visualiza\u00e7\u00f5es da Biblioteca",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Agrupar automaticamente o conte\u00fado das seguintes pastas dentro das visualiza\u00e7\u00f5es como Filmes, M\u00fasicas e TV:",
"LabelSelectFolderGroupsHelp": "Pastas que n\u00e3o est\u00e3o marcadas ser\u00e3o exibidas em sua pr\u00f3pria visualiza\u00e7\u00e3o.",
"OptionDisplayAdultContent": "Exibir conte\u00fado adulto",
- "OptionLibraryFolders": "Visualiza\u00e7\u00e3o da pasta"
+ "OptionLibraryFolders": "Visualiza\u00e7\u00e3o da pasta",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 870a04f87..457844814 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "Quando utilizadores reproduzem conte\u00fados",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Atualiza\u00e7\u00f5es dispon\u00edveis",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Atualiza\u00e7\u00f5es",
+ "HeaderUpdateLevel": "N\u00edvel de atualiza\u00e7\u00e3o",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Mostrar apenas legendas for\u00e7adas",
+ "HeaderCustomizeOptionsPerMediaType": "Personalize as op\u00e7\u00f5es por tipo de conte\u00fado multim\u00e9dia",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Falhou",
+ "LabelSeries": "S\u00e9rie:",
+ "ButtonPreviousTrack": "Faixa Anterior",
+ "ButtonNextTrack": "Pr\u00f3xima Faixa",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Sair",
"LabelVisitCommunity": "Visitar a Comunidade",
"LabelGithubWiki": "Wiki do Github",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Elenco e Equipa",
"HeaderAdditionalParts": "Partes Adicionais",
"ButtonSplitVersionsApart": "Separar Vers\u00f5es",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Em falta",
"LabelOffline": "Desconectado",
"PathSubstitutionHelp": "Substitui\u00e7\u00f5es de localiza\u00e7\u00e3o s\u00e3o usadas para mapear uma localiza\u00e7\u00e3o no servidor que possa ser acedido pelos clientes. Ao permitir o acesso dos clientes ao conte\u00fado multim\u00e9dia no servidor, permite-lhes reproduzir diretamente atrav\u00e9s da rede e evitar o uso de recursos do servidor para fazer stream ou transcodifica\u00e7\u00e3o.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Terminado",
- "LabelFailed": "Failed",
"LabelSkipped": "Ignorado",
"HeaderEpisodeOrganization": "Organiza\u00e7\u00e3o dos Epis\u00f3dios",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "N\u00famero da temporada",
"LabelEpisodeNumber": "N\u00famero do epis\u00f3dio",
"LabelEndingEpisodeNumber": "N\u00famero do epis\u00f3dio final",
@@ -630,8 +661,6 @@
"ButtonScenes": "Cenas",
"ButtonSubtitles": "Legendas",
"ButtonAudioTracks": "Faixas de \u00e1udio",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Parar",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 14dcbdd7f..8dd00090a 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435",
+ "HeaderEnableNotificationForEvents": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0442\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0433\u0434\u0430:",
+ "HeaderEnableNotificationForPlayback": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u044f\u0442\u044c \u043a\u043e\u0433\u0434\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438:",
+ "OptionNotifyOnUpdates": "\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
+ "OptionNotifyOnVideoPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e",
+ "OptionNotifyOnAudioPlayback": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e",
+ "OptionNotifyOnGamePlayback": "\u0417\u0430\u043f\u0443\u0441\u043a \u0438\u0433\u0440\u044b",
+ "OptionNotifyOnFailedTasks": "\u0421\u0431\u043e\u0439 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f",
+ "OptionNotifyOnNewLibraryContent": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e \u0432 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0443",
+ "OptionNotifyOnServerRestartRequired": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440",
+ "NotificationOptionUpdatesAvailable": "\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
+ "NotificationOptionFailedTasks": "\u0421\u0431\u043e\u0439 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f",
+ "TabUpdates": "\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
+ "HeaderUpdateLevel": "\u0421\u0442\u0435\u043f\u0435\u043d\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
+ "HeaderCustomizeOptionsPerMediaType": "\u0417\u0430\u0434\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e \u0442\u0438\u043f\u0443 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "\u0412\u0441\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",
+ "HeaderThisDevice": "\u0414\u0430\u043d\u043d\u043e\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e",
+ "OptionLibraryButtons": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 - \u043a\u043d\u043e\u043f\u043a\u0438",
+ "OptionLibraryTiles": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 - \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043f\u043b\u0438\u0442\u043a\u0438",
+ "OptionSmallLibraryTiles": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 - \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435 \u043f\u043b\u0438\u0442\u043a\u0438",
+ "ButtonPlayTrailer": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440",
+ "LabelFailed": "\u041d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e",
+ "LabelSeries": "\u0421\u0435\u0440\u0438\u0430\u043b:",
+ "ButtonPreviousTrack": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
+ "ButtonNextTrack": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
+ "HeaderMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
+ "HeaderLibraryViews": "\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438",
"LabelExit": "\u0412\u044b\u0445\u043e\u0434",
"LabelVisitCommunity": "\u041f\u043e\u0441\u0435\u0449\u0435\u043d\u0438\u0435 \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430",
"LabelGithubWiki": "\u0412\u0438\u043a\u0438 \u043d\u0430 Github",
@@ -222,7 +256,7 @@
"LabelName": "\u0418\u043c\u044f:",
"OptionAllowUserToManageServer": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c",
"HeaderFeatureAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438",
- "OptionAllowMediaPlayback": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439",
+ "OptionAllowMediaPlayback": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u043e\u0432",
"OptionAllowBrowsingLiveTv": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043e\u0431\u0437\u043e\u0440 \u044d\u0444\u0438\u0440\u043d\u043e\u0433\u043e \u0442\u0432",
"OptionAllowDeleteLibraryContent": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438",
"OptionAllowManageLiveTv": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u044c\u044e \u044d\u0444\u0438\u0440\u043d\u043e\u0433\u043e \u0442\u0432",
@@ -243,7 +277,7 @@
"TabPaths": "\u041f\u0443\u0442\u0438",
"TabServer": "\u0421\u0435\u0440\u0432\u0435\u0440",
"TabTranscoding": "\u041f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430",
- "TitleAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b",
+ "TitleAdvanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b",
"LabelAutomaticUpdateLevel": "\u0421\u0442\u0435\u043f\u0435\u043d\u044c \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f",
"OptionRelease": "\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a",
"OptionBeta": "\u0411\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u0441\u044a\u0451\u043c\u043e\u043a",
"HeaderAdditionalParts": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0447\u0430\u0441\u0442\u0438",
"ButtonSplitVersionsApart": "\u0420\u0430\u0441\u0449\u0435\u043f\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438",
- "ButtonPlayTrailer": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440",
"LabelMissing": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e",
"LabelOffline": "\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e",
"PathSubstitutionHelp": "\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c \u043f\u0443\u0442\u0435\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0443\u0442\u044c, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c. \u041f\u0440\u0438 \u043f\u0440\u044f\u043c\u043e\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043a \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f\u043c \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0442\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u0445 \u043f\u0440\u044f\u043c\u043e \u043f\u043e \u0441\u0435\u0442\u0438, \u043d\u0435 \u0442\u0440\u0430\u0442\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438.",
@@ -428,7 +461,7 @@
"EditCollectionItemsHelp": "\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0438\u043b\u0438 \u0443\u0431\u0438\u0440\u0430\u0439\u0442\u0435 \u043b\u044e\u0431\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b, \u0441\u0435\u0440\u0438\u0430\u043b\u044b, \u0430\u043b\u044c\u0431\u043e\u043c\u044b, \u043a\u043d\u0438\u0433\u0438 \u0438\u043b\u0438 \u0438\u0433\u0440\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0436\u0435\u043b\u0430\u0435\u0442\u0435 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0434\u0430\u043d\u043d\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.",
"HeaderAddTitles": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f",
"LabelEnableDlnaPlayTo": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 DLNA",
- "LabelEnableDlnaPlayToHelp": "Media Browser \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432 \u0441\u0435\u0442\u0438 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0445 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f.",
+ "LabelEnableDlnaPlayToHelp": "Media Browser \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0432 \u0441\u0435\u0442\u0438 \u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438.",
"LabelEnableDlnaDebugLogging": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 DLNA \u0432 \u0416\u0443\u0440\u043d\u0430\u043b\u0435",
"LabelEnableDlnaDebugLoggingHelp": "\u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0416\u0443\u0440\u043d\u0430\u043b\u0430 \u043e\u0447\u0435\u043d\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u043e\u0431\u044a\u0451\u043c\u0430, \u0430 \u044d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0438\u043b\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u043f\u043e\u043b\u0430\u0434\u043e\u043a.",
"LabelEnableDlnaClientDiscoveryInterval": "\u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u0441",
@@ -479,10 +512,8 @@
"HeaderProgram": "\u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430",
"HeaderClients": "\u041a\u043b\u0438\u0435\u043d\u0442\u044b",
"LabelCompleted": "\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e",
- "LabelFailed": "\u041d\u0435\u0443\u0434\u0430\u0447\u0430",
"LabelSkipped": "\u041e\u0442\u043b\u043e\u0436\u0435\u043d\u043e",
"HeaderEpisodeOrganization": "\u0420\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u044d\u043f\u0438\u0437\u043e\u0434\u0430",
- "LabelSeries": "\u0421\u0435\u0440\u0438\u0430\u043b:",
"LabelSeasonNumber": "\u041d\u043e\u043c\u0435\u0440 \u0441\u0435\u0437\u043e\u043d\u0430",
"LabelEpisodeNumber": "\u041d\u043e\u043c\u0435\u0440 \u044d\u043f\u0438\u0437\u043e\u0434\u0430",
"LabelEndingEpisodeNumber": "\u041d\u043e\u043c\u0435\u0440 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u044d\u043f\u0438\u0437\u043e\u0434\u0430",
@@ -492,7 +523,7 @@
"HeaderSupportTheTeamHelp": "\u041f\u043e\u043c\u043e\u0433\u0438\u0442\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u0443\u0442\u0451\u043c \u0434\u0430\u0440\u0435\u043d\u0438\u044f. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0432\u0441\u0435\u0445 \u043f\u043e\u0436\u0435\u0440\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e.",
"ButtonEnterSupporterKey": "\u0412\u0432\u0435\u0441\u0442\u0438 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430",
"DonationNextStep": "\u041f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c, \u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043f\u043e \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u0435.",
- "AutoOrganizeHelp": "\u041f\u0440\u0438 \u0430\u0432\u0442\u043e\u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430, \u043a\u0443\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u0432\u0430\u0448\u0438 \u043f\u0430\u043f\u043a\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439.",
+ "AutoOrganizeHelp": "\u041f\u0440\u0438 \u0430\u0432\u0442\u043e\u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430, \u043a\u0443\u0434\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d\u044b \u0432 \u0432\u0430\u0448\u0438 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0438.",
"AutoOrganizeTvHelp": "\u041f\u0440\u0438 \u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0422\u0412 \u0444\u0430\u0439\u043b\u043e\u0432 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u044b. \u041d\u043e\u0432\u044b\u0435 \u043f\u0430\u043f\u043a\u0438 \u0441\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u044b.",
"OptionEnableEpisodeOrganization": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043d\u043e\u0432\u044b\u0445 \u044d\u043f\u0438\u0437\u043e\u0434\u043e\u0432",
"LabelWatchFolder": "\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u0430\u044f \u043f\u0430\u043f\u043a\u0430:",
@@ -535,7 +566,7 @@
"LabelComponentsUpdated": "\u0411\u044b\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b :",
"MessagePleaseRestartServerToFinishUpdating": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u0435\u0440\u0432\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439.",
"LabelDownMixAudioScale": "\u0423\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0435\u043c \u043c\u0438\u043a\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438:",
- "LabelDownMixAudioScaleHelp": "\u0423\u0441\u0438\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u0432\u0443\u043a \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u0441\u043c\u0435\u0448\u0435\u043d\u0438\u0438. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 1 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.",
+ "LabelDownMixAudioScaleHelp": "\u0423\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430 \u043f\u0440\u0438 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0435\u043c \u043c\u0438\u043a\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0412\u0432\u0435\u0434\u0438\u0442\u0435 1, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f.",
"ButtonLinkKeys": "\u0421\u0432\u044f\u0437\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438",
"LabelOldSupporterKey": "\u0421\u0442\u0430\u0440\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430",
"LabelNewSupporterKey": "\u041d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430",
@@ -630,8 +661,6 @@
"ButtonScenes": "\u0421\u0446\u0435\u043d\u044b",
"ButtonSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
"ButtonAudioTracks": "\u0410\u0443\u0434\u0438\u043e \u0434\u043e\u0440\u043e\u0436\u043a\u0438",
- "ButtonPreviousTrack": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
- "ButtonNextTrack": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0434\u043e\u0440\u043e\u0436\u043a\u0430",
"ButtonStop": "\u0421\u0442\u043e\u043f",
"ButtonPause": "\u041f\u0430\u0443\u0437\u0430",
"LabelGroupMoviesIntoCollections": "\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u043c\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439",
@@ -640,10 +669,9 @@
"ButtonVolumeUp": "\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u0432\u044b\u0448\u0435",
"ButtonVolumeDown": "\u0413\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u044c \u043d\u0438\u0436\u0435",
"ButtonMute": "\u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0432\u0443\u043a",
- "HeaderLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439",
+ "HeaderLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b\u043e\u0432",
"OptionSpecialFeatures": "\u0414\u043e\u043f. \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b",
"HeaderCollections": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438",
- "HeaderMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
"LabelProfileCodecsHelp": "\u041e\u0442\u0434\u0435\u043b\u044f\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432.",
"LabelProfileContainersHelp": "\u041e\u0442\u0434\u0435\u043b\u044f\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0437\u0430\u043f\u044f\u0442\u043e\u0439. \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432.",
"HeaderResponseProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043e\u0442\u043a\u043b\u0438\u043a\u0430",
@@ -655,9 +683,9 @@
"HeaderDirectPlayProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
"HeaderTranscodingProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438",
"HeaderCodecProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043a\u043e\u0434\u0435\u043a\u043e\u0432",
- "HeaderCodecProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043a\u043e\u0434\u0435\u043a \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
+ "HeaderCodecProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043a\u043e\u0434\u0435\u043a\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u0434\u0435\u043a\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043a\u043e\u0434\u0435\u043a \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
"HeaderContainerProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430",
- "HeaderContainerProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
+ "HeaderContainerProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043d\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435, \u0442\u043e \u043c\u0435\u0434\u0438\u0430\u0444\u0430\u0439\u043b \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0444\u043e\u0440\u043c\u0430\u0442 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
"OptionProfileVideo": "\u0412\u0438\u0434\u0435\u043e",
"OptionProfileAudio": "\u0410\u0443\u0434\u0438\u043e",
"OptionProfileVideoAudio": "\u0412\u0438\u0434\u0435\u043e \u0410\u0443\u0434\u0438\u043e",
@@ -755,7 +783,7 @@
"HeaderTypeText": "\u0412\u0432\u043e\u0434 \u0442\u0435\u043a\u0441\u0442\u0430",
"LabelTypeText": "\u0422\u0435\u043a\u0441\u0442",
"HeaderSearchForSubtitles": "\u041f\u043e\u0438\u0441\u043a \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432",
- "MessageNoSubtitleSearchResultsFound": "\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u043e.",
+ "MessageNoSubtitleSearchResultsFound": "\u041f\u043e\u0438\u0441\u043a \u043d\u0435 \u0434\u0430\u043b \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.",
"TabDisplay": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
"TabLanguages": "\u042f\u0437\u044b\u043a\u0438",
"TabWebClient": "\u0412\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 - \u0440\u0430\u0437\u0434\u0435\u043b 1:",
"LabelHomePageSection2": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 - \u0440\u0430\u0437\u0434\u0435\u043b 2:",
"LabelHomePageSection3": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 - \u0440\u0430\u0437\u0434\u0435\u043b 3:",
+ "LabelHomePageSection4": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 - \u0440\u0430\u0437\u0434\u0435\u043b 4:",
"OptionMyLibraryButtons": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 (\u043a\u043d\u043e\u043f\u043a\u0438)",
"OptionMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
"OptionMyLibrarySmall": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 (\u043c\u0430\u043b\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",
+ "HeaderLatestChannelItems": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
"OptionNone": "\u041d\u0438\u043a\u0430\u043a\u043e\u0435",
"HeaderLiveTv": "\u0422\u0412 \u044d\u0444\u0438\u0440",
"HeaderReports": "\u041e\u0442\u0447\u0451\u0442\u044b",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "\u041a\u0430\u043d\u0430\u043b\u044b",
"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",
- "HeaderLibraryViews": "\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438",
+ "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:",
- "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 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u0440\u0438\u0441\u0443\u0449\u0438\u043c \u0438\u043c \u0441\u0430\u043c\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c.",
+ "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\u0436\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \"\u0434\u043b\u044f \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0445\"",
- "OptionLibraryFolders": "\u0412\u0438\u0434 \u043f\u0430\u043f\u043e\u043a"
+ "OptionLibraryFolders": "\u041c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0438",
+ "TitleRemoteControl": "\u0423\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435",
+ "OptionLatestTvRecordings": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u0437\u0430\u043f\u0438\u0441\u0435\u0439"
} \ 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 97f864889..3b6bcdf51 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -651,7 +651,6 @@
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
"HeaderChannels": "Channels",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -828,10 +827,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view",
- "TitleRemoteControl": "Remote Control"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/sv.json b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
index 2c5c31661..ea44176ed 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Meddela administrat\u00f6rer n\u00e4r:",
+ "HeaderEnableNotificationForPlayback": "Meddela n\u00e4r anv\u00e4ndare spelar:",
+ "OptionNotifyOnUpdates": "Uppdateringar \u00e4r tillg\u00e4ngliga",
+ "OptionNotifyOnVideoPlayback": "Video",
+ "OptionNotifyOnAudioPlayback": "Audio",
+ "OptionNotifyOnGamePlayback": "Spel",
+ "OptionNotifyOnFailedTasks": "Schemalagda aktiviteter misslyckas",
+ "OptionNotifyOnNewLibraryContent": "Nytt inneh\u00e5ll finns i biblioteket",
+ "OptionNotifyOnServerRestartRequired": "Servern m\u00e5ste startas om",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Uppdateringar",
+ "HeaderUpdateLevel": "Uppdatera versionsniv\u00e5",
+ "LabelRequireTextSubtitles": "Ladda ner \u00e4ven om videon redan inneh\u00e5ller grafiska undertexter",
+ "LabelRequireTextSubtitlesHelp": "Att spara textversioner av undertexter ger b\u00e4ttre resultat vid anv\u00e4ndning av mobila enheter.",
+ "HeaderSubtitleDownloadingMoreHelp": "Undertexter betraktas som saknade d\u00e5 ljudsp\u00e5ret \u00e4r p\u00e5 ett fr\u00e4mmande spr\u00e5k och undertexter p\u00e5 det \u00f6nskade spr\u00e5ket ej finns tillg\u00e4ngliga.",
+ "LabelDisplayForcedSubtitlesOnly": "Visa endast tvingande undertexter",
+ "HeaderCustomizeOptionsPerMediaType": "Inst\u00e4llningar baserade p\u00e5 typ av media",
+ "LabelAudioLanguagePreferenceHelp": "Om ej angivet kommer det f\u00f6rvalda ljudsp\u00e5ret att v\u00e4ljas, oavsett spr\u00e5k.",
+ "TabCustomizations": "Anpassningar",
+ "HeaderAllDevices": "Alla enheter",
+ "HeaderThisDevice": "Den h\u00e4r enheten",
+ "OptionLibraryButtons": "Biblioteksknappar",
+ "OptionLibraryTiles": "Biblioteksbrickor",
+ "OptionSmallLibraryTiles": "Biblioteksbrickor (sm\u00e5)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Misslyckades",
+ "LabelSeries": "Serie:",
+ "ButtonPreviousTrack": "F\u00f6reg\u00e5ende sp\u00e5r",
+ "ButtonNextTrack": "N\u00e4sta sp\u00e5r",
+ "HeaderMyLibrary": "Mitt bibliotek",
+ "HeaderLibraryViews": "Biblioteksvyer",
"LabelExit": "Avsluta",
"LabelVisitCommunity": "Bes\u00f6k v\u00e5rt diskussionsforum",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Rollista & bes\u00e4ttning",
"HeaderAdditionalParts": "Ytterligare delar",
"ButtonSplitVersionsApart": "Hantera olika versioner separat",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Saknas",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "S\u00f6kv\u00e4gsutbyte betyder att en plats p\u00e5 servern kopplas till en lokal fils\u00f6kv\u00e4g p\u00e5 en klient. P\u00e5 s\u00e5 s\u00e4tt f\u00e5r klienten direkt tillg\u00e5ng till material p\u00e5 servern och kan spela upp det direkt via n\u00e4tverket utan att f\u00f6rbruka serverresurser f\u00f6r str\u00f6mning och omkodning.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Klienter",
"LabelCompleted": "Klar",
- "LabelFailed": "Failed",
"LabelSkipped": "Hoppades \u00f6ver",
"HeaderEpisodeOrganization": "Katalogisering av avsnitt",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "S\u00e4songsnummer:",
"LabelEpisodeNumber": "Avsnittsnummer:",
"LabelEndingEpisodeNumber": "Avslutande avsnittsnummer:",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scener",
"ButtonSubtitles": "Undertexter",
"ButtonAudioTracks": "Ljudsp\u00e5r",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stopp",
"ButtonPause": "Paus",
"LabelGroupMoviesIntoCollections": "Gruppera filmer i samlingsboxar",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Nytillkommet",
"OptionSpecialFeatures": "Extramaterial",
"HeaderCollections": "Samlingar",
- "HeaderMyLibrary": "Mitt bibliotek",
"LabelProfileCodecsHelp": "\u00c5tskilda med kommatecken, detta kan l\u00e4mnas tomt f\u00f6r att g\u00e4lla f\u00f6r alla kodningsformat.",
"LabelProfileContainersHelp": "\u00c5tskilda med kommatecken, detta kan l\u00e4mnas tomt f\u00f6r att g\u00e4lla f\u00f6r alla beh\u00e5llare.",
"HeaderResponseProfile": "Svarsprofil",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Hemsk\u00e4rmens del 1:",
"LabelHomePageSection2": "Hemsk\u00e4rmens del 2:",
"LabelHomePageSection3": "Hemsk\u00e4rmens del 3:",
+ "LabelHomePageSection4": "Hemsidans del 4:",
"OptionMyLibraryButtons": "Mitt bibliotek (knappar)",
"OptionMyLibrary": "Mitt bibliotek",
"OptionMyLibrarySmall": "Mitt bibliotek (litet)",
"OptionResumablemedia": "\u00c5teruppta",
"OptionLatestMedia": "Nytillkommet",
+ "OptionLatestChannelMedia": "Senaste objekten i Kanaler",
+ "HeaderLatestChannelItems": "Senaste objekten i Kanaler",
"OptionNone": "Inga",
"HeaderLiveTv": "Live-TV",
"HeaderReports": "Rapporter",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Kanaler",
"ViewTypeLiveTV": "Live-TV",
"HeaderOtherDisplaySettings": "Visningsinst\u00e4llningar",
- "HeaderLibraryViews": "Biblioteksvyer",
+ "HeaderMyViews": "Mina vyer",
"LabelSelectFolderGroups": "Gruppera automatiskt f\u00f6ljande mappar till vyer s\u00e5som filmer, musik och TV:",
"LabelSelectFolderGroupsHelp": "Mappar som ej \u00e4r markerade visas enskilda i sin egen avdelning.",
"OptionDisplayAdultContent": "Visa erotiskt inneh\u00e5ll",
- "OptionLibraryFolders": "Mappvy"
+ "OptionLibraryFolders": "Mappvy",
+ "TitleRemoteControl": "Fj\u00e4rrkontroll",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 21a649242..eca1f5a61 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "Updates",
+ "HeaderUpdateLevel": "Update Level",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "Display only forced subtitles",
+ "HeaderCustomizeOptionsPerMediaType": "Customize options per media type",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "Trailer",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "Tho\u00e1t",
"LabelVisitCommunity": "Gh\u00e9 th\u0103m trang C\u1ed9ng \u0111\u1ed3ng",
"LabelGithubWiki": "Github Wiki",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "Cast & Crew",
"HeaderAdditionalParts": "Additional Parts",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "Missing",
"LabelOffline": "Offline",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Ch\u01b0\u01a1ng tr\u00ecnh",
"HeaderClients": "C\u00e1c m\u00e1y kh\u00e1ch",
"LabelCompleted": "Ho\u00e0n th\u00e0nh",
- "LabelFailed": "Failed",
"LabelSkipped": "B\u1ecf qua",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ 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 ecc6c2928..838d947cd 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
@@ -1,4 +1,38 @@
{
+ "LabelMediaBrowser": "Media Browser",
+ "OptionNotifyOnPlayback": "When users play content",
+ "HeaderEnableNotificationForEvents": "Nofity administrative users when:",
+ "HeaderEnableNotificationForPlayback": "Notify when users play:",
+ "OptionNotifyOnUpdates": "Updates available",
+ "OptionNotifyOnVideoPlayback": "Video playback",
+ "OptionNotifyOnAudioPlayback": "Audio playback",
+ "OptionNotifyOnGamePlayback": "Games playback",
+ "OptionNotifyOnFailedTasks": "Scheduled task failure",
+ "OptionNotifyOnNewLibraryContent": "New library content added",
+ "OptionNotifyOnServerRestartRequired": "Server restart required",
+ "NotificationOptionUpdatesAvailable": "Updates available",
+ "NotificationOptionFailedTasks": "Scheduled task failure",
+ "TabUpdates": "\u66f4\u65b0",
+ "HeaderUpdateLevel": "\u66f4\u65b0\u7d1a\u5225",
+ "LabelRequireTextSubtitles": "Download even if the video already contains graphical subtitles",
+ "LabelRequireTextSubtitlesHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "HeaderSubtitleDownloadingMoreHelp": "Subtitles are considered missing when the audio track is in a foreign language, and there are no subtitles available in the preferred language.",
+ "LabelDisplayForcedSubtitlesOnly": "\u53ea\u986f\u793a\u5f37\u5236\u5b57\u5e55",
+ "HeaderCustomizeOptionsPerMediaType": "\u81ea\u5b9a\u7fa9\u6bcf\u500b\u5a92\u9ad4\u985e\u578b\u7684\u9078\u9805",
+ "LabelAudioLanguagePreferenceHelp": "If empty, the default audio track will be selected, regardless of language.",
+ "TabCustomizations": "Customizations",
+ "HeaderAllDevices": "All Devices",
+ "HeaderThisDevice": "This Device",
+ "OptionLibraryButtons": "Library buttons",
+ "OptionLibraryTiles": "Library tiles (large)",
+ "OptionSmallLibraryTiles": "Library tiles (small)",
+ "ButtonPlayTrailer": "\u9810\u544a",
+ "LabelFailed": "Failed",
+ "LabelSeries": "Series:",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "HeaderMyLibrary": "My Library",
+ "HeaderLibraryViews": "Library Views",
"LabelExit": "\u96e2\u958b",
"LabelVisitCommunity": "\u8a2a\u554f\u793e\u5340",
"LabelGithubWiki": "Github \u7ef4\u57fa",
@@ -396,7 +430,6 @@
"HeaderCastCrew": "\u62cd\u651d\u4eba\u54e1\u53ca\u6f14\u54e1",
"HeaderAdditionalParts": "\u9644\u52a0\u90e8\u4efd",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "Trailer",
"LabelMissing": "\u7f3a\u5c11",
"LabelOffline": "\u96e2\u7dda",
"PathSubstitutionHelp": "Path substitutions are used for mapping a path on the server to a path that clients are able to access. By allowing clients direct access to media on the server they may be able to play them directly over the network and avoid using server resources to stream and transcode them.",
@@ -479,10 +512,8 @@
"HeaderProgram": "Program",
"HeaderClients": "Clients",
"LabelCompleted": "Completed",
- "LabelFailed": "Failed",
"LabelSkipped": "Skipped",
"HeaderEpisodeOrganization": "Episode Organization",
- "LabelSeries": "Series:",
"LabelSeasonNumber": "Season number",
"LabelEpisodeNumber": "Episode number",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -630,8 +661,6 @@
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Subtitles",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -643,7 +672,6 @@
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
"HeaderCollections": "Collections",
- "HeaderMyLibrary": "My Library",
"LabelProfileCodecsHelp": "Separated by comma. This can be left empty to apply to all codecs.",
"LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.",
"HeaderResponseProfile": "Response Profile",
@@ -771,11 +799,14 @@
"LabelHomePageSection1": "Home page section one:",
"LabelHomePageSection2": "Home page section two:",
"LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
"OptionMyLibraryButtons": "My library (buttons)",
"OptionMyLibrary": "My library",
"OptionMyLibrarySmall": "My library (small)",
"OptionResumablemedia": "Resume",
"OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
"HeaderReports": "Reports",
@@ -811,9 +842,11 @@
"ViewTypeChannels": "Channels",
"ViewTypeLiveTV": "Live TV",
"HeaderOtherDisplaySettings": "Display Settings",
- "HeaderLibraryViews": "Library Views",
+ "HeaderMyViews": "My Views",
"LabelSelectFolderGroups": "Automatically group content from the following folders into views such as Movies, Music and TV:",
"LabelSelectFolderGroupsHelp": "Folders that are unchecked will be displayed by themselves in their own view.",
"OptionDisplayAdultContent": "Display adult content",
- "OptionLibraryFolders": "Folder view"
+ "OptionLibraryFolders": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs b/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
index df8003dec..3c79b0c32 100644
--- a/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
+++ b/MediaBrowser.Server.Implementations/Sorting/AlbumArtistComparer.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Entities;
+using System.Linq;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Querying;
@@ -31,7 +32,7 @@ namespace MediaBrowser.Server.Implementations.Sorting
{
var audio = x as IHasAlbumArtist;
- return audio != null ? audio.AlbumArtist : null;
+ return audio != null ? audio.AlbumArtists.FirstOrDefault() : null;
}
/// <summary>
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 661a53ed9..40a9d8ed6 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -560,6 +560,7 @@ namespace MediaBrowser.WebDashboard.Api
"gamespage.js",
"gamegenrepage.js",
"gamestudiospage.js",
+ "homelatest.js",
"indexpage.js",
"itembynamedetailpage.js",
"itemdetailpage.js",
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index 02527b2f6..1ae22d49e 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -332,6 +332,9 @@
<Content Include="dashboard-ui\favorites.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="dashboard-ui\homelatest.html">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="dashboard-ui\librarypathmapping.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -665,6 +668,9 @@
<Content Include="dashboard-ui\scripts\favorites.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="dashboard-ui\scripts\homelatest.js">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="dashboard-ui\scripts\librarylist.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>