aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Api/ApiEntryPoint.cs55
-rw-r--r--MediaBrowser.Api/ItemRefreshService.cs3
-rw-r--r--MediaBrowser.Api/Playback/Hls/BaseHlsService.cs5
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs7
-rw-r--r--MediaBrowser.Api/UserService.cs2
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs48
-rw-r--r--MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj6
-rw-r--r--MediaBrowser.Common.Implementations/ScheduledTasks/Tasks/ReloadLoggerFileTask.cs2
-rw-r--r--MediaBrowser.Common.Implementations/packages.config2
-rw-r--r--MediaBrowser.Common/Net/IWebSocket.cs14
-rw-r--r--MediaBrowser.Common/Net/IWebSocketConnection.cs5
-rw-r--r--MediaBrowser.Controller/Library/TVUtils.cs8
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj2
-rw-r--r--MediaBrowser.Controller/Sync/ICloudSyncProvider.cs12
-rw-r--r--MediaBrowser.Controller/Sync/ISyncManager.cs11
-rw-r--r--MediaBrowser.Controller/Sync/ISyncProvider.cs28
-rw-r--r--MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs154
-rw-r--r--MediaBrowser.Dlna/Main/DlnaEntryPoint.cs15
-rw-r--r--MediaBrowser.Dlna/PlayTo/Device.cs19
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlayToController.cs59
-rw-r--r--MediaBrowser.Dlna/PlayTo/PlayToManager.cs39
-rw-r--r--MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs71
-rw-r--r--MediaBrowser.Dlna/Ssdp/SsdpMessageEventArgs.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs7
-rw-r--r--MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj3
-rw-r--r--MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj3
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs7
-rw-r--r--MediaBrowser.Model/Entities/MediaStream.cs6
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj1
-rw-r--r--MediaBrowser.Model/Sync/SyncJob.cs2
-rw-r--r--MediaBrowser.Model/Sync/SyncJobRequest.cs4
-rw-r--r--MediaBrowser.Model/Sync/SyncScheduleRequest.cs4
-rw-r--r--MediaBrowser.Model/Sync/SyncTarget.cs17
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs5
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs21
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs2
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SharpWebSocket.cs24
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs8
-rw-r--r--MediaBrowser.Server.Implementations/Library/UserManager.cs3
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json14
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/da.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/de.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/el.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json140
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json218
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/he.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/it.json162
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json55
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json10
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json20
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json20
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json8
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json12
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ar.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ca.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/cs.json34
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/da.json20
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/de.json28
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/el.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_GB.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_US.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es.json24
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es_MX.json34
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/fr.json168
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/he.json22
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/it.json112
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/kk.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ko.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ms.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nb.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nl.json62
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pl.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json22
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json26
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ru.json126
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json1796
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/sv.json28
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/vi.json24
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json20
-rw-r--r--MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj3
-rw-r--r--MediaBrowser.Server.Implementations/Security/AuthenticationException.cs16
-rw-r--r--MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs7
-rw-r--r--MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs54
-rw-r--r--MediaBrowser.Server.Implementations/Session/SessionManager.cs27
-rw-r--r--MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs26
-rw-r--r--MediaBrowser.Server.Implementations/Sync/CloudSyncProvider.cs35
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncManager.cs13
-rw-r--r--MediaBrowser.ServerApplication/ApplicationHost.cs36
-rw-r--r--MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs6
-rw-r--r--MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs9
-rw-r--r--MediaBrowser.ServerApplication/MainStartup.cs22
-rw-r--r--MediaBrowser.ServerApplication/Native/RegisterServer.bat6
-rw-r--r--MediaBrowser.ServerApplication/Native/ServerAuthorization.cs8
-rw-r--r--MediaBrowser.Tests/Providers/MovieDbProviderTests.cs7
-rw-r--r--MediaBrowser.Tests/Resolvers/TvUtilTests.cs2
-rw-r--r--MediaBrowser.WebDashboard/Api/DashboardService.cs13
-rw-r--r--MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj30
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec2
110 files changed, 2742 insertions, 1921 deletions
diff --git a/MediaBrowser.Api/ApiEntryPoint.cs b/MediaBrowser.Api/ApiEntryPoint.cs
index f255339bc..c51d9e7c0 100644
--- a/MediaBrowser.Api/ApiEntryPoint.cs
+++ b/MediaBrowser.Api/ApiEntryPoint.cs
@@ -302,75 +302,38 @@ namespace MediaBrowser.Api
/// Kills the single transcoding job.
/// </summary>
/// <param name="deviceId">The device id.</param>
- /// <param name="delete">The delete.</param>
+ /// <param name="deleteFiles">The delete files.</param>
/// <param name="acquireLock">if set to <c>true</c> [acquire lock].</param>
/// <returns>Task.</returns>
+ /// <exception cref="ArgumentNullException">deviceId</exception>
/// <exception cref="System.ArgumentNullException">sourcePath</exception>
- internal async Task KillTranscodingJobs(string deviceId, Func<string, bool> delete, bool acquireLock)
+ internal Task KillTranscodingJobs(string deviceId, Func<string, bool> deleteFiles, bool acquireLock)
{
if (string.IsNullOrEmpty(deviceId))
{
throw new ArgumentNullException("deviceId");
}
- var jobs = new List<TranscodingJob>();
-
- lock (_activeTranscodingJobs)
- {
- // This is really only needed for HLS.
- // Progressive streams can stop on their own reliably
- jobs.AddRange(_activeTranscodingJobs.Where(i => string.Equals(deviceId, i.DeviceId, StringComparison.OrdinalIgnoreCase)));
- }
-
- if (jobs.Count == 0)
- {
- return;
- }
-
- if (acquireLock)
- {
- await TranscodingStartLock.WaitAsync(CancellationToken.None).ConfigureAwait(false);
- }
-
- try
- {
- foreach (var job in jobs)
- {
- KillTranscodingJob(job, delete);
- }
- }
- finally
- {
- if (acquireLock)
- {
- TranscodingStartLock.Release();
- }
- }
+ return KillTranscodingJobs(j => string.Equals(deviceId, j.DeviceId, StringComparison.OrdinalIgnoreCase), deleteFiles, acquireLock);
}
/// <summary>
/// Kills the transcoding jobs.
/// </summary>
- /// <param name="deviceId">The device identifier.</param>
- /// <param name="type">The type.</param>
- /// <param name="delete">The delete.</param>
+ /// <param name="killJob">The kill job.</param>
+ /// <param name="deleteFiles">The delete files.</param>
/// <param name="acquireLock">if set to <c>true</c> [acquire lock].</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException">deviceId</exception>
- internal async Task KillTranscodingJobs(string deviceId, TranscodingJobType type, Func<string, bool> delete, bool acquireLock)
+ internal async Task KillTranscodingJobs(Func<TranscodingJob,bool> killJob, Func<string, bool> deleteFiles, bool acquireLock)
{
- if (string.IsNullOrEmpty(deviceId))
- {
- throw new ArgumentNullException("deviceId");
- }
-
var jobs = new List<TranscodingJob>();
lock (_activeTranscodingJobs)
{
// This is really only needed for HLS.
// Progressive streams can stop on their own reliably
- jobs.AddRange(_activeTranscodingJobs.Where(i => string.Equals(deviceId, i.DeviceId, StringComparison.OrdinalIgnoreCase) && i.Type == type));
+ jobs.AddRange(_activeTranscodingJobs.Where(killJob));
}
if (jobs.Count == 0)
@@ -387,7 +350,7 @@ namespace MediaBrowser.Api
{
foreach (var job in jobs)
{
- KillTranscodingJob(job, delete);
+ KillTranscodingJob(job, deleteFiles);
}
}
finally
diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs
index 993b69601..768e9a4a8 100644
--- a/MediaBrowser.Api/ItemRefreshService.cs
+++ b/MediaBrowser.Api/ItemRefreshService.cs
@@ -157,7 +157,8 @@ namespace MediaBrowser.Api
MetadataRefreshMode = request.MetadataRefreshMode,
ImageRefreshMode = request.ImageRefreshMode,
ReplaceAllImages = request.ReplaceAllImages,
- ReplaceAllMetadata = request.ReplaceAllMetadata
+ ReplaceAllMetadata = request.ReplaceAllMetadata,
+ ForceSave = true
};
}
}
diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
index 317c4455a..bd17dc0b2 100644
--- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
@@ -104,11 +104,6 @@ namespace MediaBrowser.Api.Playback.Hls
}
else
{
- if (!string.IsNullOrWhiteSpace(state.Request.DeviceId))
- {
- await ApiEntryPoint.Instance.KillTranscodingJobs(state.Request.DeviceId, TranscodingJobType.Hls, p => true, false).ConfigureAwait(false);
- }
-
// If the playlist doesn't already exist, startup ffmpeg
try
{
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index a098d26da..5e49fbf7a 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -65,6 +65,11 @@ namespace MediaBrowser.Api.Playback.Hls
throw new ArgumentException("Video codec copy is not allowed here.");
}
+ if (string.IsNullOrEmpty(request.MediaSourceId))
+ {
+ throw new ArgumentException("MediaSourceId is required");
+ }
+
var result = GetAsync(request).Result;
return result;
@@ -127,7 +132,7 @@ namespace MediaBrowser.Api.Playback.Hls
// If the playlist doesn't already exist, startup ffmpeg
try
{
- await ApiEntryPoint.Instance.KillTranscodingJobs(state.Request.DeviceId, TranscodingJobType.Hls, p => !string.Equals(p, playlistPath, StringComparison.OrdinalIgnoreCase), false).ConfigureAwait(false);
+ await ApiEntryPoint.Instance.KillTranscodingJobs(j => j.Type == TranscodingJobType.Hls && string.Equals(j.DeviceId, request.DeviceId, StringComparison.OrdinalIgnoreCase), p => !string.Equals(p, playlistPath, StringComparison.OrdinalIgnoreCase), false).ConfigureAwait(false);
if (currentTranscodingIndex.HasValue)
{
diff --git a/MediaBrowser.Api/UserService.cs b/MediaBrowser.Api/UserService.cs
index b7a43c237..f5a1f54cb 100644
--- a/MediaBrowser.Api/UserService.cs
+++ b/MediaBrowser.Api/UserService.cs
@@ -405,7 +405,7 @@ namespace MediaBrowser.Api
if (!success)
{
- throw new UnauthorizedAccessException("Invalid user or password entered.");
+ throw new ArgumentException("Invalid user or password entered.");
}
var task = _userManager.ChangePassword(user, request.NewPassword);
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index 178b840a8..850309465 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -211,6 +211,8 @@ namespace MediaBrowser.Common.Implementations
JsonSerializer = CreateJsonSerializer();
Logger = LogManager.GetLogger("App");
+ OnLoggerLoaded(true);
+ LogManager.LoggerLoaded += (s, e) => OnLoggerLoaded(false);
IsFirstRun = !ConfigurationManager.CommonConfiguration.IsStartupWizardCompleted;
progress.Report(2);
@@ -219,16 +221,11 @@ namespace MediaBrowser.Common.Implementations
? LogSeverity.Debug
: LogSeverity.Info;
- // Put the app config in the log for troubleshooting purposes
- Logger.LogMultiline("Application Configuration:", LogSeverity.Info, new StringBuilder(JsonSerializer.SerializeToString(ConfigurationManager.CommonConfiguration)));
-
progress.Report(3);
DiscoverTypes();
progress.Report(14);
- Logger.Info("Version {0} initializing", ApplicationVersion);
-
SetHttpLimit();
progress.Report(15);
@@ -245,6 +242,47 @@ namespace MediaBrowser.Common.Implementations
progress.Report(100);
}
+ protected virtual void OnLoggerLoaded(bool isFirstLoad)
+ {
+ Logger.Info("Application version: {0}", ApplicationVersion);
+
+ if (!isFirstLoad)
+ {
+ LogEnvironmentInfo(Logger, ApplicationPaths);
+ }
+
+ // Put the app config in the log for troubleshooting purposes
+ Logger.LogMultiline("Application configuration:", LogSeverity.Info, new StringBuilder(JsonSerializer.SerializeToString(ConfigurationManager.CommonConfiguration)));
+
+ if (Plugins != null)
+ {
+ var pluginBuilder = new StringBuilder();
+
+ foreach (var plugin in Plugins)
+ {
+ pluginBuilder.AppendLine(string.Format("{0} {1}", plugin.Name, plugin.Version));
+ }
+
+ Logger.LogMultiline("Plugins:", LogSeverity.Info, pluginBuilder);
+ }
+ }
+
+ public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
+ {
+ logger.Info("Command line: {0}", string.Join(" ", Environment.GetCommandLineArgs()));
+
+ logger.Info("Server: {0}", Environment.MachineName);
+ logger.Info("Operating system: {0}", Environment.OSVersion.ToString());
+ logger.Info("Processor count: {0}", Environment.ProcessorCount);
+ logger.Info("64-Bit OS: {0}", Environment.Is64BitOperatingSystem);
+ logger.Info("64-Bit Process: {0}", Environment.Is64BitProcess);
+ logger.Info("Program data path: {0}", appPaths.ProgramDataPath);
+
+ logger.Info("Application Path: {0}", appPaths.ApplicationPath);
+
+ logger.Info("*** When reporting issues please include the entire log file. ***".ToUpper());
+ }
+
protected virtual IJsonSerializer CreateJsonSerializer()
{
return new JsonSerializer();
diff --git a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
index f6651a9e3..718119fe3 100644
--- a/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
+++ b/MediaBrowser.Common.Implementations/MediaBrowser.Common.Implementations.csproj
@@ -54,11 +54,11 @@
</Reference>
<Reference Include="SimpleInjector, Version=2.5.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\SimpleInjector.2.5.0\lib\net45\SimpleInjector.dll</HintPath>
+ <HintPath>..\packages\SimpleInjector.2.5.2\lib\net45\SimpleInjector.dll</HintPath>
</Reference>
- <Reference Include="SimpleInjector.Diagnostics, Version=2.5.0.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
+ <Reference Include="SimpleInjector.Diagnostics, Version=2.5.2.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\SimpleInjector.2.5.0\lib\net45\SimpleInjector.Diagnostics.dll</HintPath>
+ <HintPath>..\packages\SimpleInjector.2.5.2\lib\net45\SimpleInjector.Diagnostics.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
diff --git a/MediaBrowser.Common.Implementations/ScheduledTasks/Tasks/ReloadLoggerFileTask.cs b/MediaBrowser.Common.Implementations/ScheduledTasks/Tasks/ReloadLoggerFileTask.cs
index 78f60632f..38b6b4ad6 100644
--- a/MediaBrowser.Common.Implementations/ScheduledTasks/Tasks/ReloadLoggerFileTask.cs
+++ b/MediaBrowser.Common.Implementations/ScheduledTasks/Tasks/ReloadLoggerFileTask.cs
@@ -94,7 +94,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks.Tasks
public bool IsHidden
{
- get { return true; }
+ get { return false; }
}
public bool IsEnabled
diff --git a/MediaBrowser.Common.Implementations/packages.config b/MediaBrowser.Common.Implementations/packages.config
index 71d9749da..4f2a4c224 100644
--- a/MediaBrowser.Common.Implementations/packages.config
+++ b/MediaBrowser.Common.Implementations/packages.config
@@ -2,5 +2,5 @@
<packages>
<package id="NLog" version="3.1.0.0" targetFramework="net45" />
<package id="sharpcompress" version="0.10.2" targetFramework="net45" />
- <package id="SimpleInjector" version="2.5.0" targetFramework="net45" />
+ <package id="SimpleInjector" version="2.5.2" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/MediaBrowser.Common/Net/IWebSocket.cs b/MediaBrowser.Common/Net/IWebSocket.cs
index 05f7975bc..b31a95319 100644
--- a/MediaBrowser.Common/Net/IWebSocket.cs
+++ b/MediaBrowser.Common/Net/IWebSocket.cs
@@ -32,15 +32,23 @@ namespace MediaBrowser.Common.Net
/// </summary>
/// <value>The on receive.</value>
Action<string> OnReceive { get; set; }
-
+
/// <summary>
/// Sends the async.
/// </summary>
/// <param name="bytes">The bytes.</param>
- /// <param name="type">The type.</param>
/// <param name="endOfMessage">if set to <c>true</c> [end of message].</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- Task SendAsync(byte[] bytes, WebSocketMessageType type, bool endOfMessage, CancellationToken cancellationToken);
+ Task SendAsync(byte[] bytes, bool endOfMessage, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Sends the asynchronous.
+ /// </summary>
+ /// <param name="text">The text.</param>
+ /// <param name="endOfMessage">if set to <c>true</c> [end of message].</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ Task SendAsync(string text, bool endOfMessage, CancellationToken cancellationToken);
}
}
diff --git a/MediaBrowser.Common/Net/IWebSocketConnection.cs b/MediaBrowser.Common/Net/IWebSocketConnection.cs
index 9f9dfaeca..b7715e20b 100644
--- a/MediaBrowser.Common/Net/IWebSocketConnection.cs
+++ b/MediaBrowser.Common/Net/IWebSocketConnection.cs
@@ -63,11 +63,10 @@ namespace MediaBrowser.Common.Net
/// <summary>
/// Sends a message asynchronously.
/// </summary>
- /// <param name="buffer">The buffer.</param>
- /// <param name="type">The type.</param>
+ /// <param name="text">The text.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
/// <exception cref="System.ArgumentNullException">buffer</exception>
- Task SendAsync(byte[] buffer, WebSocketMessageType type, CancellationToken cancellationToken);
+ Task SendAsync(string text, CancellationToken cancellationToken);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Library/TVUtils.cs b/MediaBrowser.Controller/Library/TVUtils.cs
index 88eadda00..af0ff8319 100644
--- a/MediaBrowser.Controller/Library/TVUtils.cs
+++ b/MediaBrowser.Controller/Library/TVUtils.cs
@@ -200,7 +200,9 @@ namespace MediaBrowser.Controller.Library
/// Determines whether [is series folder] [the specified path].
/// </summary>
/// <param name="path">The path.</param>
+ /// <param name="considerSeasonlessSeries">if set to <c>true</c> [consider seasonless series].</param>
/// <param name="fileSystemChildren">The file system children.</param>
+ /// <param name="directoryService">The directory service.</param>
/// <returns><c>true</c> if [is series folder] [the specified path]; otherwise, <c>false</c>.</returns>
public static bool IsSeriesFolder(string path, bool considerSeasonlessSeries, IEnumerable<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService)
{
@@ -227,8 +229,10 @@ namespace MediaBrowser.Controller.Library
{
return true;
}
-
- nonSeriesFolders++;
+ if (!EntityResolutionHelper.IgnoreFolders.Contains(child.Name, StringComparer.OrdinalIgnoreCase))
+ {
+ nonSeriesFolders++;
+ }
if (nonSeriesFolders >= 3)
{
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index fb50deb66..5c3f10b54 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -319,7 +319,9 @@
<Compile Include="Sorting\SortExtensions.cs" />
<Compile Include="Subtitles\SubtitleResponse.cs" />
<Compile Include="Subtitles\SubtitleSearchRequest.cs" />
+ <Compile Include="Sync\ICloudSyncProvider.cs" />
<Compile Include="Sync\ISyncManager.cs" />
+ <Compile Include="Sync\ISyncProvider.cs" />
<Compile Include="Themes\IAppThemeManager.cs" />
<Compile Include="Themes\InternalThemeImage.cs" />
</ItemGroup>
diff --git a/MediaBrowser.Controller/Sync/ICloudSyncProvider.cs b/MediaBrowser.Controller/Sync/ICloudSyncProvider.cs
new file mode 100644
index 000000000..f93360c64
--- /dev/null
+++ b/MediaBrowser.Controller/Sync/ICloudSyncProvider.cs
@@ -0,0 +1,12 @@
+
+namespace MediaBrowser.Controller.Sync
+{
+ public interface ICloudSyncProvider
+ {
+ /// <summary>
+ /// Gets the name.
+ /// </summary>
+ /// <value>The name.</value>
+ string Name { get; }
+ }
+}
diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs
index 63a5d8a7c..ef4b84f27 100644
--- a/MediaBrowser.Controller/Sync/ISyncManager.cs
+++ b/MediaBrowser.Controller/Sync/ISyncManager.cs
@@ -60,5 +60,16 @@ namespace MediaBrowser.Controller.Sync
/// <param name="id">The identifier.</param>
/// <returns>Task.</returns>
Task CancelSchedule(string id);
+
+ /// <summary>
+ /// Adds the parts.
+ /// </summary>
+ void AddParts(IEnumerable<ISyncProvider> providers);
+
+ /// <summary>
+ /// Gets the synchronize targets.
+ /// </summary>
+ /// <returns>IEnumerable&lt;SyncTarget&gt;.</returns>
+ IEnumerable<SyncTarget> GetSyncTargets();
}
}
diff --git a/MediaBrowser.Controller/Sync/ISyncProvider.cs b/MediaBrowser.Controller/Sync/ISyncProvider.cs
new file mode 100644
index 000000000..89f61b80e
--- /dev/null
+++ b/MediaBrowser.Controller/Sync/ISyncProvider.cs
@@ -0,0 +1,28 @@
+using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.Sync;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Controller.Sync
+{
+ public interface ISyncProvider
+ {
+ /// <summary>
+ /// Gets the name.
+ /// </summary>
+ /// <value>The name.</value>
+ string Name { get; }
+
+ /// <summary>
+ /// Gets the synchronize targets.
+ /// </summary>
+ /// <returns>IEnumerable&lt;SyncTarget&gt;.</returns>
+ IEnumerable<SyncTarget> GetSyncTargets();
+
+ /// <summary>
+ /// Gets the device profile.
+ /// </summary>
+ /// <param name="target">The target.</param>
+ /// <returns>DeviceProfile.</returns>
+ DeviceProfile GetDeviceProfile(SyncTarget target);
+ }
+}
diff --git a/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs b/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
index 847d856fb..414bec715 100644
--- a/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
+++ b/MediaBrowser.Dlna/Channels/DlnaChannelFactory.cs
@@ -1,9 +1,12 @@
-using MediaBrowser.Controller.Channels;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller.Channels;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Dlna.PlayTo;
using MediaBrowser.Dlna.Ssdp;
+using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Events;
+using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -14,45 +17,140 @@ namespace MediaBrowser.Dlna.Channels
{
public class DlnaChannelFactory : IChannelFactory, IDisposable
{
+ private readonly IServerConfigurationManager _config;
+ private readonly ILogger _logger;
+ private readonly IHttpClient _httpClient;
+
private DeviceDiscovery _deviceDiscovery;
- private readonly object _syncLock = new object();
- private readonly List<Device> _servers = new List<Device>();
+ private readonly SemaphoreSlim _syncLock = new SemaphoreSlim(1, 1);
+ private List<Device> _servers = new List<Device>();
public static DlnaChannelFactory Instance;
- public DlnaChannelFactory()
+ private Func<List<string>> _localServersLookup;
+
+ public DlnaChannelFactory(IServerConfigurationManager config, IHttpClient httpClient, ILogger logger)
{
+ _config = config;
+ _httpClient = httpClient;
+ _logger = logger;
Instance = this;
}
- internal void Start(DeviceDiscovery deviceDiscovery)
+ internal void Start(DeviceDiscovery deviceDiscovery, Func<List<string>> localServersLookup)
{
+ _localServersLookup = localServersLookup;
+
_deviceDiscovery = deviceDiscovery;
deviceDiscovery.DeviceDiscovered += deviceDiscovery_DeviceDiscovered;
+ deviceDiscovery.DeviceLeft += deviceDiscovery_DeviceLeft;
}
- void deviceDiscovery_DeviceDiscovered(object sender, GenericEventArgs<DeviceDiscoveryInfo> e)
+ async void deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
{
- var usn = e.Argument.Usn;
- var nt = e.Argument.Nt;
+ string usn;
+ if (!e.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
- // It has to report that it's a media renderer
- if (usn.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
- nt.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1)
+ string nt;
+ if (!e.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
+
+ string location;
+ if (!e.Headers.TryGetValue("Location", out location)) location = string.Empty;
+
+ if (!IsValid(nt, usn))
+ {
+ return;
+ }
+
+ if (_localServersLookup != null)
+ {
+ if (_localServersLookup().Any(i => usn.IndexOf(i, StringComparison.OrdinalIgnoreCase) != -1))
+ {
+ // Don't add the local Dlna server to this
+ return;
+ }
+ }
+
+ if (GetExistingServers(usn).Any())
+ {
+ return;
+ }
+
+ await _syncLock.WaitAsync().ConfigureAwait(false);
+
+ try
+ {
+ if (GetExistingServers(usn).Any())
+ {
+ return;
+ }
+
+ var device = await Device.CreateuPnpDeviceAsync(new Uri(location), _httpClient, _config, _logger).ConfigureAwait(false);
+
+ _servers.Add(device);
+ }
+ finally
+ {
+ _syncLock.Release();
+ }
+ }
+
+ async void deviceDiscovery_DeviceLeft(object sender, SsdpMessageEventArgs e)
+ {
+ string usn;
+ if (!e.Headers.TryGetValue("USN", out usn)) usn = String.Empty;
+
+ string nt;
+ if (!e.Headers.TryGetValue("NT", out nt)) nt = String.Empty;
+
+ if (!IsValid(nt, usn))
{
return;
}
- if (_servers.Any(i => usn.IndexOf(i.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1))
+ if (!GetExistingServers(usn).Any())
{
return;
}
- lock (_syncLock)
+ await _syncLock.WaitAsync().ConfigureAwait(false);
+
+ try
+ {
+ var list = _servers.ToList();
+
+ foreach (var device in GetExistingServers(usn).ToList())
+ {
+ list.Remove(device);
+ }
+
+ _servers = list;
+ }
+ finally
+ {
+ _syncLock.Release();
+ }
+ }
+
+ private bool IsValid(string nt, string usn)
+ {
+ // It has to report that it's a media renderer
+ if (usn.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ nt.IndexOf("ContentDirectory:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ usn.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1 &&
+ nt.IndexOf("MediaServer:", StringComparison.OrdinalIgnoreCase) == -1)
{
- _servers.Add(e.Argument.Device);
+ return false;
}
+
+ return true;
+ }
+
+ private IEnumerable<Device> GetExistingServers(string usn)
+ {
+ return _servers
+ .Where(i => usn.IndexOf(i.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1);
}
public IEnumerable<IChannel> GetChannels()
@@ -65,6 +163,7 @@ namespace MediaBrowser.Dlna.Channels
if (_deviceDiscovery != null)
{
_deviceDiscovery.DeviceDiscovered -= deviceDiscovery_DeviceDiscovered;
+ _deviceDiscovery.DeviceLeft -= deviceDiscovery_DeviceLeft;
}
}
}
@@ -107,7 +206,18 @@ namespace MediaBrowser.Dlna.Channels
{
return new InternalChannelFeatures
{
-
+ ContentTypes = new List<ChannelMediaContentType>
+ {
+ ChannelMediaContentType.Song,
+ ChannelMediaContentType.Clip
+ },
+
+ MediaTypes = new List<ChannelMediaType>
+ {
+ ChannelMediaType.Audio,
+ ChannelMediaType.Video,
+ ChannelMediaType.Photo
+ }
};
}
@@ -118,17 +228,25 @@ namespace MediaBrowser.Dlna.Channels
public Task<ChannelItemResult> GetChannelItems(InternalChannelItemQuery query, CancellationToken cancellationToken)
{
+ // TODO: Implement
return Task.FromResult(new ChannelItemResult());
}
public Task<DynamicImageResponse> GetChannelImage(ImageType type, CancellationToken cancellationToken)
{
- return Task.FromResult(new DynamicImageResponse());
+ // TODO: Implement
+ return Task.FromResult(new DynamicImageResponse
+ {
+ HasImage = false
+ });
}
public IEnumerable<ImageType> GetSupportedChannelImages()
{
- return new List<ImageType>();
+ return new List<ImageType>
+ {
+ ImageType.Primary
+ };
}
}
}
diff --git a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
index e2772b036..8914ae8bf 100644
--- a/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
+++ b/MediaBrowser.Dlna/Main/DlnaEntryPoint.cs
@@ -38,7 +38,7 @@ namespace MediaBrowser.Dlna.Main
private SsdpHandler _ssdpHandler;
private DeviceDiscovery _deviceDiscovery;
- private readonly List<Guid> _registeredServerIds = new List<Guid>();
+ private readonly List<string> _registeredServerIds = new List<string>();
private bool _dlnaServerStarted;
public DlnaEntryPoint(IServerConfigurationManager config, ILogManager logManager, IServerApplicationHost appHost, INetworkManager network, ISessionManager sessionManager, IHttpClient httpClient, IItemRepository itemRepo, ILibraryManager libraryManager, IUserManager userManager, IDlnaManager dlnaManager, IImageProcessor imageProcessor)
@@ -63,7 +63,7 @@ namespace MediaBrowser.Dlna.Main
_config.NamedConfigurationUpdated += _config_NamedConfigurationUpdated;
- DlnaChannelFactory.Instance.Start(_deviceDiscovery);
+ DlnaChannelFactory.Instance.Start(_deviceDiscovery, () => _registeredServerIds);
}
void _config_NamedConfigurationUpdated(object sender, ConfigurationUpdateEventArgs e)
@@ -109,7 +109,7 @@ namespace MediaBrowser.Dlna.Main
_ssdpHandler.Start();
- _deviceDiscovery = new DeviceDiscovery(_logger, _config, _httpClient, _ssdpHandler);
+ _deviceDiscovery = new DeviceDiscovery(_logger, _config, _httpClient, _ssdpHandler, _network);
_deviceDiscovery.Start();
}
@@ -174,7 +174,7 @@ namespace MediaBrowser.Dlna.Main
_ssdpHandler.RegisterNotification(guid, uri, IPAddress.Parse(address), services);
- _registeredServerIds.Add(guid);
+ _registeredServerIds.Add(guid.ToString("N"));
}
}
@@ -216,8 +216,9 @@ namespace MediaBrowser.Dlna.Main
_dlnaManager,
_appHost,
_imageProcessor,
- _ssdpHandler,
- _deviceDiscovery);
+ _deviceDiscovery,
+ _httpClient,
+ _config);
_manager.Start();
}
@@ -260,7 +261,7 @@ namespace MediaBrowser.Dlna.Main
{
try
{
- _ssdpHandler.UnregisterNotification(id);
+ _ssdpHandler.UnregisterNotification(new Guid(id));
}
catch (Exception ex)
{
diff --git a/MediaBrowser.Dlna/PlayTo/Device.cs b/MediaBrowser.Dlna/PlayTo/Device.cs
index 045217a57..272e34a78 100644
--- a/MediaBrowser.Dlna/PlayTo/Device.cs
+++ b/MediaBrowser.Dlna/PlayTo/Device.cs
@@ -370,6 +370,8 @@ namespace MediaBrowser.Dlna.PlayTo
if (_disposed)
return;
+ const int maxSuccessiveStopReturns = 5;
+
try
{
var transportState = await GetTransportInfo().ConfigureAwait(false);
@@ -408,7 +410,7 @@ namespace MediaBrowser.Dlna.PlayTo
{
_successiveStopCount++;
- if (_successiveStopCount >= 10)
+ if (_successiveStopCount >= maxSuccessiveStopReturns)
{
RestartTimerInactive();
}
@@ -423,6 +425,13 @@ namespace MediaBrowser.Dlna.PlayTo
catch (Exception ex)
{
_logger.ErrorException("Error updating device info", ex);
+
+ _successiveStopCount++;
+
+ if (_successiveStopCount >= maxSuccessiveStopReturns)
+ {
+ RestartTimerInactive();
+ }
}
}
@@ -828,17 +837,15 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
+ var device = new Device(deviceProperties, httpClient, logger, config);
+
if (isRenderer)
{
- var device = new Device(deviceProperties, httpClient, logger, config);
-
await device.GetRenderingProtocolAsync().ConfigureAwait(false);
await device.GetAVProtocolAsync().ConfigureAwait(false);
-
- return device;
}
- return null;
+ return device;
}
#endregion
diff --git a/MediaBrowser.Dlna/PlayTo/PlayToController.cs b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
index 34f657217..eb4eb3889 100644
--- a/MediaBrowser.Dlna/PlayTo/PlayToController.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlayToController.cs
@@ -1,7 +1,6 @@
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Session;
@@ -34,7 +33,7 @@ namespace MediaBrowser.Dlna.PlayTo
private readonly IUserManager _userManager;
private readonly IImageProcessor _imageProcessor;
- private readonly SsdpHandler _ssdpHandler;
+ private readonly DeviceDiscovery _deviceDiscovery;
private readonly string _serverAddress;
public bool IsSessionActive
@@ -52,7 +51,7 @@ namespace MediaBrowser.Dlna.PlayTo
private Timer _updateTimer;
- public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, SsdpHandler ssdpHandler, string serverAddress)
+ public PlayToController(SessionInfo session, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, ILogger logger, IDlnaManager dlnaManager, IUserManager userManager, IImageProcessor imageProcessor, string serverAddress, DeviceDiscovery deviceDiscovery)
{
_session = session;
_itemRepository = itemRepository;
@@ -61,8 +60,8 @@ namespace MediaBrowser.Dlna.PlayTo
_dlnaManager = dlnaManager;
_userManager = userManager;
_imageProcessor = imageProcessor;
- _ssdpHandler = ssdpHandler;
_serverAddress = serverAddress;
+ _deviceDiscovery = deviceDiscovery;
_logger = logger;
}
@@ -75,33 +74,12 @@ namespace MediaBrowser.Dlna.PlayTo
_device.MediaChanged += _device_MediaChanged;
_device.Start();
- _ssdpHandler.MessageReceived += _SsdpHandler_MessageReceived;
+ _deviceDiscovery.DeviceLeft += _deviceDiscovery_DeviceLeft;
_updateTimer = new Timer(updateTimer_Elapsed, null, 60000, 60000);
}
- private void updateTimer_Elapsed(object state)
- {
- if (DateTime.UtcNow >= _device.DateLastActivity.AddSeconds(120))
- {
- try
- {
- // Session is inactive, mark it for Disposal and don't start the elapsed timer.
- _sessionManager.ReportSessionEnded(_session.Id);
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error in ReportSessionEnded", ex);
- }
- }
- }
-
- private string GetServerAddress()
- {
- return _serverAddress;
- }
-
- void _SsdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
+ void _deviceDiscovery_DeviceLeft(object sender, SsdpMessageEventArgs e)
{
string nts;
e.Headers.TryGetValue("NTS", out nts);
@@ -112,9 +90,7 @@ namespace MediaBrowser.Dlna.PlayTo
string nt;
if (!e.Headers.TryGetValue("NT", out nt)) nt = String.Empty;
- if (String.Equals(e.Method, "NOTIFY", StringComparison.OrdinalIgnoreCase) &&
- String.Equals(nts, "ssdp:byebye", StringComparison.OrdinalIgnoreCase) &&
- usn.IndexOf(_device.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1 &&
+ if ( usn.IndexOf(_device.Properties.UUID, StringComparison.OrdinalIgnoreCase) != -1 &&
!_disposed)
{
if (usn.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) != -1 ||
@@ -132,6 +108,27 @@ namespace MediaBrowser.Dlna.PlayTo
}
}
+ private void updateTimer_Elapsed(object state)
+ {
+ if (DateTime.UtcNow >= _device.DateLastActivity.AddSeconds(120))
+ {
+ try
+ {
+ // Session is inactive, mark it for Disposal and don't start the elapsed timer.
+ _sessionManager.ReportSessionEnded(_session.Id);
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error in ReportSessionEnded", ex);
+ }
+ }
+ }
+
+ private string GetServerAddress()
+ {
+ return _serverAddress;
+ }
+
async void _device_MediaChanged(object sender, MediaChangedEventArgs e)
{
try
@@ -626,7 +623,7 @@ namespace MediaBrowser.Dlna.PlayTo
_device.PlaybackProgress -= _device_PlaybackProgress;
_device.PlaybackStopped -= _device_PlaybackStopped;
_device.MediaChanged -= _device_MediaChanged;
- _ssdpHandler.MessageReceived -= _SsdpHandler_MessageReceived;
+ _deviceDiscovery.DeviceLeft -= _deviceDiscovery_DeviceLeft;
DisposeUpdateTimer();
diff --git a/MediaBrowser.Dlna/PlayTo/PlayToManager.cs b/MediaBrowser.Dlna/PlayTo/PlayToManager.cs
index 165f788e8..cea397cae 100644
--- a/MediaBrowser.Dlna/PlayTo/PlayToManager.cs
+++ b/MediaBrowser.Dlna/PlayTo/PlayToManager.cs
@@ -1,4 +1,6 @@
-using MediaBrowser.Controller;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Controller;
+using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Library;
@@ -26,11 +28,12 @@ namespace MediaBrowser.Dlna.PlayTo
private readonly IDlnaManager _dlnaManager;
private readonly IServerApplicationHost _appHost;
private readonly IImageProcessor _imageProcessor;
+ private readonly IHttpClient _httpClient;
+ private readonly IServerConfigurationManager _config;
- private readonly SsdpHandler _ssdpHandler;
private readonly DeviceDiscovery _deviceDiscovery;
- public PlayToManager(ILogger logger, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserManager userManager, IDlnaManager dlnaManager, IServerApplicationHost appHost, IImageProcessor imageProcessor, SsdpHandler ssdpHandler, DeviceDiscovery deviceDiscovery)
+ public PlayToManager(ILogger logger, ISessionManager sessionManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserManager userManager, IDlnaManager dlnaManager, IServerApplicationHost appHost, IImageProcessor imageProcessor, DeviceDiscovery deviceDiscovery, IHttpClient httpClient, IServerConfigurationManager config)
{
_logger = logger;
_sessionManager = sessionManager;
@@ -40,8 +43,9 @@ namespace MediaBrowser.Dlna.PlayTo
_dlnaManager = dlnaManager;
_appHost = appHost;
_imageProcessor = imageProcessor;
- _ssdpHandler = ssdpHandler;
_deviceDiscovery = deviceDiscovery;
+ _httpClient = httpClient;
+ _config = config;
}
public void Start()
@@ -49,14 +53,19 @@ namespace MediaBrowser.Dlna.PlayTo
_deviceDiscovery.DeviceDiscovered += _deviceDiscovery_DeviceDiscovered;
}
- async void _deviceDiscovery_DeviceDiscovered(object sender, GenericEventArgs<DeviceDiscoveryInfo> e)
+ async void _deviceDiscovery_DeviceDiscovered(object sender, SsdpMessageEventArgs e)
{
- var device = e.Argument.Device;
- var localIp = e.Argument.LocalIpAddress;
+ var localIp = e.LocalIp;
- var usn = e.Argument.Usn;
- var nt = e.Argument.Nt;
+ string usn;
+ if (!e.Headers.TryGetValue("USN", out usn)) usn = string.Empty;
+ string nt;
+ if (!e.Headers.TryGetValue("NT", out nt)) nt = string.Empty;
+
+ string location;
+ if (!e.Headers.TryGetValue("Location", out location)) location = string.Empty;
+
// It has to report that it's a media renderer
if (usn.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1 &&
nt.IndexOf("MediaRenderer:", StringComparison.OrdinalIgnoreCase) == -1)
@@ -67,12 +76,14 @@ namespace MediaBrowser.Dlna.PlayTo
if (_sessionManager.Sessions.Any(i => usn.IndexOf(i.DeviceId, StringComparison.OrdinalIgnoreCase) != -1))
{
return;
- }
+ }
+
+ var uri = new Uri(location);
+
+ var device = await Device.CreateuPnpDeviceAsync(uri, _httpClient, _config, _logger).ConfigureAwait(false);
if (device.RendererCommands != null)
{
- var uri = e.Argument.Uri;
-
var sessionInfo = await _sessionManager.LogSessionActivity(device.Properties.ClientType, _appHost.ApplicationVersion.ToString(), device.Properties.UUID, device.Properties.Name, uri.OriginalString, null)
.ConfigureAwait(false);
@@ -90,8 +101,8 @@ namespace MediaBrowser.Dlna.PlayTo
_dlnaManager,
_userManager,
_imageProcessor,
- _ssdpHandler,
- serverAddress);
+ serverAddress,
+ _deviceDiscovery);
controller.Init(device);
diff --git a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
index aca164092..8cda73082 100644
--- a/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
+++ b/MediaBrowser.Dlna/Ssdp/DeviceDiscovery.cs
@@ -25,10 +25,12 @@ namespace MediaBrowser.Dlna.Ssdp
private readonly SsdpHandler _ssdpHandler;
private readonly CancellationTokenSource _tokenSource;
private readonly IHttpClient _httpClient;
+ private readonly INetworkManager _networkManager;
- public event EventHandler<GenericEventArgs<DeviceDiscoveryInfo>> DeviceDiscovered;
+ public event EventHandler<SsdpMessageEventArgs> DeviceDiscovered;
+ public event EventHandler<SsdpMessageEventArgs> DeviceLeft;
- public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, IHttpClient httpClient, SsdpHandler ssdpHandler)
+ public DeviceDiscovery(ILogger logger, IServerConfigurationManager config, IHttpClient httpClient, SsdpHandler ssdpHandler, INetworkManager networkManager)
{
_tokenSource = new CancellationTokenSource();
@@ -36,11 +38,12 @@ namespace MediaBrowser.Dlna.Ssdp
_config = config;
_httpClient = httpClient;
_ssdpHandler = ssdpHandler;
+ _networkManager = networkManager;
}
public void Start()
{
- //_ssdpHandler.MessageReceived += _ssdpHandler_MessageReceived;
+ _ssdpHandler.MessageReceived += _ssdpHandler_MessageReceived;
foreach (var network in GetNetworkInterfaces())
{
@@ -72,8 +75,30 @@ namespace MediaBrowser.Dlna.Ssdp
}
}
- void _ssdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
+ void _ssdpHandler_MessageReceived(object sender, SsdpMessageEventArgs e)
{
+ string nts;
+ e.Headers.TryGetValue("NTS", out nts);
+
+ if (String.Equals(e.Method, "NOTIFY", StringComparison.OrdinalIgnoreCase) &&
+ String.Equals(nts, "ssdp:byebye", StringComparison.OrdinalIgnoreCase) &&
+ !_disposed)
+ {
+ EventHelper.FireEventIfNotNull(DeviceLeft, this, e, _logger);
+ return;
+ }
+
+ try
+ {
+ //TryCreateDevice(e, IPAddress.Parse(_networkManager.GetLocalIpAddresses().First()));
+ }
+ catch (OperationCanceledException)
+ {
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error creating play to controller", ex);
+ }
}
private IEnumerable<NetworkInterface> GetNetworkInterfaces()
@@ -113,8 +138,9 @@ namespace MediaBrowser.Dlna.Ssdp
if (receivedBytes > 0)
{
var args = SsdpHelper.ParseSsdpResponse(receiveBuffer, endPoint);
+ args.LocalIp = localIp;
- TryCreateDevice(args, localIp);
+ TryCreateDevice(args);
}
}
@@ -197,7 +223,7 @@ namespace MediaBrowser.Dlna.Ssdp
return socket;
}
- private async void TryCreateDevice(SsdpMessageEventArgs args, IPAddress localIp)
+ private void TryCreateDevice(SsdpMessageEventArgs args)
{
string nts;
args.Headers.TryGetValue("NTS", out nts);
@@ -230,38 +256,7 @@ namespace MediaBrowser.Dlna.Ssdp
_logger.Debug("{0} Device message received from {1}. Headers: {2}", args.Method, args.EndPoint, headerText);
}
- try
- {
- await TryCreateDevice(new Uri(location), localIp, usn, nt).ConfigureAwait(false);
- }
- catch (OperationCanceledException)
- {
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error creating play to controller", ex);
- }
- }
-
- private async Task TryCreateDevice(Uri uri, IPAddress localIp, string usn, string nt)
- {
- var device = await Device.CreateuPnpDeviceAsync(uri, _httpClient, _config, _logger).ConfigureAwait(false);
-
- if (device != null)
- {
- EventHelper.FireEventIfNotNull(DeviceDiscovered, this, new GenericEventArgs<DeviceDiscoveryInfo>
- {
- Argument = new DeviceDiscoveryInfo
- {
- Device = device,
- LocalIpAddress = localIp,
- Uri = uri,
- Usn = usn,
- Nt = nt
- }
-
- }, _logger);
- }
+ EventHelper.FireEventIfNotNull(DeviceDiscovered, this, args, _logger);
}
public void Dispose()
diff --git a/MediaBrowser.Dlna/Ssdp/SsdpMessageEventArgs.cs b/MediaBrowser.Dlna/Ssdp/SsdpMessageEventArgs.cs
index d6368191b..189476830 100644
--- a/MediaBrowser.Dlna/Ssdp/SsdpMessageEventArgs.cs
+++ b/MediaBrowser.Dlna/Ssdp/SsdpMessageEventArgs.cs
@@ -12,6 +12,8 @@ namespace MediaBrowser.Dlna.Ssdp
public Dictionary<string, string> Headers { get; set; }
+ public IPAddress LocalIp { get; set; }
+
public SsdpMessageEventArgs()
{
Headers = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
diff --git a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
index a5ef7977b..5d7762823 100644
--- a/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
+++ b/MediaBrowser.LocalMetadata/Images/LocalImageProvider.cs
@@ -29,7 +29,7 @@ namespace MediaBrowser.LocalMetadata.Images
if (item.SupportsLocalMetadata)
{
// Episode has it's own provider
- if (item.IsOwnedItem || item is Episode || item is Audio)
+ if (item.IsOwnedItem || item is Episode || item is Audio || item is Photo)
{
return false;
}
diff --git a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
index c43875b04..1a2c341da 100644
--- a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
+++ b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
@@ -63,6 +63,8 @@ namespace MediaBrowser.LocalMetadata.Savers
// Deprecated. No longer saving in this field.
"MPAARating",
+ "MPAADescription",
+
"MusicBrainzArtistId",
"MusicBrainzAlbumArtistId",
"MusicBrainzAlbumId",
@@ -230,6 +232,11 @@ namespace MediaBrowser.LocalMetadata.Savers
builder.Append("<ContentRating>" + SecurityElement.Escape(item.OfficialRating) + "</ContentRating>");
}
+ if (!string.IsNullOrEmpty(item.OfficialRatingDescription))
+ {
+ builder.Append("<MPAADescription>" + SecurityElement.Escape(item.OfficialRatingDescription) + "</MPAADescription>");
+ }
+
builder.Append("<Added>" + SecurityElement.Escape(item.DateCreated.ToLocalTime().ToString("G")) + "</Added>");
builder.Append("<LockData>" + item.IsLocked.ToString().ToLower() + "</LockData>");
diff --git a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
index c33e00944..17463941c 100644
--- a/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
+++ b/MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
@@ -869,6 +869,9 @@
<Compile Include="..\MediaBrowser.Model\Sync\SyncScheduleRequest.cs">
<Link>Sync\SyncScheduleRequest.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\Sync\SyncTarget.cs">
+ <Link>Sync\SyncTarget.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\System\LogFile.cs">
<Link>System\LogFile.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
index 22eb008d1..9dafe0cef 100644
--- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
+++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
@@ -826,6 +826,9 @@
<Compile Include="..\MediaBrowser.Model\Sync\SyncScheduleRequest.cs">
<Link>Sync\SyncScheduleRequest.cs</Link>
</Compile>
+ <Compile Include="..\MediaBrowser.Model\Sync\SyncTarget.cs">
+ <Link>Sync\SyncTarget.cs</Link>
+ </Compile>
<Compile Include="..\MediaBrowser.Model\System\LogFile.cs">
<Link>System\LogFile.cs</Link>
</Compile>
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index 904c7bcdd..3448a2905 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -35,12 +35,6 @@ namespace MediaBrowser.Model.Configuration
public int HttpServerPortNumber { get; set; }
/// <summary>
- /// Gets or sets the legacy web socket port number.
- /// </summary>
- /// <value>The legacy web socket port number.</value>
- public int LegacyWebSocketPortNumber { get; set; }
-
- /// <summary>
/// Gets or sets a value indicating whether [enable internet providers].
/// </summary>
/// <value><c>true</c> if [enable internet providers]; otherwise, <c>false</c>.</value>
@@ -216,7 +210,6 @@ namespace MediaBrowser.Model.Configuration
MediaEncodingQuality = EncodingQuality.Auto;
ImageSavingConvention = ImageSavingConvention.Compatible;
HttpServerPortNumber = 8096;
- LegacyWebSocketPortNumber = 8945;
EnableDashboardResponseCaching = true;
EnableAutomaticRestart = true;
diff --git a/MediaBrowser.Model/Entities/MediaStream.cs b/MediaBrowser.Model/Entities/MediaStream.cs
index fe05483e7..f525ae5e0 100644
--- a/MediaBrowser.Model/Entities/MediaStream.cs
+++ b/MediaBrowser.Model/Entities/MediaStream.cs
@@ -1,6 +1,5 @@
using MediaBrowser.Model.Extensions;
using System.Diagnostics;
-using System.Runtime.Serialization;
namespace MediaBrowser.Model.Entities
{
@@ -138,8 +137,11 @@ namespace MediaBrowser.Model.Entities
string codec = Codec ?? string.Empty;
+ // sub = external .sub file
+
return StringHelper.IndexOfIgnoreCase(codec, "pgs") == -1 &&
- StringHelper.IndexOfIgnoreCase(codec, "dvd") == -1;
+ StringHelper.IndexOfIgnoreCase(codec, "dvd") == -1 &&
+ !StringHelper.EqualsIgnoreCase(codec, "sub");
}
}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index a2f2b1318..3c265ff91 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -304,6 +304,7 @@
<Compile Include="Sync\SyncSchedule.cs" />
<Compile Include="Sync\SyncScheduleQuery.cs" />
<Compile Include="Sync\SyncScheduleRequest.cs" />
+ <Compile Include="Sync\SyncTarget.cs" />
<Compile Include="System\LogFile.cs" />
<Compile Include="Themes\AppTheme.cs" />
<Compile Include="Themes\AppThemeInfo.cs" />
diff --git a/MediaBrowser.Model/Sync/SyncJob.cs b/MediaBrowser.Model/Sync/SyncJob.cs
index 09049a196..34809834c 100644
--- a/MediaBrowser.Model/Sync/SyncJob.cs
+++ b/MediaBrowser.Model/Sync/SyncJob.cs
@@ -12,7 +12,7 @@ namespace MediaBrowser.Model.Sync
/// Gets or sets the device identifier.
/// </summary>
/// <value>The device identifier.</value>
- public string DeviceId { get; set; }
+ public string TargetId { get; set; }
/// <summary>
/// Gets or sets the item identifier.
/// </summary>
diff --git a/MediaBrowser.Model/Sync/SyncJobRequest.cs b/MediaBrowser.Model/Sync/SyncJobRequest.cs
index 9871f976d..42b744db6 100644
--- a/MediaBrowser.Model/Sync/SyncJobRequest.cs
+++ b/MediaBrowser.Model/Sync/SyncJobRequest.cs
@@ -8,7 +8,7 @@ namespace MediaBrowser.Model.Sync
/// Gets or sets the device identifier.
/// </summary>
/// <value>The device identifier.</value>
- public List<string> DeviceIds { get; set; }
+ public List<string> TargetIds { get; set; }
/// <summary>
/// Gets or sets the item identifier.
/// </summary>
@@ -22,7 +22,7 @@ namespace MediaBrowser.Model.Sync
public SyncJobRequest()
{
- DeviceIds = new List<string>();
+ TargetIds = new List<string>();
}
}
}
diff --git a/MediaBrowser.Model/Sync/SyncScheduleRequest.cs b/MediaBrowser.Model/Sync/SyncScheduleRequest.cs
index e1ba4b115..076548f57 100644
--- a/MediaBrowser.Model/Sync/SyncScheduleRequest.cs
+++ b/MediaBrowser.Model/Sync/SyncScheduleRequest.cs
@@ -8,7 +8,7 @@ namespace MediaBrowser.Model.Sync
/// Gets or sets the device identifier.
/// </summary>
/// <value>The device identifier.</value>
- public List<string> DeviceIds { get; set; }
+ public List<string> TargetIds { get; set; }
/// <summary>
/// Gets or sets the quality.
/// </summary>
@@ -17,7 +17,7 @@ namespace MediaBrowser.Model.Sync
public SyncScheduleRequest()
{
- DeviceIds = new List<string>();
+ TargetIds = new List<string>();
}
}
}
diff --git a/MediaBrowser.Model/Sync/SyncTarget.cs b/MediaBrowser.Model/Sync/SyncTarget.cs
new file mode 100644
index 000000000..8901f0f27
--- /dev/null
+++ b/MediaBrowser.Model/Sync/SyncTarget.cs
@@ -0,0 +1,17 @@
+
+namespace MediaBrowser.Model.Sync
+{
+ public class SyncTarget
+ {
+ /// <summary>
+ /// Gets or sets the name.
+ /// </summary>
+ /// <value>The name.</value>
+ public string Name { get; set; }
+ /// <summary>
+ /// Gets or sets the identifier.
+ /// </summary>
+ /// <value>The identifier.</value>
+ public string Id { get; set; }
+ }
+}
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
index 62a43751d..94715b490 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
@@ -76,7 +76,8 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{typeof (InvalidOperationException), 422},
{typeof (ResourceNotFoundException), 404},
{typeof (FileNotFoundException), 404},
- {typeof (DirectoryNotFoundException), 404}
+ {typeof (DirectoryNotFoundException), 404},
+ {typeof (Implementations.Security.AuthenticationException), 401}
};
HostConfig.Instance.DebugMode = true;
@@ -157,7 +158,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
HostContext.Config.HandlerFactoryPath = ListenerRequest.GetHandlerPathIfAny(UrlPrefixes.First());
_listener = NativeWebSocket.IsSupported
- ? _listener = new HttpListenerServer(_logger, _threadPoolManager)
+ ? _listener = new WebSocketSharpListener(_logger, _threadPoolManager)
: _listener = new WebSocketSharpListener(_logger, _threadPoolManager);
_listener.WebSocketHandler = WebSocketHandler;
diff --git a/MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs b/MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs
index f89cdac47..c7669fecb 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/NativeWebSocket.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Events;
+using System.Text;
+using MediaBrowser.Common.Events;
using MediaBrowser.Common.Net;
using MediaBrowser.Model.Logging;
using System;
@@ -36,7 +37,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
/// <param name="socket">The socket.</param>
/// <param name="logger">The logger.</param>
/// <exception cref="System.ArgumentNullException">socket</exception>
- public NativeWebSocket(System.Net.WebSockets.WebSocket socket, ILogger logger)
+ public NativeWebSocket(WebSocket socket, ILogger logger)
{
if (socket == null)
{
@@ -155,6 +156,22 @@ namespace MediaBrowser.Server.Implementations.HttpServer
return WebSocket.SendAsync(new ArraySegment<byte>(bytes), nativeType, true, linkedTokenSource.Token);
}
+ public Task SendAsync(byte[] bytes, bool endOfMessage, CancellationToken cancellationToken)
+ {
+ var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _cancellationTokenSource.Token);
+
+ return WebSocket.SendAsync(new ArraySegment<byte>(bytes), System.Net.WebSockets.WebSocketMessageType.Binary, true, linkedTokenSource.Token);
+ }
+
+ public Task SendAsync(string text, bool endOfMessage, CancellationToken cancellationToken)
+ {
+ var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _cancellationTokenSource.Token);
+
+ var bytes = Encoding.UTF8.GetBytes(text);
+
+ return WebSocket.SendAsync(new ArraySegment<byte>(bytes), System.Net.WebSockets.WebSocketMessageType.Text, true, linkedTokenSource.Token);
+ }
+
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
diff --git a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
index 1933cc716..ebb5ab741 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/Security/AuthService.cs
@@ -74,7 +74,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer.Security
if (user != null && user.Configuration.IsDisabled)
{
- throw new UnauthorizedAccessException("User account has been disabled.");
+ throw new AuthenticationException("User account has been disabled.");
}
if (!string.IsNullOrWhiteSpace(auth.DeviceId) &&
diff --git a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SharpWebSocket.cs b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SharpWebSocket.cs
index 412789240..7ff3a1247 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SharpWebSocket.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/SocketSharp/SharpWebSocket.cs
@@ -96,22 +96,30 @@ namespace MediaBrowser.Server.Implementations.HttpServer.SocketSharp
/// Sends the async.
/// </summary>
/// <param name="bytes">The bytes.</param>
- /// <param name="type">The type.</param>
/// <param name="endOfMessage">if set to <c>true</c> [end of message].</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- public Task SendAsync(byte[] bytes, WebSocketMessageType type, bool endOfMessage, CancellationToken cancellationToken)
+ public Task SendAsync(byte[] bytes, bool endOfMessage, CancellationToken cancellationToken)
{
- System.Net.WebSockets.WebSocketMessageType nativeType;
+ var completionSource = new TaskCompletionSource<bool>();
- if (!Enum.TryParse(type.ToString(), true, out nativeType))
- {
- _logger.Warn("Unrecognized WebSocketMessageType: {0}", type.ToString());
- }
+ WebSocket.SendAsync(bytes, res => completionSource.TrySetResult(true));
+
+ return completionSource.Task;
+ }
+ /// <summary>
+ /// Sends the asynchronous.
+ /// </summary>
+ /// <param name="text">The text.</param>
+ /// <param name="endOfMessage">if set to <c>true</c> [end of message].</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ public Task SendAsync(string text, bool endOfMessage, CancellationToken cancellationToken)
+ {
var completionSource = new TaskCompletionSource<bool>();
- WebSocket.SendAsync(Encoding.UTF8.GetString(bytes), res => completionSource.TrySetResult(true));
+ WebSocket.SendAsync(text, res => completionSource.TrySetResult(true));
return completionSource.Task;
}
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
index 6b376d3b4..a756dc794 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs
@@ -67,14 +67,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV
{
return null;
}
-
- // Without these movies that have the name season in them could cause the parent folder to be resolved as a series
- if (filename.IndexOf("[tmdbid=", StringComparison.OrdinalIgnoreCase) != -1)
- {
- return null;
- }
- if (args.ContainsMetaFileByName("series.xml") || filename.IndexOf("[tvdbid=", StringComparison.OrdinalIgnoreCase) != -1 || TVUtils.IsSeriesFolder(args.Path, collectionType == CollectionType.TvShows, args.FileSystemChildren, args.DirectoryService))
+ if (TVUtils.IsSeriesFolder(args.Path, collectionType == CollectionType.TvShows, args.FileSystemChildren, args.DirectoryService))
{
return new Series();
}
diff --git a/MediaBrowser.Server.Implementations/Library/UserManager.cs b/MediaBrowser.Server.Implementations/Library/UserManager.cs
index 1e0bbc39b..dbe020908 100644
--- a/MediaBrowser.Server.Implementations/Library/UserManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/UserManager.cs
@@ -17,6 +17,7 @@ using System.Security.Cryptography;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Server.Implementations.Security;
namespace MediaBrowser.Server.Implementations.Library
{
@@ -137,7 +138,7 @@ namespace MediaBrowser.Server.Implementations.Library
if (user.Configuration.IsDisabled)
{
- throw new UnauthorizedAccessException(string.Format("The {0} account is currently disabled. Please consult with your administrator.", user.Name));
+ throw new AuthenticationException(string.Format("The {0} account is currently disabled. Please consult with your administrator.", user.Name));
}
var existingPasswordString = string.IsNullOrEmpty(user.Password) ? GetSha1String(string.Empty) : user.Password;
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
index eb1334c10..4b2e7ba1d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 f31718893..d3bdf0bbb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 a7f714175..a853a39eb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
@@ -58,7 +58,7 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "P\u0159ehr\u00e1t",
"ButtonEdit": "Upravit",
@@ -125,7 +125,7 @@
"HeaderLatestMedia": "Latest Media",
"ButtonMore": "V\u00edce...",
"HeaderFavoriteMovies": "Obl\u00edben\u00e9 filmy",
- "HeaderFavoriteShows": "Favorite Shows",
+ "HeaderFavoriteShows": "Obl\u00edben\u00e9 seri\u00e1ly",
"HeaderFavoriteEpisodes": "Favorite Episodes",
"HeaderFavoriteGames": "Favorite Games",
"HeaderRatingsDownloads": "Rating \/ Downloads",
@@ -208,7 +208,7 @@
"MessageEnsureOpenTuner": "Please ensure there is an open tuner availalble.",
"ButtonHome": "Dom\u016f",
"ButtonDashboard": "Dashboard",
- "ButtonReports": "Reports",
+ "ButtonReports": "Hl\u00e1\u0161en\u00ed",
"ButtonMetadataManager": "Metadata Manager",
"HeaderTime": "Time",
"HeaderName": "N\u00e1zev",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Titulky",
"ButtonScenes": "Sc\u00e9ny",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Vybrat",
+ "ButtonNew": "Nov\u00e9",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 2b70bf74e..8c13b22b7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Afspil",
"ButtonEdit": "Rediger",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Undertekster",
"ButtonScenes": "Scener",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "V\u00e6lg",
+ "ButtonNew": "Ny",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 be4cf1bbf..c871cae0a 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Untertitel",
"ButtonScenes": "Szenen",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Ausw\u00e4hlen",
+ "ButtonNew": "Neu",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 a033dcbc9..3514a060a 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 59dbb63e6..da4787718 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 a0fc056bc..ff77db14b 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 5c199c8ea..f5f30360d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subt\u00edtulos",
"ButtonScenes": "Escenas",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Seleccionar",
+ "ButtonNew": "Nuevo",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 1ca3aa56d..53047104c 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
@@ -233,85 +233,91 @@
"ButtonRevoke": "Revocar",
"MessageConfirmRevokeApiKey": "\u00bfEst\u00e1 seguro de querer revocar esta llave de API?",
"HeaderConfirmRevokeApiKey": "Revocar llave de API",
- "ValueContainer": "Container: {0}",
- "ValueAudioCodec": "Audio Codec: {0}",
- "ValueVideoCodec": "Video Codec: {0}",
- "ValueCodec": "Codec: {0}",
- "ValueConditions": "Conditions: {0}",
- "LabelAll": "All",
- "HeaderDeleteImage": "Delete Image",
- "MessageFileNotFound": "File not found.",
- "MessageFileReadError": "An error occurred reading this file.",
- "ButtonNextPage": "Next Page",
- "ButtonPreviousPage": "Previous Page",
- "ButtonMoveLeft": "Move left",
- "ButtonMoveRight": "Move right",
- "ButtonBrowseOnlineImages": "Browse online images",
- "HeaderDeleteItem": "Delete Item",
- "ConfirmDeleteItem": "Are you sure you wish to delete this item from your library?",
- "MessagePleaseEnterNameOrId": "Please enter a name or an external Id.",
- "MessageValueNotCorrect": "The value entered is not correct. Please try again.",
- "MessageItemSaved": "Item saved.",
+ "ValueContainer": "Contenedor: {0}",
+ "ValueAudioCodec": "C\u00f3dec de Audio: {0}",
+ "ValueVideoCodec": "C\u00f3dec de Video: {0}",
+ "ValueCodec": "C\u00f3dec: {0}",
+ "ValueConditions": "Condiciones: {0}",
+ "LabelAll": "Todos",
+ "HeaderDeleteImage": "Eliminar Im\u00e1gen",
+ "MessageFileNotFound": "Archivo no encontrado.",
+ "MessageFileReadError": "Ha ocurrido un error al leer este archivo.",
+ "ButtonNextPage": "P\u00e1gina Siguiente",
+ "ButtonPreviousPage": "P\u00e1gina Anterior",
+ "ButtonMoveLeft": "Mover a la izquierda",
+ "ButtonMoveRight": "Mover a la derecha",
+ "ButtonBrowseOnlineImages": "Navegar por im\u00e1genes en l\u00ednea",
+ "HeaderDeleteItem": "Eliminar \u00cdtem",
+ "ConfirmDeleteItem": "\u00bfEsta seguro de querer eleiminar este \u00edtem de su biblioteca?",
+ "MessagePleaseEnterNameOrId": "Por favor ingrese un nombre o id externo.",
+ "MessageValueNotCorrect": "El valor ingresado no es correcto. Intente nuevamente por favor.",
+ "MessageItemSaved": "\u00cdtem guardado.",
"OptionEnded": "Finalizado",
"OptionContinuing": "Continuando",
"OptionOff": "No",
"OptionOn": "Si",
- "HeaderFields": "Fields",
- "HeaderFieldsHelp": "Slide a field to 'off' to lock it and prevent it's data from being changed.",
- "HeaderLiveTV": "Live TV",
- "MissingLocalTrailer": "Missing local trailer.",
- "MissingPrimaryImage": "Missing primary image.",
- "MissingBackdropImage": "Missing backdrop image.",
- "MissingLogoImage": "Missing logo image.",
- "MissingEpisode": "Missing episode.",
- "OptionScreenshots": "Screenshots",
- "OptionBackdrops": "Backdrops",
- "OptionImages": "Images",
- "OptionKeywords": "Keywords",
- "OptionTags": "Tags",
- "OptionStudios": "Studios",
- "OptionName": "Name",
- "OptionOverview": "Overview",
- "OptionGenres": "Genres",
+ "HeaderFields": "Campos",
+ "HeaderFieldsHelp": "Deslice un campo hacia \"apagado\" para bloquearlo y evitar que sus datos sean modificados.",
+ "HeaderLiveTV": "TV en Vivo",
+ "MissingLocalTrailer": "Falta avance local.",
+ "MissingPrimaryImage": "Falta im\u00e1gen primaria.",
+ "MissingBackdropImage": "Falta im\u00e1gen de fondo.",
+ "MissingLogoImage": "Falta im\u00e1gen de logo.",
+ "MissingEpisode": "Falta episodio.",
+ "OptionScreenshots": "Capuras de Pantalla",
+ "OptionBackdrops": "Fondos",
+ "OptionImages": "Im\u00e1genes",
+ "OptionKeywords": "Palabras clave",
+ "OptionTags": "Etiquetas",
+ "OptionStudios": "Estudios",
+ "OptionName": "Nombre",
+ "OptionOverview": "Sinopsis",
+ "OptionGenres": "G\u00e9neros",
"OptionParentalRating": "Clasificaci\u00f3n Parental",
- "OptionPeople": "People",
+ "OptionPeople": "Personas",
"OptionRuntime": "Duraci\u00f3n",
- "OptionProductionLocations": "Production Locations",
- "OptionBirthLocation": "Birth Location",
+ "OptionProductionLocations": "Lugares de Producci\u00f3n",
+ "OptionBirthLocation": "Lugar de Nacimiento",
"LabelAllChannels": "Todos los canales",
- "LabelLiveProgram": "LIVE",
- "LabelNewProgram": "NEW",
- "LabelPremiereProgram": "PREMIERE",
- "HeaderChangeFolderType": "Change Folder Type",
- "HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
- "HeaderAlert": "Alert",
- "MessagePleaseRestart": "Please restart to finish updating.",
+ "LabelLiveProgram": "EN VIVO",
+ "LabelNewProgram": "NUEVO",
+ "LabelPremiereProgram": "ESTRENO",
+ "HeaderChangeFolderType": "Cambiar tipo de carpeta",
+ "HeaderChangeFolderTypeHelp": "Para cambiar el tipo de carpeta, por favor elimine y reconstruya la colecci\u00f3n con el nuevo tipo.",
+ "HeaderAlert": "Alerta",
+ "MessagePleaseRestart": "Por favor reinicie para finalizar la actualizaci\u00f3n.",
"ButtonRestart": "Reiniciar",
- "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.",
- "ButtonHide": "Hide",
- "MessageSettingsSaved": "Settings saved.",
- "ButtonSignOut": "Sign Out",
- "ButtonMyProfile": "My Profile",
- "ButtonMyPreferences": "My Preferences",
- "MessageBrowserDoesNotSupportWebSockets": "This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.",
- "LabelInstallingPackage": "Installing {0}",
- "LabelPackageInstallCompleted": "{0} installation completed.",
- "LabelPackageInstallFailed": "{0} installation failed.",
- "LabelPackageInstallCancelled": "{0} installation cancelled.",
+ "MessagePleaseRefreshPage": "Por favor actualice esta p\u00e1gina para recibir nuevas actualizaciones desde el servidor.",
+ "ButtonHide": "Ocultar",
+ "MessageSettingsSaved": "Configuraciones guardadas",
+ "ButtonSignOut": "Cerrar Sesi\u00f3n",
+ "ButtonMyProfile": "Mi Perf\u00edl",
+ "ButtonMyPreferences": "Mis Preferencias",
+ "MessageBrowserDoesNotSupportWebSockets": "Este navegador no soporta sockets web. Para una mejor experiencia, pruebe con un navegador m\u00e1s nuevo como Chrome, Firefox, IE10+, Safari (iOS) u Opera.",
+ "LabelInstallingPackage": "Instalando {0}",
+ "LabelPackageInstallCompleted": "{0} instalaci\u00f3n completada.",
+ "LabelPackageInstallFailed": "{0} instalaci\u00f3n fallida.",
+ "LabelPackageInstallCancelled": "{0} instalaci\u00f3n cancelada.",
"TabServer": "Servidor",
- "TabUsers": "Users",
- "TabLibrary": "Library",
+ "TabUsers": "Usuarios",
+ "TabLibrary": "Biblioteca",
"TabMetadata": "Metadatos",
"TabDLNA": "DLNA",
- "TabLiveTV": "Live TV",
- "TabAutoOrganize": "Auto-Organize",
- "TabPlugins": "Plugins",
+ "TabLiveTV": "TV en Vivo",
+ "TabAutoOrganize": "Auto-Organizar",
+ "TabPlugins": "Complementos",
"TabAdvanced": "Avanzado",
- "TabHelp": "Help",
- "TabScheduledTasks": "Scheduled Tasks",
- "ButtonFullscreen": "Fullscreen",
- "ButtonAudioTracks": "Audio Tracks",
+ "TabHelp": "Ayuda",
+ "TabScheduledTasks": "Tareas Programadas",
+ "ButtonFullscreen": "Pantalla completa",
+ "ButtonAudioTracks": "Pistas de Sonido",
"ButtonSubtitles": "Subt\u00edtulos",
"ButtonScenes": "Escenas",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Calidad",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Seleccionar",
+ "ButtonNew": "Nuevo",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 0919afc7d..6bcb5aed5 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
@@ -30,7 +30,7 @@
"HeaderConfirmation": "Confirmation",
"MessageKeyUpdated": "Merci. Votre cl\u00e9 de supporteur a \u00e9t\u00e9 mise \u00e0 jour.",
"MessageKeyRemoved": "Merci, Votre cl\u00e9 de supporteur a \u00e9t\u00e9 supprim\u00e9e.",
- "ErrorLaunchingChromecast": "There was an error launching chromecast. Please ensure your device is connected to your wireless network.",
+ "ErrorLaunchingChromecast": "Une erreur est rencontr\u00e9e lors du lancement de Chromecast. Assurez-vous bien que votre p\u00e9riph\u00e9rique est bien connect\u00e9 \u00e0 votre r\u00e9seau sans-fil.",
"HeaderSearch": "Recherche",
"LabelArtist": "Artiste",
"LabelMovie": "Film",
@@ -104,7 +104,7 @@
"LabelVersionUpToDate": "\u00c0 jour!",
"ButtonResetTuner": "Red\u00e9marrer tuner",
"HeaderResetTuner": "Red\u00e9marrer tuner",
- "MessageConfirmResetTuner": "Are you sure you wish to reset this tuner? Any active players or recordings will be abruptly stopped.",
+ "MessageConfirmResetTuner": "\u00cates-vous s\u00fbr de vouloir r\u00e9initialiser ce tuner ? Tout les lecteurs ou enregistrements actifs seront brusquement interrompus.",
"ButtonCancelSeries": "Annuler s\u00e9ries",
"HeaderSeriesRecordings": "Enregistrements de s\u00e9ries",
"LabelAnytime": "N'importe quelle heure",
@@ -112,8 +112,8 @@
"StatusWatching": "En lecture",
"StatusRecordingProgram": "Enregistre {0}",
"StatusWatchingProgram": "En lecture de {0}",
- "HeaderSplitMedia": "Split Media Apart",
- "MessageConfirmSplitMedia": "Are you sure you wish to split the media sources into separate items?",
+ "HeaderSplitMedia": "S\u00e9parer les m\u00e9dias",
+ "MessageConfirmSplitMedia": "\u00cates vous s\u00fbrs de vouloir diviser les sources de m\u00e9dia dans des items s\u00e9par\u00e9s ?",
"HeaderError": "Erreur",
"MessagePleaseSelectOneItem": "Veuillez s\u00e9lectionner au moins un item.",
"MessagePleaseSelectTwoItems": "Veuillez s\u00e9lectionner au moins deux items.",
@@ -136,16 +136,16 @@
"HeaderSelectImagesByNamePath": "S\u00e9lectionner le chemin d'acc\u00e8s du \"Images By Name\"",
"HeaderSelectMetadataPath": "S\u00e9lectionner le chemin d'acc\u00e8s des m\u00e9tadonn\u00e9es",
"HeaderSelectServerCachePathHelp": "Parcourez ou entrez le chemin \u00e0 utiliser pour les fichiers caches du serveur. Le dossier doit \u00eatre accessible en \u00e9criture. L'emplacement de ce fichier aura un impact direct sur les performances du serveur et devrait \u00eatre plac\u00e9 id\u00e9alement sur un SSD.",
- "HeaderSelectTranscodingPathHelp": "Browse or enter the path to use for transcoding temporary files. The folder must be writeable.",
- "HeaderSelectImagesByNamePathHelp": "Browse or enter the path to your items by name folder. The folder must be writeable.",
- "HeaderSelectMetadataPathHelp": "Browse or enter the path you'd like to store metadata within. The folder must be writeable.",
- "HeaderSelectChannelDownloadPath": "Select Channel Download Path",
- "HeaderSelectChannelDownloadPathHelp": "Browse or enter the path to use for storing channel cache files. The folder must be writeable.",
+ "HeaderSelectTranscodingPathHelp": "Parcourir ou saisir le chemin dossier \u00e0 utiliser pour le transcodage des fichiers temporaires. Le dossier devra \u00eatre accessible en \u00e9criture.",
+ "HeaderSelectImagesByNamePathHelp": "Parcourir ou saisir le chemin dossier de vos items par le nom du dossier. Le dossier devra \u00eatre accessible en \u00e9criture.",
+ "HeaderSelectMetadataPathHelp": "Parcourir ou saisir le chemin o\u00f9 vous aimeriez stocker les m\u00e9tadonn\u00e9es. Le r\u00e9pertoire doit \u00eatre accessible en \u00e9criture.",
+ "HeaderSelectChannelDownloadPath": "S\u00e9lectionnez le chemin de t\u00e9l\u00e9chargement des cha\u00eenes.",
+ "HeaderSelectChannelDownloadPathHelp": "Parcourir ou saisir le chemin destin\u00e9 au stockage des fichers cache des cha\u00eenes. Le r\u00e9pertoire doit \u00eatre accessible en \u00e9criture.",
"OptionNewCollection": "Nouveau...",
"ButtonAdd": "Ajouter",
"ButtonRemove": "Supprimer",
"LabelChapterDownloaders": "Agents de t\u00e9l\u00e9chargement de chapitres:",
- "LabelChapterDownloadersHelp": "Enable and rank your preferred chapter downloaders in order of priority. Lower priority downloaders will only be used to fill in missing information.",
+ "LabelChapterDownloadersHelp": "Activer et classer vos sources de t\u00e9l\u00e9chargement de chapitre pr\u00e9f\u00e9r\u00e9s dans un ordre de priorit\u00e9. Les sources de t\u00e9l\u00e9chargement ayant une priorit\u00e9 basse, seront seulement utilis\u00e9es pour remplir les informations manquantes.",
"HeaderFavoriteAlbums": "Albums favoris",
"HeaderLatestChannelMedia": "Derniers items de cha\u00eenes",
"ButtonOrganizeFile": "Organiser fichier",
@@ -157,11 +157,11 @@
"StatusSuccess": "Succ\u00e8s",
"MessageFileWillBeDeleted": "Le fichier suivant sera supprim\u00e9:",
"MessageSureYouWishToProceed": "\u00cates-vous s\u00fbr de vouloir continuer?",
- "MessageDuplicatesWillBeDeleted": "In addition the following dupliates will be deleted:",
+ "MessageDuplicatesWillBeDeleted": "De plus, les doubles suivants vont \u00eatre supprim\u00e9s :",
"MessageFollowingFileWillBeMovedFrom": "Le fichier suivant sera d\u00e9plac\u00e9 de:",
"MessageDestinationTo": "Vers:",
"HeaderSelectWatchFolder": "S\u00e9lectionner le r\u00e9pertoire surveill\u00e9",
- "HeaderSelectWatchFolderHelp": "Browse or enter the path to your watch folder. The folder must be writeable.",
+ "HeaderSelectWatchFolderHelp": "Parcourir ou saisir le chemin de votre r\u00e9pertoire de surveillance. Le r\u00e9pertoire doit \u00eatre accessible en \u00e9criture.",
"OrganizePatternResult": "R\u00e9sultats: {0}",
"HeaderRestart": "Red\u00e9marrer",
"HeaderShutdown": "\u00c9teindre",
@@ -191,127 +191,133 @@
"ButtonCancel": "Annuler",
"ButtonRefresh": "Actualiser",
"LabelCurrentPath": "Chemin actuel:",
- "HeaderSelectMediaPath": "Select Media Path",
+ "HeaderSelectMediaPath": "S\u00e9lectionner le chemin m\u00e9dia",
"ButtonNetwork": "R\u00e9seau",
- "MessageDirectoryPickerInstruction": "Network paths can be entered manually in the event the Network button fails to locate your devices. For example, {0} or {1}.",
+ "MessageDirectoryPickerInstruction": "Les chemins r\u00e9seaux seront saisis manuellement dans le cas o\u00f9 le bouton R\u00e9seau ne parvient pas \u00e0 rechercher vos p\u00e9riph\u00e9riques. Par exmple, {0} ou {1}.",
"HeaderMenu": "Menu",
- "ButtonOpen": "Open",
- "ButtonOpenInNewTab": "Open in new tab",
- "ButtonShuffle": "Shuffle",
- "ButtonInstantMix": "Instant mix",
- "ButtonResume": "Resume",
+ "ButtonOpen": "Ouvrir",
+ "ButtonOpenInNewTab": "Ouvrir dans un nouvel onglet",
+ "ButtonShuffle": "M\u00e9langer",
+ "ButtonInstantMix": "Instantan\u00e9",
+ "ButtonResume": "Reprendre",
"HeaderScenes": "Sc\u00e8nes",
- "HeaderAudioTracks": "Audio Tracks",
- "HeaderSubtitles": "Subtitles",
- "HeaderVideoQuality": "Video Quality",
- "MessageErrorPlayingVideo": "There was an error playing the video.",
- "MessageEnsureOpenTuner": "Please ensure there is an open tuner availalble.",
+ "HeaderAudioTracks": "Pistes audio",
+ "HeaderSubtitles": "Sous-titres",
+ "HeaderVideoQuality": "Qualit\u00e9 vid\u00e9o",
+ "MessageErrorPlayingVideo": "La lecture de la vid\u00e9o a rencontr\u00e9 une erreur",
+ "MessageEnsureOpenTuner": "V\u00e9rifiez bien que le tuner est disponible",
"ButtonHome": "Principal",
- "ButtonDashboard": "Dashboard",
- "ButtonReports": "Reports",
- "ButtonMetadataManager": "Metadata Manager",
- "HeaderTime": "Time",
+ "ButtonDashboard": "Tableau de bord",
+ "ButtonReports": "Rapports",
+ "ButtonMetadataManager": "Gestionnaire de m\u00e9tadonn\u00e9es",
+ "HeaderTime": "Heure",
"HeaderName": "Nom",
"HeaderAlbum": "Album",
- "HeaderAlbumArtist": "Album Artist",
- "HeaderArtist": "Artist",
- "LabelAddedOnDate": "Added {0}",
- "ButtonStart": "Start",
+ "HeaderAlbumArtist": "Artiste de l'album",
+ "HeaderArtist": "Artiste",
+ "LabelAddedOnDate": "Ajout\u00e9 {0}",
+ "ButtonStart": "Commencer",
"HeaderChannels": "Cha\u00eenes",
"HeaderMediaFolders": "R\u00e9pertoires de m\u00e9dias",
- "HeaderBlockItemsWithNoRating": "Block items with no rating information:",
- "OptionBlockOthers": "Others",
- "OptionBlockTvShows": "TV Shows",
- "OptionBlockTrailers": "Trailers",
- "OptionBlockMusic": "Music",
- "OptionBlockMovies": "Movies",
- "OptionBlockBooks": "Books",
- "OptionBlockGames": "Games",
- "OptionBlockLiveTvPrograms": "Live TV Programs",
- "OptionBlockLiveTvChannels": "Live TV Channels",
- "OptionBlockChannelContent": "Internet Channel Content",
- "ButtonRevoke": "Revoke",
- "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Media Browser will be abruptly terminated.",
- "HeaderConfirmRevokeApiKey": "Revoke Api Key",
- "ValueContainer": "Container: {0}",
- "ValueAudioCodec": "Audio Codec: {0}",
- "ValueVideoCodec": "Video Codec: {0}",
- "ValueCodec": "Codec: {0}",
- "ValueConditions": "Conditions: {0}",
- "LabelAll": "All",
- "HeaderDeleteImage": "Delete Image",
- "MessageFileNotFound": "File not found.",
- "MessageFileReadError": "An error occurred reading this file.",
- "ButtonNextPage": "Next Page",
- "ButtonPreviousPage": "Previous Page",
- "ButtonMoveLeft": "Move left",
- "ButtonMoveRight": "Move right",
- "ButtonBrowseOnlineImages": "Browse online images",
- "HeaderDeleteItem": "Delete Item",
- "ConfirmDeleteItem": "Are you sure you wish to delete this item from your library?",
- "MessagePleaseEnterNameOrId": "Please enter a name or an external Id.",
- "MessageValueNotCorrect": "The value entered is not correct. Please try again.",
- "MessageItemSaved": "Item saved.",
+ "HeaderBlockItemsWithNoRating": "Bloquer les items ne comportant aucune information de classement :",
+ "OptionBlockOthers": "Autres",
+ "OptionBlockTvShows": "Emissions TV",
+ "OptionBlockTrailers": "Bande-annonces",
+ "OptionBlockMusic": "Musiques",
+ "OptionBlockMovies": "Films",
+ "OptionBlockBooks": "Livres",
+ "OptionBlockGames": "Jeux",
+ "OptionBlockLiveTvPrograms": "Programmes TV en direct",
+ "OptionBlockLiveTvChannels": "Cha\u00eenes TV en direct",
+ "OptionBlockChannelContent": "Cha\u00eenes Internet",
+ "ButtonRevoke": "R\u00e9voquer",
+ "MessageConfirmRevokeApiKey": "\u00cates-vous s\u00fbr de vouloir r\u00e9voquer la cl\u00e9 API ? La connexion \u00e0 l'application Media Browser sera brusquement interrompue.",
+ "HeaderConfirmRevokeApiKey": "R\u00e9voquer la cl\u00e9 API",
+ "ValueContainer": "Conteneur : {0}",
+ "ValueAudioCodec": "Codec Audio : {0}",
+ "ValueVideoCodec": "Codec Vid\u00e9o : {0}",
+ "ValueCodec": "Codec : {0}",
+ "ValueConditions": "Conditions : {0}",
+ "LabelAll": "Tout",
+ "HeaderDeleteImage": "Supprimer l'image",
+ "MessageFileNotFound": "Fichier introuvable.",
+ "MessageFileReadError": "Une erreur a \u00e9t\u00e9 rencontr\u00e9e pendant la lecture de ce fichier.",
+ "ButtonNextPage": "Page suivante",
+ "ButtonPreviousPage": "Page pr\u00e9c\u00e9dente",
+ "ButtonMoveLeft": "D\u00e9placer \u00e0 gauche",
+ "ButtonMoveRight": "D\u00e9placer \u00e0 droite",
+ "ButtonBrowseOnlineImages": "Parcourir les images en ligne",
+ "HeaderDeleteItem": "Supprimer l'item",
+ "ConfirmDeleteItem": "\u00cates-vous s\u00fbr de vouloir supprimer cet item de votre biblioth\u00e8que ?",
+ "MessagePleaseEnterNameOrId": "Merci de saisir un nom ou un ID externe.",
+ "MessageValueNotCorrect": "La valeur saisie est incorrecte. Merci de r\u00e9\u00e9ssayer.",
+ "MessageItemSaved": "Item sauvegard\u00e9.",
"OptionEnded": "Termin\u00e9",
"OptionContinuing": "En cours",
"OptionOff": "Off",
"OptionOn": "On",
- "HeaderFields": "Fields",
- "HeaderFieldsHelp": "Slide a field to 'off' to lock it and prevent it's data from being changed.",
- "HeaderLiveTV": "Live TV",
- "MissingLocalTrailer": "Missing local trailer.",
- "MissingPrimaryImage": "Missing primary image.",
- "MissingBackdropImage": "Missing backdrop image.",
- "MissingLogoImage": "Missing logo image.",
- "MissingEpisode": "Missing episode.",
- "OptionScreenshots": "Screenshots",
- "OptionBackdrops": "Backdrops",
+ "HeaderFields": "Champs",
+ "HeaderFieldsHelp": "Glisser un champ sur \"off\" pour le v\u00e9rouiller et emp\u00eacher les modifications de donn\u00e9es.",
+ "HeaderLiveTV": "TV en direct",
+ "MissingLocalTrailer": "Bande-annonce locale manquante.",
+ "MissingPrimaryImage": "Image principale manquante.",
+ "MissingBackdropImage": "Image d'arri\u00e8re-plan manquante.",
+ "MissingLogoImage": "Image logo manquante.",
+ "MissingEpisode": "Episode manquant.",
+ "OptionScreenshots": "Captures d'\u00e9cran",
+ "OptionBackdrops": "Arri\u00e8re-plans",
"OptionImages": "Images",
- "OptionKeywords": "Keywords",
+ "OptionKeywords": "Mots-cl\u00e9s",
"OptionTags": "Tags",
"OptionStudios": "Studios",
- "OptionName": "Name",
- "OptionOverview": "Overview",
+ "OptionName": "Nom",
+ "OptionOverview": "Aper\u00e7u",
"OptionGenres": "Genres",
"OptionParentalRating": "Note d'\u00e9valuation de contr\u00f4le parental",
"OptionPeople": "People",
"OptionRuntime": "Dur\u00e9e",
- "OptionProductionLocations": "Production Locations",
- "OptionBirthLocation": "Birth Location",
+ "OptionProductionLocations": "Sites de production",
+ "OptionBirthLocation": "Lieu de naissance",
"LabelAllChannels": "Toutes les cha\u00eenes",
- "LabelLiveProgram": "LIVE",
- "LabelNewProgram": "NEW",
+ "LabelLiveProgram": "DIRECT",
+ "LabelNewProgram": "NOUVEAUTE",
"LabelPremiereProgram": "PREMIERE",
- "HeaderChangeFolderType": "Change Folder Type",
- "HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
- "HeaderAlert": "Alert",
- "MessagePleaseRestart": "Please restart to finish updating.",
+ "HeaderChangeFolderType": "Modifier le type de dossier",
+ "HeaderChangeFolderTypeHelp": "Pour modifier le type de dossier, merci de supprimer et reconstruire la collection avec le nouveau type.",
+ "HeaderAlert": "Alerte",
+ "MessagePleaseRestart": "Merci de red\u00e9marrer pour achever la mise \u00e0 jour.",
"ButtonRestart": "Red\u00e9marrer",
- "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.",
- "ButtonHide": "Hide",
- "MessageSettingsSaved": "Settings saved.",
- "ButtonSignOut": "Sign Out",
- "ButtonMyProfile": "My Profile",
- "ButtonMyPreferences": "My Preferences",
- "MessageBrowserDoesNotSupportWebSockets": "This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.",
- "LabelInstallingPackage": "Installing {0}",
- "LabelPackageInstallCompleted": "{0} installation completed.",
- "LabelPackageInstallFailed": "{0} installation failed.",
- "LabelPackageInstallCancelled": "{0} installation cancelled.",
+ "MessagePleaseRefreshPage": "Merci de rafra\u00eechir cette page pour recevoir les nouvelles mises \u00e0 jour du serveur.",
+ "ButtonHide": "Cacher",
+ "MessageSettingsSaved": "Param\u00e8tres sauvegard\u00e9s.",
+ "ButtonSignOut": "Se d\u00e9connecter",
+ "ButtonMyProfile": "Mon profil",
+ "ButtonMyPreferences": "Mes pr\u00e9f\u00e9rences",
+ "MessageBrowserDoesNotSupportWebSockets": "Ce navigateur ne supporte pas les sockets Web. Pour un meilleur confort d'utilisation, essayez avec un navigateur moderne tels que Chrome, Firefox, IE10+, Safari (iOS) ou Opera.",
+ "LabelInstallingPackage": "Installation de {0}",
+ "LabelPackageInstallCompleted": "L'installation de {0} est termin\u00e9e.",
+ "LabelPackageInstallFailed": "L'installation de {0} a \u00e9chou\u00e9.",
+ "LabelPackageInstallCancelled": "L'installation de {0} a \u00e9t\u00e9 annul\u00e9e.",
"TabServer": "Serveur",
- "TabUsers": "Users",
- "TabLibrary": "Library",
+ "TabUsers": "Utilisateurs",
+ "TabLibrary": "Biblioth\u00e8que",
"TabMetadata": "M\u00e9tadonn\u00e9es",
"TabDLNA": "DLNA",
- "TabLiveTV": "Live TV",
- "TabAutoOrganize": "Auto-Organize",
+ "TabLiveTV": "TV en direct",
+ "TabAutoOrganize": "Auto-Organiser",
"TabPlugins": "Plugins",
"TabAdvanced": "Avanc\u00e9",
- "TabHelp": "Help",
- "TabScheduledTasks": "Scheduled Tasks",
- "ButtonFullscreen": "Fullscreen",
- "ButtonAudioTracks": "Audio Tracks",
+ "TabHelp": "Aide",
+ "TabScheduledTasks": "T\u00e2ches planifi\u00e9es",
+ "ButtonFullscreen": "Plein \u00e9cran",
+ "ButtonAudioTracks": "Pistes audio",
"ButtonSubtitles": "Sous-titres",
"ButtonScenes": "Sc\u00e8nes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Qualit\u00e9",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "S\u00e9lectionner le lecteur :",
+ "ButtonSelect": "S\u00e9lectionner",
+ "ButtonNew": "Nouveau",
+ "MessageInternetExplorerWebm": "Pour de meilleurs r\u00e9sultats avec Internet Explorer, merci d'installer le plugin WebM pour IE.",
+ "HeaderVideoError": "Erreur vid\u00e9o"
} \ 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 6310881f2..d5202486f 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "\u05e0\u05d2\u05df",
"ButtonEdit": "\u05e2\u05e8\u05d5\u05da",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "\u05d1\u05d7\u05e8",
+ "ButtonNew": "\u05d7\u05d3\u05e9",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 96e71a971..4cf04f2a7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
@@ -58,14 +58,14 @@
"ButtonMute": "Muto",
"ButtonUnmute": "Togli muto",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Prossimo",
+ "ButtonNextTrack": "traccia Prossima",
"ButtonPause": "Pausa",
"ButtonPlay": "Riproduci",
"ButtonEdit": "Modifica",
"ButtonQueue": "In coda",
- "ButtonPlayTrailer": "Visualizza trailer",
+ "ButtonPlayTrailer": "Visualizza Trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Precedente",
+ "ButtonPreviousTrack": "Precedente traccia",
"LabelEnabled": "Abilitato",
"LabelDisabled": "Disabilitato",
"ButtonMoreInformation": "Maggiori informazioni",
@@ -121,7 +121,7 @@
"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",
"HeaderMyViews": "Mie viste",
- "HeaderLibraryFolders": "Vista",
+ "HeaderLibraryFolders": "Cartelle dei mediata",
"HeaderLatestMedia": "Ultimi Media",
"ButtonMore": "Pi\u00f9 info...",
"HeaderFavoriteMovies": "Film preferiti",
@@ -215,103 +215,109 @@
"HeaderAlbum": "Album",
"HeaderAlbumArtist": "Artista Album",
"HeaderArtist": "Artista",
- "LabelAddedOnDate": "Added {0}",
- "ButtonStart": "Start",
+ "LabelAddedOnDate": "Aggiunto {0}",
+ "ButtonStart": "Avvio",
"HeaderChannels": "Canali",
"HeaderMediaFolders": "Cartelle dei media",
- "HeaderBlockItemsWithNoRating": "Block items with no rating information:",
- "OptionBlockOthers": "Others",
- "OptionBlockTvShows": "TV Shows",
- "OptionBlockTrailers": "Trailers",
- "OptionBlockMusic": "Music",
- "OptionBlockMovies": "Movies",
- "OptionBlockBooks": "Books",
- "OptionBlockGames": "Games",
- "OptionBlockLiveTvPrograms": "Live TV Programs",
- "OptionBlockLiveTvChannels": "Live TV Channels",
- "OptionBlockChannelContent": "Internet Channel Content",
- "ButtonRevoke": "Revoke",
- "MessageConfirmRevokeApiKey": "Are you sure you wish to revoke this api key? The application's connection to Media Browser will be abruptly terminated.",
- "HeaderConfirmRevokeApiKey": "Revoke Api Key",
- "ValueContainer": "Container: {0}",
+ "HeaderBlockItemsWithNoRating": "Blocca gli elementi senza informazioni di valutazione",
+ "OptionBlockOthers": "Altri",
+ "OptionBlockTvShows": "Serie TV",
+ "OptionBlockTrailers": "Trailer",
+ "OptionBlockMusic": "Musica",
+ "OptionBlockMovies": "Film",
+ "OptionBlockBooks": "Libri",
+ "OptionBlockGames": "Giochi",
+ "OptionBlockLiveTvPrograms": "Programmi TV in onda",
+ "OptionBlockLiveTvChannels": "Canali TV in onda",
+ "OptionBlockChannelContent": "Contenuto di Canali Internet",
+ "ButtonRevoke": "Revocare",
+ "MessageConfirmRevokeApiKey": "Sei sicuro che desideri revocare le chiavi api? La connessione dell'applicazione con Media Browser sar\u00e0 improvvisamente terminata.",
+ "HeaderConfirmRevokeApiKey": "Revocare Chiave Api",
+ "ValueContainer": "Contenitore: {0}",
"ValueAudioCodec": "Audio Codec: {0}",
"ValueVideoCodec": "Video Codec: {0}",
"ValueCodec": "Codec: {0}",
- "ValueConditions": "Conditions: {0}",
- "LabelAll": "All",
- "HeaderDeleteImage": "Delete Image",
- "MessageFileNotFound": "File not found.",
- "MessageFileReadError": "An error occurred reading this file.",
- "ButtonNextPage": "Next Page",
- "ButtonPreviousPage": "Previous Page",
- "ButtonMoveLeft": "Move left",
- "ButtonMoveRight": "Move right",
- "ButtonBrowseOnlineImages": "Browse online images",
- "HeaderDeleteItem": "Delete Item",
- "ConfirmDeleteItem": "Are you sure you wish to delete this item from your library?",
- "MessagePleaseEnterNameOrId": "Please enter a name or an external Id.",
- "MessageValueNotCorrect": "The value entered is not correct. Please try again.",
- "MessageItemSaved": "Item saved.",
+ "ValueConditions": "Condizioni: {0}",
+ "LabelAll": "Tutti",
+ "HeaderDeleteImage": "Cancella Immagine",
+ "MessageFileNotFound": "File non trovato.",
+ "MessageFileReadError": "Errore leggendo questo file",
+ "ButtonNextPage": "Prossima pagina",
+ "ButtonPreviousPage": "Pagina precedente",
+ "ButtonMoveLeft": "Muovi a sinistra",
+ "ButtonMoveRight": "Muovi a destra",
+ "ButtonBrowseOnlineImages": "Sfoglia le immagini Online",
+ "HeaderDeleteItem": "Elimina elemento",
+ "ConfirmDeleteItem": "Sei sicuro di voler eliminare questo elemento dalla tua libreria?",
+ "MessagePleaseEnterNameOrId": "Inserisci il nome o id esterno.",
+ "MessageValueNotCorrect": "Il valore inserito non \u00e8 corretto.Riprova di nuovo.",
+ "MessageItemSaved": "Elemento salvato.",
"OptionEnded": "Finito",
"OptionContinuing": "In corso",
"OptionOff": "Off",
"OptionOn": "On",
- "HeaderFields": "Fields",
- "HeaderFieldsHelp": "Slide a field to 'off' to lock it and prevent it's data from being changed.",
- "HeaderLiveTV": "Live TV",
- "MissingLocalTrailer": "Missing local trailer.",
- "MissingPrimaryImage": "Missing primary image.",
- "MissingBackdropImage": "Missing backdrop image.",
- "MissingLogoImage": "Missing logo image.",
- "MissingEpisode": "Missing episode.",
+ "HeaderFields": "Campi",
+ "HeaderFieldsHelp": "Far scorrere un campo a 'off' per bloccarlo e impedire che sia i dati vengano modificati.",
+ "HeaderLiveTV": "Tv in diretta",
+ "MissingLocalTrailer": "Trailer locali mancanti",
+ "MissingPrimaryImage": "Immagini principali locali mancanti",
+ "MissingBackdropImage": "Sfondi mancanti",
+ "MissingLogoImage": "Loghi mancanti",
+ "MissingEpisode": "Episodi mancanti",
"OptionScreenshots": "Screenshots",
- "OptionBackdrops": "Backdrops",
- "OptionImages": "Images",
- "OptionKeywords": "Keywords",
+ "OptionBackdrops": "Sfondi",
+ "OptionImages": "Immagini",
+ "OptionKeywords": "Parole",
"OptionTags": "Tags",
"OptionStudios": "Studios",
- "OptionName": "Name",
- "OptionOverview": "Overview",
- "OptionGenres": "Genres",
+ "OptionName": "Nome",
+ "OptionOverview": "Panoramica",
+ "OptionGenres": "Generi",
"OptionParentalRating": "Voto Genitori",
- "OptionPeople": "People",
+ "OptionPeople": "Persone",
"OptionRuntime": "Durata",
- "OptionProductionLocations": "Production Locations",
- "OptionBirthLocation": "Birth Location",
+ "OptionProductionLocations": "Sedi di produzione",
+ "OptionBirthLocation": "Nascita Posizione",
"LabelAllChannels": "Tutti i canali",
"LabelLiveProgram": "LIVE",
- "LabelNewProgram": "NEW",
+ "LabelNewProgram": "Nuovo",
"LabelPremiereProgram": "PREMIERE",
- "HeaderChangeFolderType": "Change Folder Type",
- "HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
- "HeaderAlert": "Alert",
- "MessagePleaseRestart": "Please restart to finish updating.",
+ "HeaderChangeFolderType": "Cambia il tipo di cartella",
+ "HeaderChangeFolderTypeHelp": "Per cambiare il tipo di cartella, rimuovere e ricostruire la collezione con il nuovo tipo.",
+ "HeaderAlert": "Avviso",
+ "MessagePleaseRestart": "Si prega di riavviare per completare l'aggiornamento.",
"ButtonRestart": "Riavvia",
- "MessagePleaseRefreshPage": "Please refresh this page to receive new updates from the server.",
- "ButtonHide": "Hide",
- "MessageSettingsSaved": "Settings saved.",
- "ButtonSignOut": "Sign Out",
- "ButtonMyProfile": "My Profile",
- "ButtonMyPreferences": "My Preferences",
- "MessageBrowserDoesNotSupportWebSockets": "This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.",
- "LabelInstallingPackage": "Installing {0}",
- "LabelPackageInstallCompleted": "{0} installation completed.",
- "LabelPackageInstallFailed": "{0} installation failed.",
- "LabelPackageInstallCancelled": "{0} installation cancelled.",
+ "MessagePleaseRefreshPage": "Si prega di aggiornare questa pagina per ricevere i nuovi aggiornamenti dal server.",
+ "ButtonHide": "Nascondi",
+ "MessageSettingsSaved": "Settaggi salvati.",
+ "ButtonSignOut": "Esci",
+ "ButtonMyProfile": "Mio Profilo",
+ "ButtonMyPreferences": "Mie preferenze",
+ "MessageBrowserDoesNotSupportWebSockets": "Questo browser non supporta i socket web. Per una migliore esperienza, provare un browser pi\u00f9 recente come Chrome, Firefox, IE10 +, Safari (iOS) o Opera.",
+ "LabelInstallingPackage": "Installazione di {0}",
+ "LabelPackageInstallCompleted": "{0} completamento dell'installazione.",
+ "LabelPackageInstallFailed": "{0} installazione non \u00e8 riuscita.",
+ "LabelPackageInstallCancelled": "{0} installazione annullata.",
"TabServer": "Server",
- "TabUsers": "Users",
- "TabLibrary": "Library",
+ "TabUsers": "Utenti",
+ "TabLibrary": "Librerie",
"TabMetadata": "Metadata",
"TabDLNA": "DLNA",
- "TabLiveTV": "Live TV",
- "TabAutoOrganize": "Auto-Organize",
+ "TabLiveTV": "Tv indiretta",
+ "TabAutoOrganize": "Organizza Automaticamente",
"TabPlugins": "Plugins",
"TabAdvanced": "Avanzato",
- "TabHelp": "Help",
- "TabScheduledTasks": "Scheduled Tasks",
- "ButtonFullscreen": "Fullscreen",
- "ButtonAudioTracks": "Audio Tracks",
+ "TabHelp": "Aiuto",
+ "TabScheduledTasks": "Operazioni pianificate",
+ "ButtonFullscreen": "Tutto schermo",
+ "ButtonAudioTracks": "Tracce audio",
"ButtonSubtitles": "Sottotitoli",
"ButtonScenes": "Scene",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Qualit\u00e0",
+ "HeaderNotifications": "Notifiche",
+ "HeaderSelectPlayer": "Utente selezionato:",
+ "ButtonSelect": "Seleziona",
+ "ButtonNew": "Nuovo",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 187bcb59f..4c17357ff 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
@@ -296,29 +296,34 @@
"MessageSettingsSaved": "Settings saved.",
"ButtonSignOut": "Sign Out",
"ButtonMyProfile": "My Profile",
- "ButtonMyPreferences": "My Preferences",
- "MessageBrowserDoesNotSupportWebSockets": "This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.",
- "LabelInstallingPackage": "Installing {0}",
- "LabelPackageInstallCompleted": "{0} installation completed.",
- "LabelPackageInstallFailed": "{0} installation failed.",
- "LabelPackageInstallCancelled": "{0} installation cancelled.",
- "TabServer": "Server",
- "TabUsers": "Users",
- "TabLibrary": "Library",
- "TabMetadata": "Metadata",
- "TabDLNA": "DLNA",
- "TabLiveTV": "Live TV",
- "TabAutoOrganize": "Auto-Organize",
- "TabPlugins": "Plugins",
- "TabAdvanced": "Advanced",
- "TabHelp": "Help",
- "TabScheduledTasks": "Scheduled Tasks",
- "ButtonFullscreen": "Fullscreen",
- "ButtonMute": "Mute",
- "ButtonUnmute": "Unmute",
- "ButtonAudioTracks": "Audio Tracks",
- "ButtonSubtitles": "Subtitles",
- "ButtonScenes": "Scenes",
- "ButtonQuality": "Quality",
- "HeaderNotifications": "Notifications"
+ "ButtonMyPreferences": "My Preferences",
+ "MessageBrowserDoesNotSupportWebSockets": "This browser does not support web sockets. For a better experience, try a newer browser such as Chrome, Firefox, IE10+, Safari (iOS) or Opera.",
+ "LabelInstallingPackage": "Installing {0}",
+ "LabelPackageInstallCompleted": "{0} installation completed.",
+ "LabelPackageInstallFailed": "{0} installation failed.",
+ "LabelPackageInstallCancelled": "{0} installation cancelled.",
+ "TabServer": "Server",
+ "TabUsers": "Users",
+ "TabLibrary": "Library",
+ "TabMetadata": "Metadata",
+ "TabDLNA": "DLNA",
+ "TabLiveTV": "Live TV",
+ "TabAutoOrganize": "Auto-Organize",
+ "TabPlugins": "Plugins",
+ "TabAdvanced": "Advanced",
+ "TabHelp": "Help",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "ButtonFullscreen": "Fullscreen",
+ "ButtonMute": "Mute",
+ "ButtonUnmute": "Unmute",
+ "ButtonAudioTracks": "Audio Tracks",
+ "ButtonSubtitles": "Subtitles",
+ "ButtonScenes": "Scenes",
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
}
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
index a15a12878..083f02665 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
@@ -306,12 +306,18 @@
"TabLiveTV": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0414",
"TabAutoOrganize": "\u0410\u0432\u0442\u043e\u04b1\u0439\u044b\u043c\u0434\u0430\u0441\u0442\u044b\u0440\u0443",
"TabPlugins": "\u041f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440",
- "TabAdvanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d\u0434\u0435\u0440",
+ "TabAdvanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
"TabHelp": "\u0410\u043d\u044b\u049b\u0442\u0430\u043c\u0430",
"TabScheduledTasks": "\u0416\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0443\u0448\u044b",
"ButtonFullscreen": "\u0422\u043e\u043b\u044b\u049b \u044d\u043a\u0440\u0430\u043d",
"ButtonAudioTracks": "\u0414\u044b\u0431\u044b\u0441 \u0436\u043e\u043b\u0448\u044b\u0493\u044b",
"ButtonSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440",
"ButtonScenes": "\u0421\u0430\u0445\u043d\u0430\u043b\u0430\u0440",
- "ButtonQuality": "\u0421\u0430\u043f\u0430"
+ "ButtonQuality": "\u0421\u0430\u043f\u0430",
+ "HeaderNotifications": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443\u043b\u0430\u0440",
+ "HeaderSelectPlayer": "\u041e\u0439\u043d\u0430\u0442\u049b\u044b\u0448\u0442\u044b \u0442\u0430\u04a3\u0434\u0430\u0443:",
+ "ButtonSelect": "\u0411\u04e9\u043b\u0435\u043a\u0442\u0435\u0443",
+ "ButtonNew": "\u0416\u0430\u0441\u0430\u0443",
+ "MessageInternetExplorerWebm": "Internet Explorer \u0430\u0440\u049b\u044b\u043b\u044b \u0435\u04a3 \u0436\u0430\u049b\u0441\u044b \u043d\u04d9\u0442\u0438\u0436\u0435\u043b\u0435\u0440 \u04af\u0448\u0456\u043d IE \u0448\u043e\u043b\u0493\u044b\u0448\u044b\u043d\u0430 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d WebM \u043f\u043b\u0430\u0433\u0438\u043d\u0456\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
+ "HeaderVideoError": "\u0411\u0435\u0439\u043d\u0435 \u049b\u0430\u0442\u0435\u0441\u0456"
} \ 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 30a6b8e26..9c7d90092 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 6f726759d..b16e5e101 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 3f0d01084..191a89000 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
@@ -20,11 +20,11 @@
"OptionRelease": "Offici\u00eble Release",
"OptionBeta": "Beta",
"OptionDev": "Dev (Instabiel)",
- "UninstallPluginHeader": "Plug-in de\u00efnstalleren",
+ "UninstallPluginHeader": "Invoegtoepassing de\u00efnstalleren",
"UninstallPluginConfirmation": "Weet u zeker dat u {0} wilt de\u00efnstalleren?",
- "NoPluginConfigurationMessage": "Deze plug-in heeft niets in te stellen",
- "NoPluginsInstalledMessage": "U heeft geen plug-ins ge\u00efnstalleerd",
- "BrowsePluginCatalogMessage": "Bekijk de Plug-in catalogus voor beschikbare plug-ins.",
+ "NoPluginConfigurationMessage": "Deze Invoegtoepassing heeft niets in te stellen",
+ "NoPluginsInstalledMessage": "U heeft geen Invoegtoepassingen ge\u00efnstalleerd",
+ "BrowsePluginCatalogMessage": "Bekijk de Invoegtoepassings catalogus voor beschikbare Invoegtoepassingen.",
"MessageKeyEmailedTo": "Sleutel gemaild naar {0}.",
"MessageKeysLinked": "Sleutels gekoppeld.",
"HeaderConfirmation": "Bevestiging",
@@ -45,7 +45,7 @@
"HeaderDeleteTaskTrigger": "Verwijderen Taak Trigger",
"HeaderTaskTriggers": "Taak Triggers",
"MessageDeleteTaskTrigger": "Weet u zeker dat u deze taak trigger wilt verwijderen?",
- "MessageNoPluginsInstalled": "U heeft geen plug-ins ge\u00efnstalleerd.",
+ "MessageNoPluginsInstalled": "U heeft geen Invoegtoepassingen ge\u00efnstalleerd.",
"LabelVersionInstalled": "{0} ge\u00efnstalleerd",
"LabelNumberReviews": "{0} Recensies",
"LabelFree": "Gratis",
@@ -305,7 +305,7 @@
"TabDLNA": "DLNA",
"TabLiveTV": "Live TV",
"TabAutoOrganize": "Automatisch-Organiseren",
- "TabPlugins": "Plugins",
+ "TabPlugins": "Invoegtoepassingen",
"TabAdvanced": "Geavanceerd",
"TabHelp": "Hulp",
"TabScheduledTasks": "Geplande taken",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Ondertitels",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Kwaliteit"
+ "ButtonQuality": "Kwaliteit",
+ "HeaderNotifications": "Meldingen",
+ "HeaderSelectPlayer": "Selecteer Speler:",
+ "ButtonSelect": "Selecteer",
+ "ButtonNew": "Nieuw",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Fout"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
index b97935dde..44ac4c93f 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Select",
+ "ButtonNew": "New",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 367e971d8..51559053d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Faixas de \u00c1udio",
"ButtonSubtitles": "Legendas",
"ButtonScenes": "Cenas",
- "ButtonQuality": "Qualidade"
+ "ButtonQuality": "Qualidade",
+ "HeaderNotifications": "Avisos",
+ "HeaderSelectPlayer": "Selecione onde executar:",
+ "ButtonSelect": "Selecionar",
+ "ButtonNew": "Nova",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 c7f7c0f69..473d75cb5 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Legendas",
"ButtonScenes": "Cenas",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "Selecionar",
+ "ButtonNew": "Novo",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 a7d6690f0..2fa7f2ea7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
@@ -1,5 +1,5 @@
{
- "SettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u044b\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.",
+ "SettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \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",
"Delete": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c",
@@ -68,7 +68,7 @@
"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": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
+ "ButtonMoreInformation": "\u0415\u0449\u0451 \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
"LabelNoUnreadNotifications": "\u041d\u0435\u0442 \u043d\u0435\u043f\u0440\u043e\u0447\u0442\u0451\u043d\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.",
"ButtonViewNotifications": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
"ButtonMarkTheseRead": "\u041e\u0442\u043c\u0435\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u043e\u0447\u0442\u0451\u043d\u043d\u044b\u0435",
@@ -207,7 +207,7 @@
"MessageErrorPlayingVideo": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u0432\u0438\u0434\u0435\u043e.",
"MessageEnsureOpenTuner": "\u0423\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u043e\u0442\u043a\u0440\u044b\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0442\u044e\u043d\u0435\u0440.",
"ButtonHome": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f",
- "ButtonDashboard": "\u041f\u0430\u043d\u0435\u043b\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430",
+ "ButtonDashboard": "\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c",
"ButtonReports": "\u041e\u0442\u0447\u0451\u0442\u044b",
"ButtonMetadataManager": "\u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
"HeaderTime": "\u0412\u0440\u0435\u043c\u044f",
@@ -289,7 +289,7 @@
"ButtonRestart": "\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c",
"MessagePleaseRefreshPage": "\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
"ButtonHide": "\u0421\u043a\u0440\u044b\u0442\u044c",
- "MessageSettingsSaved": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0431\u044b\u043b\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.",
+ "MessageSettingsSaved": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u044b\u043b\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b.",
"ButtonSignOut": "\u0412\u044b\u0439\u0442\u0438",
"ButtonMyProfile": "\u041c\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c",
"ButtonMyPreferences": "\u041c\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438",
@@ -302,16 +302,22 @@
"TabUsers": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438",
"TabLibrary": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
"TabMetadata": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435",
- "TabDLNA": "DLNA-\u0440\u0435\u0436\u0438\u043c",
+ "TabDLNA": "DLNA \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f",
"TabLiveTV": "\u0422\u0412 \u044d\u0444\u0438\u0440",
"TabAutoOrganize": "\u0410\u0432\u0442\u043e\u0440\u0435\u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f",
"TabPlugins": "\u041f\u043b\u0430\u0433\u0438\u043d\u044b",
- "TabAdvanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435",
+ "TabAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e",
"TabHelp": "\u0421\u043f\u0440\u0430\u0432\u043a\u0430",
"TabScheduledTasks": "\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a",
"ButtonFullscreen": "\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",
"ButtonAudioTracks": "\u0410\u0443\u0434\u0438\u043e \u0434\u043e\u0440\u043e\u0436\u043a\u0438",
"ButtonSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
"ButtonScenes": "\u0421\u0446\u0435\u043d\u044b",
- "ButtonQuality": "\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e"
+ "ButtonQuality": "\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e",
+ "HeaderNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
+ "HeaderSelectPlayer": "\u0412\u044b\u0431\u043e\u0440 \u043f\u043b\u0435\u0439\u0435\u0440\u0430:",
+ "ButtonSelect": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c",
+ "ButtonNew": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c",
+ "MessageInternetExplorerWebm": "\u0414\u043b\u044f \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Internet Explorer, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043b\u0430\u0433\u0438\u043d WebM \u0434\u043b\u044f IE.",
+ "HeaderVideoError": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0438\u0434\u0435\u043e"
} \ 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 a0ee4fdaf..a8ae113be 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Undertexter",
"ButtonScenes": "Scener",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "V\u00e4lj",
+ "ButtonNew": "Nytillkommet",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 b9b21645b..3440a8ab0 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "Play",
"ButtonEdit": "Edit",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "L\u1ef1a ch\u1ecdn",
+ "ButtonNew": "M\u1edbi",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 5408f0b91..763337f43 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
@@ -58,14 +58,14 @@
"ButtonMute": "Mute",
"ButtonUnmute": "Unmute",
"ButtonStop": "Stop",
- "ButtonNextTrack": "Next track",
+ "ButtonNextTrack": "Next Track",
"ButtonPause": "Pause",
"ButtonPlay": "\u64ad\u653e",
"ButtonEdit": "\u7de8\u8f2f",
"ButtonQueue": "Queue",
"ButtonPlayTrailer": "Play trailer",
"ButtonPlaylist": "Playlist",
- "ButtonPreviousTrack": "Previous track",
+ "ButtonPreviousTrack": "Previous Track",
"LabelEnabled": "Enabled",
"LabelDisabled": "Disabled",
"ButtonMoreInformation": "More Information",
@@ -313,5 +313,11 @@
"ButtonAudioTracks": "Audio Tracks",
"ButtonSubtitles": "Subtitles",
"ButtonScenes": "Scenes",
- "ButtonQuality": "Quality"
+ "ButtonQuality": "Quality",
+ "HeaderNotifications": "Notifications",
+ "HeaderSelectPlayer": "Select Player:",
+ "ButtonSelect": "\u9078\u64c7",
+ "ButtonNew": "\u5275\u5efa",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "HeaderVideoError": "Video Error"
} \ 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 59438e2b5..81922f713 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ar.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 1de1534e7..a56ccf4de 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 507045cbb..729768b78 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
@@ -95,7 +95,7 @@
"TabSuggested": "Doporu\u010den\u00e9",
"TabLatest": "Posledn\u00ed",
"TabUpcoming": "Nadch\u00e1zej\u00edc\u00ed",
- "TabShows": "Shows",
+ "TabShows": "Seri\u00e1ly",
"TabEpisodes": "Epizody",
"TabGenres": "\u017d\u00e1nry",
"TabPeople": "Lid\u00e9",
@@ -199,6 +199,7 @@
"OptionFriday": "P\u00e1tek",
"OptionSaturday": "Sobota",
"HeaderManagement": "Management:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Chyb\u011bj\u00edc\u00ed IMDb Id",
"OptionMissingTvdbId": "Chyb\u011bj\u00edc\u00ed TheTVDB Id",
"OptionMissingOverview": "Chyb\u011bj\u00edc\u00ed p\u0159ehled",
@@ -295,7 +296,7 @@
"PasswordLocalhostMessage": "Heslo nen\u00ed nutn\u00e9, pokud se p\u0159ihla\u0161ujete z m\u00edstn\u00edho PC-",
"TabGuide": "Pr\u016fvodce",
"TabChannels": "Kan\u00e1ly",
- "TabCollections": "Collections",
+ "TabCollections": "Kolekce",
"HeaderChannels": "Kan\u00e1ly",
"TabRecordings": "Nahran\u00e9",
"TabScheduled": "Napl\u00e1nov\u00e1no",
@@ -479,7 +480,7 @@
"HeaderProgram": "Program",
"HeaderClients": "Klienti",
"LabelCompleted": "Hotovo",
- "LabelFailed": "Chyba",
+ "LabelFailed": "Failed",
"LabelSkipped": "P\u0159esko\u010deno",
"HeaderEpisodeOrganization": "Organizace epizod",
"LabelSeries": "Series:",
@@ -629,8 +630,8 @@
"ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Sc\u00e9ny",
"ButtonSubtitles": "Titulky",
- "ButtonAudioTracks": "Audio stopy",
- "ButtonPreviousTrack": "P\u0159edchod\u00ed stopa",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Previous track",
"ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
@@ -642,7 +643,7 @@
"ButtonMute": "Mute",
"HeaderLatestMedia": "Latest Media",
"OptionSpecialFeatures": "Special Features",
- "HeaderCollections": "Collections",
+ "HeaderCollections": "Kolekce",
"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",
@@ -779,8 +780,8 @@
"HeaderLatestChannelItems": "Latest Channel Items",
"OptionNone": "None",
"HeaderLiveTv": "Live TV",
- "HeaderReports": "Reports",
- "HeaderMetadataManager": "Metadata Manager",
+ "HeaderReports": "Hl\u00e1\u0161en\u00ed",
+ "HeaderMetadataManager": "Spr\u00e1vce metadat",
"HeaderPreferences": "Preferences",
"MessageLoadingChannels": "Loading channel content...",
"ButtonMarkRead": "Ozna\u010dit jako p\u0159e\u010dten\u00e9",
@@ -821,7 +822,7 @@
"OptionLatestTvRecordings": "Latest recordings",
"LabelProtocolInfo": "Protocol info:",
"LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.",
- "TabXbmcMetadata": "Xbmc",
+ "TabXbmcMetadata": "XBMC",
"HeaderXbmcMetadataHelp": "Media Browser includes native support for Xbmc Nfo metadata and images. To enable or disable Xbmc metadata, use the Advanced tab to configure options for your media types.",
"LabelXbmcMetadataUser": "Add user watch data to nfo's for:",
"LabelXbmcMetadataUserHelp": "Enable this to keep watch data in sync between Media Browser and Xbmc.",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 55c296948..c2fafba45 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/da.json
@@ -199,6 +199,7 @@
"OptionFriday": "Fredag",
"OptionSaturday": "L\u00f8rdag",
"HeaderManagement": "Ledelse:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Manglende IMDB Id",
"OptionMissingTvdbId": "Manglende TheTVDB Id",
"OptionMissingOverview": "Manglende Overblik",
@@ -626,10 +627,10 @@
"TabNowPlaying": "Spiler nu",
"TabNavigation": "Navigation",
"TabControls": "Controls",
- "ButtonFullscreen": "Skift til fuldsk\u00e6rm",
+ "ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Scener",
"ButtonSubtitles": "Undertekster",
- "ButtonAudioTracks": "Lyd filer",
+ "ButtonAudioTracks": "Audio tracks",
"ButtonPreviousTrack": "Previous track",
"ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 cfb0924d2..5ffff96dd 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/de.json
@@ -199,6 +199,7 @@
"OptionFriday": "Freitag",
"OptionSaturday": "Samstag",
"HeaderManagement": "Verwaltung:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Fehlende IMDb Id",
"OptionMissingTvdbId": "Fehlende TheTVDB Id",
"OptionMissingOverview": "Fehlende \u00dcbersicht",
@@ -479,10 +480,10 @@
"HeaderProgram": "Programm",
"HeaderClients": "Clients",
"LabelCompleted": "Fertiggestellt",
- "LabelFailed": "Gescheitert",
+ "LabelFailed": "Failed",
"LabelSkipped": "\u00dcbersprungen",
"HeaderEpisodeOrganization": "Episodensortierung",
- "LabelSeries": "Serien:",
+ "LabelSeries": "Series:",
"LabelSeasonNumber": "Staffelnummer",
"LabelEpisodeNumber": "Episodennummer",
"LabelEndingEpisodeNumber": "Ending episode number",
@@ -626,12 +627,12 @@
"TabNowPlaying": "Aktuelle Wiedergabe",
"TabNavigation": "Navigation",
"TabControls": "Controls",
- "ButtonFullscreen": "Schalte Vollbild um",
+ "ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Szenen",
"ButtonSubtitles": "Untertitel",
- "ButtonAudioTracks": "Audiospuren",
- "ButtonPreviousTrack": "Vorheriger Track",
- "ButtonNextTrack": "N\u00e4chster Track",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Gruppiere Filme in Collections",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 b6c94c512..fe7451fed 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/el.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 48a5cc004..5044e6d95 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 16700e356..dc4ac80cb 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 45b3b5c78..9c43a9c9e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es.json
@@ -199,6 +199,7 @@
"OptionFriday": "Viernes",
"OptionSaturday": "S\u00e1bado",
"HeaderManagement": "Administraci\u00f3n",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Falta IMDb Id",
"OptionMissingTvdbId": "Falta TheTVDB Id",
"OptionMissingOverview": "Falta argumento",
@@ -479,10 +480,10 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Completado",
- "LabelFailed": "Err\u00f3neo",
+ "LabelFailed": "Error",
"LabelSkipped": "Omitido",
"HeaderEpisodeOrganization": "Organizaci\u00f3n de episodios",
- "LabelSeries": "Serie:",
+ "LabelSeries": "Series:",
"LabelSeasonNumber": "Temporada n\u00famero:",
"LabelEpisodeNumber": "Episodio n\u00famero:",
"LabelEndingEpisodeNumber": "N\u00famero episodio final:",
@@ -626,10 +627,10 @@
"TabNowPlaying": "Reproduciendo ahora",
"TabNavigation": "Navegaci\u00f3n",
"TabControls": "Controles",
- "ButtonFullscreen": "Pantalla completa",
+ "ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Escenas",
"ButtonSubtitles": "Subt\u00edtulos",
- "ButtonAudioTracks": "Pistas de audio",
+ "ButtonAudioTracks": "Audio tracks",
"ButtonPreviousTrack": "Pista anterior",
"ButtonNextTrack": "Pista siguiente",
"ButtonStop": "Detener",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 733e37706..98a36f8dd 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
@@ -199,6 +199,7 @@
"OptionFriday": "Viernes",
"OptionSaturday": "S\u00e1bado",
"HeaderManagement": "Administraci\u00f3n:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Falta Id de IMDb",
"OptionMissingTvdbId": "Falta Id de TheTVDB",
"OptionMissingOverview": "Falta Sinopsis",
@@ -626,12 +627,12 @@
"TabNowPlaying": "Reproduci\u00e9ndo Ahora",
"TabNavigation": "Navegaci\u00f3n",
"TabControls": "Controles",
- "ButtonFullscreen": "Alternar pantalla completa",
+ "ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Escenas",
"ButtonSubtitles": "Subt\u00edtulos",
- "ButtonAudioTracks": "Pistas de audio",
- "ButtonPreviousTrack": "Pista Anterior",
- "ButtonNextTrack": "Pista Siguiente",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Pista anterior",
+ "ButtonNextTrack": "Pista siguiente",
"ButtonStop": "Detener",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Agrupar pel\u00edculas en colecciones",
@@ -868,11 +869,24 @@
"LabelAppName": "Nombre del App",
"LabelAppNameExample": "Ejemplo: Sickbeard, NzbDrone",
"HeaderNewApiKeyHelp": "Otorgar a la aplicaci\u00f3n persmiso para comunicarse con Media Browser.",
- "HeaderHttpHeaders": "Http Headers",
- "HeaderIdentificationHeader": "Identification Header",
- "LabelValue": "Value:",
- "LabelMatchType": "Match type:",
- "OptionEquals": "Equals",
+ "HeaderHttpHeaders": "Encabezados Http",
+ "HeaderIdentificationHeader": "Encabezado de Identificaci\u00f3n",
+ "LabelValue": "Valor:",
+ "LabelMatchType": "Tipo de Coincidencia:",
+ "OptionEquals": "Igual a",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Subcadena",
+ "TabView": "Vista",
+ "TabSort": "Ordenaci\u00f3n",
+ "TabFilter": "Filtro",
+ "ButtonView": "Vista",
+ "LabelPageSize": "Tama\u00f1o de Pantalla:",
+ "LabelView": "Vista:",
+ "TabUsers": "Usuarios",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Tareas Programadas",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 ccfccea6a..f5f3d9387 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
@@ -16,7 +16,7 @@
"LabelYoureDone": "Vous avez Termin\u00e9!",
"WelcomeToMediaBrowser": "Bienvenue dans Media Browser!",
"TitleMediaBrowser": "Media Browser",
- "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration. Pour commencer, SVP s\u00e9lectionnez votre langue pr\u00e9f\u00e9r\u00e9e.",
+ "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration. Pour commencer, merci de s\u00e9lectionner votre langue pr\u00e9f\u00e9r\u00e9e.",
"TellUsAboutYourself": "Parlez-nous de vous",
"LabelYourFirstName": "Votre pr\u00e9nom:",
"MoreUsersCanBeAddedLater": "D'autres utilisateurs pourront \u00eatre ajout\u00e9s ult\u00e9rieurement \u00e0 partir du tableau de bord.",
@@ -151,7 +151,7 @@
"OptionVideoBitrate": "D\u00e9bit vid\u00e9o",
"OptionResumable": "Reprenable",
"ScheduledTasksHelp": "S\u00e9lectionnez une t\u00e2che pour ajuster sa programmation.",
- "ScheduledTasksTitle": "T\u00e2ches programm\u00e9es",
+ "ScheduledTasksTitle": "T\u00e2ches planifi\u00e9es",
"TabMyPlugins": "Mes Plugins",
"TabCatalog": "Catalogue",
"PluginsTitle": "Plugins",
@@ -199,6 +199,7 @@
"OptionFriday": "Vendredi",
"OptionSaturday": "Samedi",
"HeaderManagement": "Gestion:",
+ "LabelManagement": "Gestion :",
"OptionMissingImdbId": "ID IMDb manquant:",
"OptionMissingTvdbId": "ID TVDB manquant:",
"OptionMissingOverview": "R\u00e9sum\u00e9 manquant",
@@ -238,7 +239,7 @@
"PismoMessage": "En utilisation de \"Pismo File Mount\" par une license fournie.",
"TangibleSoftwareMessage": "Utilisation de convertisseurs Tangible Solutions Java\/C# par licence fournie.",
"HeaderCredits": "Cr\u00e9dits",
- "PleaseSupportOtherProduces": "SVP, soutenez les autres produits gratuits que nous utilisons:",
+ "PleaseSupportOtherProduces": "Merci de soutenir les autres produits gratuits que nous utilisons :",
"VersionNumber": "Version {0}",
"TabPaths": "Chemins d'acc\u00e8s",
"TabServer": "Serveur",
@@ -288,7 +289,7 @@
"OptionImageSavingStandard": "Standard - MB2",
"ButtonSignIn": "Se connecter",
"TitleSignIn": "Se connecter",
- "HeaderPleaseSignIn": "SVP se connecter",
+ "HeaderPleaseSignIn": "Merci de vous identifier",
"LabelUser": "Utilisateur:",
"LabelPassword": "Mot de passe:",
"ButtonManualLogin": "Connexion manuelle:",
@@ -298,7 +299,7 @@
"TabCollections": "Collections",
"HeaderChannels": "Cha\u00eenes",
"TabRecordings": "Enregistrements",
- "TabScheduled": "Programm\u00e9s",
+ "TabScheduled": "Planifi\u00e9s",
"TabSeries": "S\u00e9ries",
"TabFavorites": "Favoris",
"TabMyLibrary": "Ma Biblioth\u00e8que",
@@ -335,7 +336,7 @@
"LabelActiveServiceHelp": "Plusieurs Plugins de TV peuvent \u00eatre install\u00e9s mais seulement un \u00e0 la fois peut \u00eatre actif.",
"OptionAutomatic": "Auto",
"LiveTvPluginRequired": "Un fournisseur de service de TV en direct est requis pour continuer.",
- "LiveTvPluginRequiredHelp": "SVP installer un de nos Plugins disponibles, comme Next Pvr ou ServerWmc.",
+ "LiveTvPluginRequiredHelp": "Merci d'installer un de nos plugins disponibles, comme Next Pvr ou ServerWmc.",
"LabelCustomizeOptionsPerMediaType": "Personnaliser pour le type de m\u00e9dia:",
"OptionDownloadThumbImage": "Vignette",
"OptionDownloadMenuImage": "Menu",
@@ -396,7 +397,7 @@
"HeaderCastCrew": "\u00c9quipe de tournage",
"HeaderAdditionalParts": "Parties Additionelles",
"ButtonSplitVersionsApart": "S\u00e9parer les versions",
- "ButtonPlayTrailer": "Bande-annonce",
+ "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 +480,10 @@
"HeaderProgram": "Programme",
"HeaderClients": "Clients",
"LabelCompleted": "Compl\u00e9t\u00e9",
- "LabelFailed": "\u00c9chec",
+ "LabelFailed": "Failed",
"LabelSkipped": "Saut\u00e9",
"HeaderEpisodeOrganization": "Organisation d'\u00e9pisodes",
- "LabelSeries": "S\u00e9ries:",
+ "LabelSeries": "Series:",
"LabelSeasonNumber": "Num\u00e9ro de saison",
"LabelEpisodeNumber": "Num\u00e9ro d'\u00e9pisode",
"LabelEndingEpisodeNumber": "Num\u00e9ro d'\u00e9pisode se terminant",
@@ -491,13 +492,13 @@
"LabelSupportAmount": "Montant (USD)",
"HeaderSupportTheTeamHelp": "Aidez la continuation de ce projet en effectuant un don. Une portion de ce don contribuera au d\u00e9veloppement d'autres produits gratuits sur lesquels nous d\u00e9pendons.",
"ButtonEnterSupporterKey": "Entrer la cl\u00e9 de supporteur",
- "DonationNextStep": "Une fois compl\u00e9t\u00e9, SVP revenir et entrer la cl\u00e9 de supporteur re\u00e7ue par courriel.",
+ "DonationNextStep": "Une fois compl\u00e9t\u00e9, merci de revenir et saisir la cl\u00e9 de supporteur re\u00e7ue par courriel.",
"AutoOrganizeHelp": "L'organisation automatique surveille vos r\u00e9pertoires de t\u00e9l\u00e9chargement et les nouveaux fichiers puis les d\u00e9place dans vos r\u00e9pertoires de m\u00e9dias. ",
"AutoOrganizeTvHelp": "L'organisation de fichiers TV va seulement ajouter des \u00e9pisodes \u00e0 des s\u00e9ries existantes. Ce processus de cr\u00e9\u00e9ra pas de nouveaux r\u00e9pertoires de s\u00e9rie.",
"OptionEnableEpisodeOrganization": "Activer l'organisation des nouvelles \u00e9pisodes",
"LabelWatchFolder": "R\u00e9pertoire surveill\u00e9:",
"LabelWatchFolderHelp": "Le serveur va utiliser ce r\u00e9pertoire pendant la t\u00e2che \"Organiser les nouveaux fichiers de m\u00e9dias\".",
- "ButtonViewScheduledTasks": "Voir les t\u00e2ches programm\u00e9es",
+ "ButtonViewScheduledTasks": "Voir les t\u00e2ches planifi\u00e9es",
"LabelMinFileSizeForOrganize": "Grosseur de fichier minimum (MB):",
"LabelMinFileSizeForOrganizeHelp": "Les fichiers avec une grosseur inf\u00e9rieure seront ignor\u00e9s.",
"LabelSeasonFolderPattern": "Mod\u00e8le de r\u00e9pertoire de saison:",
@@ -528,12 +529,12 @@
"ButtonRestart": "Red\u00e9marrer",
"ButtonShutdown": "\u00c9teindre",
"ButtonUpdateNow": "Mettre \u00e0 jour maintenant",
- "PleaseUpdateManually": "SVP fermer le serveur et mettre \u00e0 jour manuellement.",
+ "PleaseUpdateManually": "Merci d'\u00e9teindre le serveur et de le mettre \u00e0 jour manuellement.",
"NewServerVersionAvailable": "Une nouvelle version de Media Browser Server est disponible!",
"ServerUpToDate": "Media Browser est \u00e0 jour",
"ErrorConnectingToMediaBrowserRepository": "Une erreur est survenue avec la connexion au r\u00e9f\u00e9rentiel de donn\u00e9es de Media Browser.",
"LabelComponentsUpdated": "Les composants suivants ont \u00e9t\u00e9 install\u00e9s ou mis \u00e0 jour.",
- "MessagePleaseRestartServerToFinishUpdating": "SVP red\u00e9marrer le serveur pour appliquer les mises \u00e0 jour.",
+ "MessagePleaseRestartServerToFinishUpdating": "Merci de red\u00e9marrer le serveur pour appliquer les mises \u00e0 jour.",
"LabelDownMixAudioScale": "Boost audio lors de downmix:",
"LabelDownMixAudioScaleHelp": "Boost audio lors de downmix. Mettre \u00e0 1 pour pr\u00e9server la valeur originale du volume.",
"ButtonLinkKeys": "Lier les cl\u00e9s",
@@ -585,7 +586,7 @@
"NotificationOptionVideoPlaybackStopped": "Lecture vid\u00e9o arr\u00eat\u00e9e",
"NotificationOptionAudioPlaybackStopped": "Lecture audio arr\u00eat\u00e9e",
"NotificationOptionGamePlaybackStopped": "Lecture de jeu arr\u00eat\u00e9e",
- "NotificationOptionTaskFailed": "\u00c9chec de t\u00e2che programm\u00e9e",
+ "NotificationOptionTaskFailed": "\u00c9chec de t\u00e2che planifi\u00e9e",
"NotificationOptionInstallationFailed": "\u00c9chec d'installation",
"NotificationOptionNewLibraryContent": "Nouveau contenu ajout\u00e9",
"NotificationOptionNewLibraryContentMultiple": "Nouveau contenu ajout\u00e9 (multiple)",
@@ -626,12 +627,12 @@
"TabNowPlaying": "En cours de lecture",
"TabNavigation": "Navigation",
"TabControls": "Contr\u00f4les",
- "ButtonFullscreen": "Plein \u00e9cran",
+ "ButtonFullscreen": "Basculer en plein \u00e9cran",
"ButtonScenes": "Sc\u00e8nes",
"ButtonSubtitles": "Sous-titres",
- "ButtonAudioTracks": "Piste audio",
- "ButtonPreviousTrack": "Piste pr\u00e9c\u00e9dante",
- "ButtonNextTrack": "Piste suivante",
+ "ButtonAudioTracks": "Pistes audio",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
"ButtonStop": "Arr\u00eat",
"ButtonPause": "Pause",
"LabelGroupMoviesIntoCollections": "Grouper les films en collections",
@@ -722,7 +723,7 @@
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Ceci est requis pour certains appareils dont le time seek n'est pas tr\u00e8s bon",
"HeaderSubtitleDownloadingHelp": "Lorsque Media Browser balaye vos fichiers vid\u00e9os, le serveur peut rechercher des sous-titres manquants et les t\u00e9l\u00e9charger en utilisant un fournisseur de sous-titre comme OpenSubtitles.org.",
"HeaderDownloadSubtitlesFor": "T\u00e9l\u00e9charger les sous-titres pour:",
- "MessageNoChapterProviders": "Install a chapter provider plugin such as ChapterDb to enable additional chapter options.",
+ "MessageNoChapterProviders": "Installer un plugin de fournisseur de chapitre tel que ChapterDb pour activer les options suppl\u00e9mentaires de chapitre.",
"LabelSkipIfGraphicalSubsPresent": "Sauter la vid\u00e9o si elle contient d\u00e9j\u00e0 des sous-titres graphiques",
"LabelSkipIfGraphicalSubsPresentHelp": "Garder des versions textes des sous-titres va \u00eatre plus efficace avec les appareils mobiles.",
"TabSubtitles": "Sous-titres",
@@ -730,7 +731,7 @@
"HeaderDownloadChaptersFor": "T\u00e9l\u00e9charger les noms de chapitre pour:",
"LabelOpenSubtitlesUsername": "Nom d'utilisateur de Open Subtitles:",
"LabelOpenSubtitlesPassword": "Mot de passe de Open Subtitles:",
- "HeaderChapterDownloadingHelp": "When Media Browser scans your video files it can download friendly chapter names from the internet using chapter plugins such as ChapterDb.",
+ "HeaderChapterDownloadingHelp": "Lorsque Media Browser scanne vos fichiers vid\u00e9o, il peut facilement t\u00e9l\u00e9charger les noms de chapitre depuis Internet en utilisant le plugin de chapitre tel que ChapterDb.",
"LabelPlayDefaultAudioTrack": "Utiliser la flux audio par d\u00e9faut peu importe la langue",
"LabelSubtitlePlaybackMode": "Mode de sous-titres:",
"LabelDownloadLanguages": "T\u00e9l\u00e9chargement de langues:",
@@ -770,7 +771,7 @@
"LabelHomePageSection2": "Section 2 de la page de d\u00e9marrage:",
"LabelHomePageSection3": "Section 3 de la page de d\u00e9marrage:",
"LabelHomePageSection4": "Section 4 de la page de d\u00e9marrage:",
- "OptionMyViewsButtons": "My views (buttons)",
+ "OptionMyViewsButtons": "Mes vues (bouttons)",
"OptionMyViews": "Mes vues",
"OptionMyViewsSmall": "Mes vues (petit)",
"OptionResumablemedia": "Reprendre",
@@ -793,13 +794,13 @@
"ButtonDismiss": "Annuler",
"MessageLearnHowToCustomize": "Apprenez comment personnaliser cette page selon vos propres go\u00fbts. S\u00e9lectionnez votre ic\u00f4ne d'utilisateur dans le coin en haut, \u00e0 droite de l'\u00e9cran pour visionner et mettre \u00e0 jour vos pr\u00e9f\u00e9rences. ",
"ButtonEditOtherUserPreferences": "Modifier les pr\u00e9f\u00e9rences personnelles de cet utilisateur.",
- "LabelChannelStreamQuality": "Preferred internet stream quality:",
- "LabelChannelStreamQualityHelp": "In a low bandwidth environment, limiting quality can help ensure a smooth streaming experience.",
+ "LabelChannelStreamQuality": "Qualit\u00e9 de diffusion internet pr\u00e9f\u00e9r\u00e9e :",
+ "LabelChannelStreamQualityHelp": "Avec une bande passante faible, limiter la qualit\u00e9 garantit un confort d'utilisation du streaming.",
"OptionBestAvailableStreamQuality": "Meilleur disponible",
"LabelEnableChannelContentDownloadingFor": "Activer le t\u00e9l\u00e9chargement de contenu de cha\u00eene pour:",
- "LabelEnableChannelContentDownloadingForHelp": "Some channels support downloading content prior to viewing. Enable this in low bandwidth enviornments to download channel content during off hours. Content is downloaded as part of the channel download scheduled task.",
+ "LabelEnableChannelContentDownloadingForHelp": "Certaines cha\u00eenes supportent la priorit\u00e9 de t\u00e9l\u00e9chargement de contenu lors du visionnage. Activez ceci pour les environnements \u00e0 bande passante faible afin de t\u00e9l\u00e9charger le contenu des cha\u00eenes pendant les horaires d'inactivit\u00e9. Le contenu est t\u00e9l\u00e9charg\u00e9 suivant la programmation de celui-ci dans les t\u00e2ches planifi\u00e9es.",
"LabelChannelDownloadPath": "Chemin d'acc\u00e8s de t\u00e9l\u00e9chargement de contenu de cha\u00eene:",
- "LabelChannelDownloadPathHelp": "Specify a custom download path if desired. Leave empty to download to an internal program data folder.",
+ "LabelChannelDownloadPathHelp": "Sp\u00e9cifiez un chemin de t\u00e9l\u00e9chargements personnalis\u00e9 si besoin. Laissez vide pour t\u00e9l\u00e9charger dans un r\u00e9pertoire interne du programme.",
"LabelChannelDownloadAge": "Supprimer le contenu apr\u00e8s: (jours)",
"LabelChannelDownloadAgeHelp": "Le contenu t\u00e9l\u00e9charg\u00e9 plus vieux sera supprim\u00e9. Par contre, il sera toujours disponible par flux Internet (en ligne).",
"ChannelSettingsFormHelp": "Installer des cha\u00eenes comme \"Trailers\" and \"Vimeo\" par le catalogue de Plugins.",
@@ -810,69 +811,82 @@
"ViewTypeMusic": "Musique",
"ViewTypeBoxSets": "Collections",
"ViewTypeChannels": "Cha\u00eenes",
- "ViewTypeLiveTV": "TV en directe",
+ "ViewTypeLiveTV": "TV en direct",
"HeaderOtherDisplaySettings": "Param\u00e8tres d'affichage",
"HeaderMyViews": "Mes affichages",
- "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.",
+ "LabelSelectFolderGroups": "Grouper automatiquement le contenu des r\u00e9pertoires suivants dans les vues tels que Films, Musiques et TV :",
+ "LabelSelectFolderGroupsHelp": "Les r\u00e9pertoires qui ne sont pas coch\u00e9s, seront affich\u00e9s tels quels avec leur propre disposition.",
"OptionDisplayAdultContent": "Afficher le contenu adulte",
"OptionLibraryFolders": "R\u00e9pertoires de m\u00e9dias",
"TitleRemoteControl": "Acc\u00e8s \u00e0 distance",
"OptionLatestTvRecordings": "Les plus r\u00e9cents enregistrements",
"LabelProtocolInfo": "Infos sur le protocol:",
- "LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.",
+ "LabelProtocolInfoHelp": "La valeur sera utilis\u00e9e par le p\u00e9riph\u00e9rique pour r\u00e9pondre aux requ\u00eates GetProtocolInfo.",
"TabXbmcMetadata": "Xbmc",
- "HeaderXbmcMetadataHelp": "Media Browser includes native support for Xbmc Nfo metadata and images. To enable or disable Xbmc metadata, use the Advanced tab to configure options for your media types.",
+ "HeaderXbmcMetadataHelp": "Media Browser inclut un support natif pour les m\u00e9tadonn\u00e9es Nfo Xbmc et les images. Pour activer ou d\u00e9sactiver les m\u00e9tadonn\u00e9es Xbmc, utiliser l'onglet Avanc\u00e9 pour configurer les options de vos types de m\u00e9dia.",
"LabelXbmcMetadataUser": "Add user watch data to nfo's for:",
- "LabelXbmcMetadataUserHelp": "Enable this to keep watch data in sync between Media Browser and Xbmc.",
- "LabelXbmcMetadataDateFormat": "Release date format:",
- "LabelXbmcMetadataDateFormatHelp": "All dates within nfo's will be read and written to using this format.",
- "LabelXbmcMetadataSaveImagePaths": "Save image paths within nfo files",
- "LabelXbmcMetadataSaveImagePathsHelp": "This is recommended if you have image file names that don't conform to Xbmc guidelines.",
- "LabelXbmcMetadataEnablePathSubstitution": "Enable path substitution",
- "LabelXbmcMetadataEnablePathSubstitutionHelp": "Enables path substitution of image paths using the server's path substitution settings.",
- "LabelXbmcMetadataEnablePathSubstitutionHelp2": "See path substitution.",
- "LabelGroupChannelsIntoViews": "Display the following channels directly within my views:",
- "LabelGroupChannelsIntoViewsHelp": "If enabled, these channels will be displayed directly alongside other views. If disabled, they'll be displayed within a separate Channels view.",
- "LabelDisplayCollectionsView": "Display a collections view to show movie collections",
- "LabelXbmcMetadataEnableExtraThumbs": "Copy extrafanart into extrathumbs",
- "LabelXbmcMetadataEnableExtraThumbsHelp": "When downloading images they can be saved into both extrafanart and extrathumbs for maximum Xbmc skin compatibility.",
+ "LabelXbmcMetadataUserHelp": "Activer ceci pour synchroniser en permanence Media Browser et Xbmc",
+ "LabelXbmcMetadataDateFormat": "Format de la date de sortie :",
+ "LabelXbmcMetadataDateFormatHelp": "Toutes les dates provenant des nfo seront lues et \u00e9crites en utilisant ce format.",
+ "LabelXbmcMetadataSaveImagePaths": "Sauvegarder les chemins d'images dans les fichiers nfo.",
+ "LabelXbmcMetadataSaveImagePathsHelp": "Cela est r\u00e9command\u00e9 si les noms des fichiers d'images ne sont pas conformes aux directives d'Xbmc.",
+ "LabelXbmcMetadataEnablePathSubstitution": "Activer le remplacement de chemin",
+ "LabelXbmcMetadataEnablePathSubstitutionHelp": "Active la substitution de chemin des chemins d'image en utilisant les param\u00e8tres de substitution de chemin du serveur.",
+ "LabelXbmcMetadataEnablePathSubstitutionHelp2": "Voir la substitution de chemin.",
+ "LabelGroupChannelsIntoViews": "Afficher directement les cha\u00eenes suivantes dans mes vues.",
+ "LabelGroupChannelsIntoViewsHelp": "Si activ\u00e9, ces cha\u00eenes seront directement affich\u00e9es \u00e0 c\u00f4t\u00e9 des autres vues. Si d\u00e9sactiv\u00e9, elles seront affich\u00e9es dans une vue de cha\u00eenes s\u00e9par\u00e9es.",
+ "LabelDisplayCollectionsView": "Afficher un aper\u00e7u de collections pour montrer les collections de film",
+ "LabelXbmcMetadataEnableExtraThumbs": "Copier l'extrafanart dans les extrathumbs",
+ "LabelXbmcMetadataEnableExtraThumbsHelp": "Lors du t\u00e9l\u00e9chargement d'images, elles peuvent \u00eatre sauvegard\u00e9es en tant que extrafanart ou extrathumbs pour une compatibilit\u00e9 maximum avec le skin Xbmc.",
"TabServices": "Services",
"TabLogs": "Logs",
- "HeaderServerLogFiles": "Server log files:",
- "TabBranding": "Branding",
- "HeaderBrandingHelp": "Customize the appearance of Media Browser to fit the needs of your group or organization.",
- "LabelLoginDisclaimer": "Login disclaimer:",
- "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.",
- "LabelAutomaticallyDonate": "Automatically donate this amount every six months",
- "LabelAutomaticallyDonateHelp": "You can cancel at any time via your PayPal account.",
- "OptionList": "List",
- "TabDashboard": "Dashboard",
- "TitleServer": "Server",
- "LabelCache": "Cache:",
- "LabelLogs": "Logs:",
- "LabelMetadata": "Metadata:",
- "LabelImagesByName": "Images by name:",
- "LabelTranscodingTemporaryFiles": "Transcoding temporary files:",
- "HeaderLatestMusic": "Latest Music",
- "HeaderBranding": "Branding",
- "HeaderApiKeys": "Api Keys",
- "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Media Browser. Keys are issued by logging in with a Media Browser account, or by manually granting the application a key.",
- "HeaderApiKey": "Api Key",
+ "HeaderServerLogFiles": "Fichiers log du serveur :",
+ "TabBranding": "Slogan",
+ "HeaderBrandingHelp": "Personnaliser l'apparence de Media Browser pour r\u00e9pondre aux besoins de votre groupe ou organisation.",
+ "LabelLoginDisclaimer": "Avertissement sur la page d'accueil :",
+ "LabelLoginDisclaimerHelp": "Ce sera affich\u00e9 en bas de la page de connexion.",
+ "LabelAutomaticallyDonate": "Donner ce montant automatiquement tout les 6 mois.",
+ "LabelAutomaticallyDonateHelp": "Vous pouvez annuler via votre compte Paypal n'importe quand.",
+ "OptionList": "Liste",
+ "TabDashboard": "Tableau de bord",
+ "TitleServer": "Serveur",
+ "LabelCache": "Cache :",
+ "LabelLogs": "Logs :",
+ "LabelMetadata": "M\u00e9tadonn\u00e9es :",
+ "LabelImagesByName": "Images tri\u00e9es par nom :",
+ "LabelTranscodingTemporaryFiles": "Transcodage de fichiers temporaires :",
+ "HeaderLatestMusic": "Derni\u00e8re musique",
+ "HeaderBranding": "Slogan",
+ "HeaderApiKeys": "Cl\u00e9s API",
+ "HeaderApiKeysHelp": "Les applications externes n\u00e9cessitent d'avoir une cl\u00e9 API pour communiquer avec Media Browser. Les cl\u00e9s sont d\u00e9livr\u00e9es en se connectant avec un compte Media Browser, ou en octroyant manuellement la cl\u00e9 depuis l'application.",
+ "HeaderApiKey": "Cl\u00e9 API",
"HeaderApp": "App",
- "HeaderDevice": "Device",
- "HeaderUser": "User",
- "HeaderDateIssued": "Date Issued",
- "LabelChapterName": "Chapter {0}",
- "HeaderNewApiKey": "New Api Key",
- "LabelAppName": "App name",
- "LabelAppNameExample": "Example: Sickbeard, NzbDrone",
- "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Media Browser.",
- "HeaderHttpHeaders": "Http Headers",
- "HeaderIdentificationHeader": "Identification Header",
- "LabelValue": "Value:",
- "LabelMatchType": "Match type:",
- "OptionEquals": "Equals",
+ "HeaderDevice": "P\u00e9riph\u00e9rique",
+ "HeaderUser": "Utilisateur",
+ "HeaderDateIssued": "Date de publication",
+ "LabelChapterName": "Chapitre {0}",
+ "HeaderNewApiKey": "Nouvelle cl\u00e9 API",
+ "LabelAppName": "Nom de l'app",
+ "LabelAppNameExample": "Exemple: Sickbeard, NzbDrone",
+ "HeaderNewApiKeyHelp": "Allouer \u00e0 une application des droits pour communiquer avec Media Browser.",
+ "HeaderHttpHeaders": "Ent\u00eates HTTP",
+ "HeaderIdentificationHeader": "Ent\u00eate d'identification",
+ "LabelValue": "Valeur :",
+ "LabelMatchType": "Type recherch\u00e9 :",
+ "OptionEquals": "Equivalents",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Sous-cha\u00eene",
+ "TabView": "Voir",
+ "TabSort": "Trier",
+ "TabFilter": "Filtrer",
+ "ButtonView": "Voir",
+ "LabelPageSize": "Limite de l'item :",
+ "LabelView": "Voir :",
+ "TabUsers": "Utilisateurs",
+ "HeaderFeatures": "Fonctionnalit\u00e9s",
+ "HeaderAdvanced": "Avanc\u00e9",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "T\u00e2ches planifi\u00e9es",
+ "HeaderChapters": "Chapitres",
+ "HeaderResumeSettings": "Reprendre les param\u00e8tres"
} \ 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 473b2523f..43135ec81 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/he.json
@@ -199,6 +199,7 @@
"OptionFriday": "\u05e9\u05d9\u05e9\u05d9",
"OptionSaturday": "\u05e9\u05d1\u05ea",
"HeaderManagement": "\u05e0\u05d9\u05d4\u05d5\u05dc",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "\u05d7\u05e1\u05e8 \u05de\u05d6\u05d4\u05d4 IMBb",
"OptionMissingTvdbId": "\u05d7\u05e1\u05e8 \u05de\u05d6\u05d4\u05d4 TheTVDB",
"OptionMissingOverview": "\u05d7\u05e1\u05e8\u05d4 \u05e1\u05e7\u05d9\u05e8\u05d4",
@@ -396,7 +397,7 @@
"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": "\u05d8\u05e8\u05d9\u05d9\u05dc\u05e8\u05d9\u05dd",
+ "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 +480,10 @@
"HeaderProgram": "\u05ea\u05d5\u05db\u05e0\u05d4",
"HeaderClients": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd",
"LabelCompleted": "\u05d4\u05d5\u05e9\u05dc\u05dd",
- "LabelFailed": "\u05e0\u05db\u05e9\u05dc",
+ "LabelFailed": "Failed",
"LabelSkipped": "\u05d3\u05d5\u05dc\u05d2",
"HeaderEpisodeOrganization": "\u05d0\u05d9\u05e8\u05d2\u05d5\u05df \u05e4\u05e8\u05e7\u05d9\u05dd",
- "LabelSeries": "\u05e1\u05d3\u05e8\u05d4:",
+ "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:",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 77d265bd4..e76d47a04 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/it.json
@@ -5,9 +5,9 @@
"LabelSwagger": "Swagger",
"LabelStandard": "Standard",
"LabelViewApiDocumentation": "Documentazione Api",
- "LabelBrowseLibrary": "Apri Media Browser",
+ "LabelBrowseLibrary": "Esplora la libreria",
"LabelConfigureMediaBrowser": "Configura Media Browser",
- "LabelOpenLibraryViewer": "Esplora la Libreria",
+ "LabelOpenLibraryViewer": "Apri visualizzatore libreria",
"LabelRestartServer": "Riavvia Server",
"LabelShowLogWindow": "Mostra Finestra log",
"LabelPrevious": "Precedente",
@@ -198,7 +198,8 @@
"OptionThursday": "Giovedi",
"OptionFriday": "Venerdi",
"OptionSaturday": "Sabato",
- "HeaderManagement": "Gestione:",
+ "HeaderManagement": "Gestione :",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "IMDB id mancante",
"OptionMissingTvdbId": "TheTVDB Id mancante",
"OptionMissingOverview": "Trama mancante",
@@ -256,13 +257,13 @@
"ButtonSelectDirectory": "Seleziona cartella",
"LabelCustomPaths": "Specifica un percorso personalizzato.Lasciare vuoto per usare quello predefinito",
"LabelCachePath": "Percorso Cache:",
- "LabelCachePathHelp": "Questa cartella contiene la cache come files e immagini.",
+ "LabelCachePathHelp": "Questa cartella contiene la cache come files e immagini .",
"LabelImagesByNamePath": "Percorso immagini per nome:",
- "LabelImagesByNamePathHelp": "Questa cartella contiene le immagini degli attori,generi, e studio",
+ "LabelImagesByNamePathHelp": "Specificare un percorso personalizzato per le immagini scaricato attore, artista, genere e in studio.",
"LabelMetadataPath": "Percorso dei file METADATI:",
- "LabelMetadataPathHelp": "Questa cartella contiene i files relativi ai metadati e immagini che non sono stati salvati nella cartella dei Media.",
+ "LabelMetadataPathHelp": "Specificare un percorso personalizzato per opere d'arte scaricato e metadati, se non il salvataggio in cartelle multimediali.",
"LabelTranscodingTempPath": "Cartella temporanea per la trascodifica:",
- "LabelTranscodingTempPathHelp": "Questa cartella contiene i file usati dalla trascodifica.",
+ "LabelTranscodingTempPathHelp": "Questa cartella contiene i file di lavoro utilizzati dal transcoder. Specificare un percorso personalizzato, oppure lasciare vuoto per utilizzare l'impostazione predefinita all'interno della cartella dei dati del server.",
"TabBasics": "Base",
"TabTV": "SerieTv",
"TabGames": "Giochi",
@@ -279,13 +280,13 @@
"LabelAutomaticUpdatesFanartHelp": "Se abilitato le nuove immagini verranno scaricate automaticamente da fanart.tv.Le immagini esistenti non verranno sovrascritte.",
"LabelAutomaticUpdatesTmdbHelp": "Se abilitato le nuove immagini verranno scaricate automaticamente da ThemovieDb.org.Le immagini esistenti non verranno sovrascritte.",
"LabelAutomaticUpdatesTvdbHelp": "Se abilitato le nuove immagini verranno scaricate automaticamente da TheTvDB.com.Le immagini esistenti non verranno sovrascritte.",
- "ExtractChapterImagesHelp": "Estrazione di immagini capitoli permetter\u00e0 ai clienti di visualizzare i menu di selezione delle scene grafiche. Il processo pu\u00f2 essere lento, e pu\u00f2 richiedere diversi gigabyte di spazio. Funziona come una operazione pianificata alle 04:00, anche se questo \u00e8 configurabile nella zona di operazioni pianificate. Non \u00e8 consigliabile eseguire questa operazione durante le ore diurne.",
+ "ExtractChapterImagesHelp": "Estrazione di immagini capitoli permetter\u00e0 ai clienti di visualizzare i menu di selezione delle scene grafiche. Il processo pu\u00f2 essere lento, cpu-intensive e pu\u00f2 richiedere diversi gigabyte di spazio. Funziona quando vengono scoperti i video, e anche come un compito serale in programma a 04:00. Il programma \u00e8 configurabile nella zona di operazioni pianificate. Non \u00e8 consigliabile eseguire questa operazione durante le ore di picco.",
"LabelMetadataDownloadLanguage": "Lingua preferita per il download:",
"ButtonAutoScroll": "Auto-scroll",
"LabelImageSavingConvention": "Convenzione per il salvataggio di immagini:",
"LabelImageSavingConventionHelp": "Media Browser riconosce le immagini dalla maggior parte delle principali applicazioni multimediali. Scegliere la convenzione piu adatta a te.",
- "OptionImageSavingCompatible": "Compatibile - MB3\/Plex\/Xbmc",
- "OptionImageSavingStandard": "Standard - MB3\/MB2",
+ "OptionImageSavingCompatible": "Compatibile- Media Browser\/Xbmc\/Plex",
+ "OptionImageSavingStandard": "Standard - MB2",
"ButtonSignIn": "Accedi",
"TitleSignIn": "Accedi",
"HeaderPleaseSignIn": "Per favore accedi",
@@ -479,13 +480,13 @@
"HeaderProgram": "Programma",
"HeaderClients": "Dispositivi",
"LabelCompleted": "Completato",
- "LabelFailed": "Fallito",
+ "LabelFailed": "Failed",
"LabelSkipped": "Saltato",
"HeaderEpisodeOrganization": "Organizzazione Episodi",
- "LabelSeries": "Serie:",
- "LabelSeasonNumber": "Numero Stagione:",
- "LabelEpisodeNumber": "Numero Episodio:",
- "LabelEndingEpisodeNumber": "Ultimo Episodio Numero:",
+ "LabelSeries": "Series:",
+ "LabelSeasonNumber": "Numero Stagione",
+ "LabelEpisodeNumber": "Numero Episodio",
+ "LabelEndingEpisodeNumber": "Ultimo Episodio Numero",
"LabelEndingEpisodeNumberHelp": "\u00e8 richiesto solo se ci sono pi\u00f9 file per espisodio",
"HeaderSupportTheTeam": "Team di supporto di Media Browser",
"LabelSupportAmount": "Ammontare (Dollari)",
@@ -534,7 +535,7 @@
"ErrorConnectingToMediaBrowserRepository": "Si \u00e8 verificato un errore durante la connessione al repository Media Browser remoto.",
"LabelComponentsUpdated": "I seguenti componenti sono stati installati o aggiornati:",
"MessagePleaseRestartServerToFinishUpdating": "Si prega di riavviare il server per completare l'applicazione degli aggiornamenti.",
- "LabelDownMixAudioScale": "Audio Boost Mix Scala:",
+ "LabelDownMixAudioScale": "Audio Boost Mix Scala :",
"LabelDownMixAudioScaleHelp": "Audio Mix: Valore originale 1",
"ButtonLinkKeys": "Lnks Chiavi:",
"LabelOldSupporterKey": "Vecchie Chiavi dl donatore",
@@ -549,8 +550,8 @@
"ButtonRetrieveKey": "Ottieni chiave",
"LabelSupporterKey": "Chiave ( incollala dalla mail ricevuta)",
"LabelSupporterKeyHelp": "Inserisci la chiave per avere nuovi benefit che la comunit\u00e0 di Media Browser ha sviluppato per te",
- "MessageInvalidKey": "Chiave MB3 mancante o invalida",
- "ErrorMessageInvalidKey": "Per avere qualsiasi contenuto premium devi essere registrato. Devi anche essere un donatore. Si prega di donae er sostenere lo sviluppo di MB3.Grazie.",
+ "MessageInvalidKey": "Chiave MB3 mancante o invalida.",
+ "ErrorMessageInvalidKey": "Per qualsiasi contenuto premium devi essere registrato. \u00e8 necessario anche essere un browser Supporter multimediale. Si prega di donare e sostenere il continuo sviluppo del prodotto di base. Grazie.",
"HeaderDisplaySettings": "Configurazione Monitor",
"TabPlayTo": "Riproduci su",
"LabelEnableDlnaServer": "Abilita server Dlna",
@@ -579,9 +580,9 @@
"NotificationOptionPluginUpdateInstalled": "Aggiornamento del plugin installato",
"NotificationOptionPluginInstalled": "plugin installato",
"NotificationOptionPluginUninstalled": "Plugin disinstallato",
- "NotificationOptionVideoPlayback": "Riproduzione video",
- "NotificationOptionAudioPlayback": "Riproduzione Audio",
- "NotificationOptionGamePlayback": "Riproduzione gioco",
+ "NotificationOptionVideoPlayback": "La riproduzione video \u00e8 iniziato",
+ "NotificationOptionAudioPlayback": "Riproduzione audio iniziato",
+ "NotificationOptionGamePlayback": "La riproduzione di gioco \u00e8 parita",
"NotificationOptionVideoPlaybackStopped": "Video Fermato",
"NotificationOptionAudioPlaybackStopped": "Audio Fermato",
"NotificationOptionGamePlaybackStopped": "Gioco Fermato",
@@ -626,12 +627,12 @@
"TabNowPlaying": "In esecuzione",
"TabNavigation": "Navigazione",
"TabControls": "Controlli",
- "ButtonFullscreen": "Schermo intero",
+ "ButtonFullscreen": "Tutto Schermo",
"ButtonScenes": "Scene",
"ButtonSubtitles": "Sottotitoli",
- "ButtonAudioTracks": "Traccia Audio",
- "ButtonPreviousTrack": "Precedente",
- "ButtonNextTrack": "Prossimo",
+ "ButtonAudioTracks": "Tracce audio",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
"ButtonStop": "Stop",
"ButtonPause": "Pausa",
"LabelGroupMoviesIntoCollections": "Raggruppa i film nelle collection",
@@ -722,7 +723,7 @@
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Questo \u00e8 necessario per alcuni dispositivi che il tempo non cercano molto bene.",
"HeaderSubtitleDownloadingHelp": "Quando Media Browser esegue la scansione dei file video \u00e8 possibile cercare i sottotitoli mancanti, e scaricarli utilizzando un provider sottotitolo come OpenSubtitles.org.",
"HeaderDownloadSubtitlesFor": "Scarica sottotitoli per:",
- "MessageNoChapterProviders": "Installare un plugin fornitore capitolo come ChapterDb o tagChimp per attivare le opzioni capitolo aggiuntivo.",
+ "MessageNoChapterProviders": "Installare un plugin fornitore capitolo come ChapterDb per attivare le opzioni capitolo aggiuntivo.",
"LabelSkipIfGraphicalSubsPresent": "Salta se il video contiene gi\u00e0 i sottotitoli grafici",
"LabelSkipIfGraphicalSubsPresentHelp": "Mantenere le versioni del testo di sottotitoli si tradurr\u00e0 in consegna pi\u00f9 efficiente ai clienti di telefonia mobile.",
"TabSubtitles": "sottotitoli",
@@ -730,7 +731,7 @@
"HeaderDownloadChaptersFor": "Scarica i nomi dei capitoli per:",
"LabelOpenSubtitlesUsername": "Sottotitoli utente:",
"LabelOpenSubtitlesPassword": "Sottotitoli password:",
- "HeaderChapterDownloadingHelp": "Quando Media Browser esegue la scansione dei file video \u00e8 possibile scaricare i nomi dei capitoli amichevoli da internet utilizzando i plugin capitolo come ChapterDb e tagChimp.",
+ "HeaderChapterDownloadingHelp": "Quando Media Browser esegue la scansione dei file video \u00e8 possibile scaricare i nomi dei capitoli amichevoli da internet utilizzando i plugin capitolo come ChapterDb",
"LabelPlayDefaultAudioTrack": "Riprodurre la traccia audio di default indipendentemente dalla lingua",
"LabelSubtitlePlaybackMode": "Modalit\u00e0 Sottotitolo:",
"LabelDownloadLanguages": "Scarica lingue:",
@@ -816,7 +817,7 @@
"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": "Cartelle dei media",
"TitleRemoteControl": "Telecomando",
"OptionLatestTvRecordings": "Ultime registrazioni",
"LabelProtocolInfo": "Info.protocollo:",
@@ -834,7 +835,7 @@
"LabelXbmcMetadataEnablePathSubstitutionHelp2": "Vedere sostituzione di percorso.",
"LabelGroupChannelsIntoViews": "Visualizzare i seguenti canali direttamente dentro le mie visite:",
"LabelGroupChannelsIntoViewsHelp": "Se abilitata, questi canali verranno visualizzati direttamente accanto ad altri punti di vista. Se disattivato, saranno visualizzati all'interno di una visione canali separati.",
- "LabelDisplayCollectionsView": "Visualizzare una vista Collezioni per mostrare collezioni di film",
+ "LabelDisplayCollectionsView": "Visualizzare una vista collezioni di mostrare collezioni di film",
"LabelXbmcMetadataEnableExtraThumbs": "Copy extrafanart into extrathumbs",
"LabelXbmcMetadataEnableExtraThumbsHelp": "Quando si scaricano le immagini possono essere salvate in entrambi extrafanart e extrathumbs per la massima compatibilit\u00e0 cutanea XBMC.",
"TabServices": "Servizi",
@@ -844,35 +845,48 @@
"HeaderBrandingHelp": "Personalizzare l'aspetto del browser media per soddisfare le esigenze del vostro gruppo o organizzazione.",
"LabelLoginDisclaimer": "Login disclaimer:",
"LabelLoginDisclaimerHelp": "Questo verr\u00e0 visualizzato nella parte inferiore della pagina di accesso.",
- "LabelAutomaticallyDonate": "Donare automaticamente questo importo ogni mese",
+ "LabelAutomaticallyDonate": "Donare automaticamente questo importo ogni sei mesi",
"LabelAutomaticallyDonateHelp": "\u00c8 possibile annullare in qualsiasi momento tramite il vostro conto PayPal.",
- "OptionList": "List",
- "TabDashboard": "Dashboard",
+ "OptionList": "Lista",
+ "TabDashboard": "Pannello Controllo",
"TitleServer": "Server",
"LabelCache": "Cache:",
- "LabelLogs": "Logs:",
+ "LabelLogs": "Log:",
"LabelMetadata": "Metadata:",
- "LabelImagesByName": "Images by name:",
- "LabelTranscodingTemporaryFiles": "Transcoding temporary files:",
- "HeaderLatestMusic": "Latest Music",
+ "LabelImagesByName": "Immagini per nome:",
+ "LabelTranscodingTemporaryFiles": "transcodifica file temporanei:",
+ "HeaderLatestMusic": "Musica Recente",
"HeaderBranding": "Branding",
- "HeaderApiKeys": "Api Keys",
- "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Media Browser. Keys are issued by logging in with a Media Browser account, or by manually granting the application a key.",
- "HeaderApiKey": "Api Key",
+ "HeaderApiKeys": "Chiavi Api",
+ "HeaderApiKeysHelp": "Le applicazioni estrene richiedono una chiave Api per comunicare con Media Browser. Le chiavi sono create attraverso il log-in con un account Media Browse, o manualmente rilasciando una chiave all'applicazione.",
+ "HeaderApiKey": "Chiave Api",
"HeaderApp": "App",
- "HeaderDevice": "Device",
- "HeaderUser": "User",
- "HeaderDateIssued": "Date Issued",
- "LabelChapterName": "Chapter {0}",
- "HeaderNewApiKey": "New Api Key",
- "LabelAppName": "App name",
+ "HeaderDevice": "Dispositivo",
+ "HeaderUser": "Utente",
+ "HeaderDateIssued": "data di pubblicazione",
+ "LabelChapterName": "Capitolo {0}",
+ "HeaderNewApiKey": "Nessuna Chiave Api",
+ "LabelAppName": "Nome app",
"LabelAppNameExample": "Example: Sickbeard, NzbDrone",
- "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Media Browser.",
+ "HeaderNewApiKeyHelp": "Garantisci all'applicazione il permesso di comunicare con Media Browser.",
"HeaderHttpHeaders": "Http Headers",
"HeaderIdentificationHeader": "Identification Header",
- "LabelValue": "Value:",
+ "LabelValue": "valore:",
"LabelMatchType": "Match type:",
- "OptionEquals": "Equals",
+ "OptionEquals": "Uguale",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "Vista",
+ "TabSort": "Ordina",
+ "TabFilter": "Filtra",
+ "ButtonView": "Vista",
+ "LabelPageSize": "Limite articolo:",
+ "LabelView": "Vista:",
+ "TabUsers": "Utenti",
+ "HeaderFeatures": "Caratteristiche",
+ "HeaderAdvanced": "Avanzato",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Operazioni pianificate",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 caee46351..9a1847ea4 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
@@ -55,7 +55,7 @@
"TabProfile": "\u041f\u0440\u043e\u0444\u0438\u043b\u044c",
"TabMetadata": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a",
"TabImages": "\u0421\u0443\u0440\u0435\u0442\u0442\u0435\u0440",
- "TabNotifications": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443",
+ "TabNotifications": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443\u043b\u0430\u0440",
"TabCollectionTitles": "\u0410\u0442\u0430\u0443\u043b\u0430\u0440",
"LabelDisplayMissingEpisodesWithinSeasons": "\u0416\u043e\u049b \u044d\u043f\u0438\u0437\u043e\u0434\u0442\u0430\u0440\u0434\u044b \u043c\u0430\u0443\u0441\u044b\u043c \u0456\u0448\u0456\u043d\u0434\u0435 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0443",
"LabelUnairedMissingEpisodesWithinSeasons": "\u041a\u04e9\u0440\u0441\u0435\u0442\u0456\u043b\u043c\u0435\u0433\u0435\u043d \u044d\u043f\u0438\u0437\u043e\u0434\u0442\u0430\u0440\u0434\u044b \u043c\u0430\u0443\u0441\u044b\u043c \u0456\u0448\u0456\u043d\u0434\u0435 \u0431\u0435\u0439\u043d\u0435\u043b\u0435\u0443",
@@ -167,7 +167,7 @@
"OptionDvd": "DVD",
"OptionIso": "ISO",
"Option3D": "3D",
- "LabelFeatures": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430\u043b\u0430\u0440:",
+ "LabelFeatures": "\u041c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440:",
"LabelService": "\u049a\u044b\u0437\u043c\u0435\u0442:",
"LabelStatus": "\u041a\u04af\u0439:",
"LabelVersion": "\u041d\u04b1\u0441\u049b\u0430:",
@@ -181,16 +181,16 @@
"TabTrailers": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440",
"HeaderLatestMovies": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0444\u0438\u043b\u044c\u043c\u0434\u0435\u0440",
"HeaderLatestTrailers": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440",
- "OptionHasSpecialFeatures": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430\u043b\u0430\u0440",
+ "OptionHasSpecialFeatures": "\u041c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440",
"OptionImdbRating": "IMDb \u0431\u0430\u0493\u0430\u043b\u0430\u0443\u044b",
"OptionParentalRating": "\u0416\u0430\u0441\u0442\u0430\u0441 \u0441\u0430\u043d\u0430\u0442",
"OptionPremiereDate": "\u0422\u04b1\u0441\u0430\u0443\u043a\u0435\u0441\u0435\u0440 \u043a\u04af\u043d-\u0430\u0439\u044b",
"TabBasic": "\u041d\u0435\u0433\u0456\u0437\u0433\u0456\u043b\u0435\u0440",
- "TabAdvanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d\u0434\u0435\u0440",
+ "TabAdvanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
"HeaderStatus": "\u041a\u04af\u0439",
"OptionContinuing": "\u0416\u0430\u043b\u0493\u0430\u0441\u0443\u0434\u0430",
"OptionEnded": "\u0410\u044f\u049b\u0442\u0430\u043b\u0434\u044b",
- "HeaderAirDays": "\u042d\u0444\u0438\u0440 \u043a\u04af\u043d\u0434\u0435\u0440\u0456:",
+ "HeaderAirDays": "\u042d\u0444\u0438\u0440 \u043a\u04af\u043d\u0434\u0435\u0440\u0456",
"OptionSunday": "\u0436\u0435\u043a\u0441\u0435\u043d\u0431\u0456",
"OptionMonday": "\u0434\u04af\u0439\u0441\u0435\u043d\u0431\u0456",
"OptionTuesday": "\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456",
@@ -198,7 +198,8 @@
"OptionThursday": "\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456",
"OptionFriday": "\u0436\u04b1\u043c\u0430",
"OptionSaturday": "\u0441\u0435\u043d\u0431\u0456",
- "HeaderManagement": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a:",
+ "HeaderManagement": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440",
+ "LabelManagement": "\u041c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440",
"OptionMissingImdbId": "IMDb Id \u0436\u043e\u049b",
"OptionMissingTvdbId": "TheTVDB Id \u0436\u043e\u049b",
"OptionMissingOverview": "\u0416\u0430\u043b\u043f\u044b \u0448\u043e\u043b\u0443 \u0436\u043e\u049b",
@@ -243,7 +244,7 @@
"TabPaths": "\u0416\u043e\u043b\u0434\u0430\u0440",
"TabServer": "\u0421\u0435\u0440\u0432\u0435\u0440",
"TabTranscoding": "\u049a\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443",
- "TitleAdvanced": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440",
+ "TitleAdvanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
"LabelAutomaticUpdateLevel": "\u0410\u0432\u0442\u043e\u0436\u0430\u04a3\u0430\u0440\u0442\u0443 \u0434\u0435\u04a3\u0433\u0435\u0439\u0456",
"OptionRelease": "\u0420\u0435\u0441\u043c\u0438 \u0448\u044b\u0493\u0430\u0440\u044b\u043b\u044b\u043c",
"OptionBeta": "\u0411\u0435\u0442\u0430 \u043d\u04b1\u0441\u049b\u0430",
@@ -254,15 +255,15 @@
"LabelRunServerAtStartup": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u043b\u0443\u0434\u0430\u043d \u0431\u0430\u0441\u0442\u0430\u043f \u043e\u0440\u044b\u043d\u0434\u0430\u0443",
"LabelRunServerAtStartupHelp": "\u0411\u04b1\u043b Windows \u0436\u04b1\u043c\u044b\u0441\u044b\u043d \u0431\u0430\u0441\u0442\u0430\u0493\u0430\u043d\u0434\u0430 \u0436\u04af\u0439\u0435\u043b\u0456\u043a \u0442\u0430\u049b\u0442\u0430\u0434\u0430\u0493\u044b \u0431\u0435\u043b\u0433\u0456\u0448\u0435 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u044b\u043b\u0430\u0434\u044b. Windows \u049b\u044b\u0437\u043c\u0435\u0442\u0456\u043d \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443 \u04af\u0448\u0456\u043d, \u049b\u04b1\u0441\u0431\u0435\u043b\u0433\u0456\u043d\u0456 \u0430\u043b\u044b\u04a3\u044b\u0437 \u0436\u04d9\u043d\u0435 \u049b\u044b\u0437\u043c\u0435\u0442\u0442\u0456 Windows \u049a\u044b\u0437\u043c\u0435\u0442\u0442\u0435\u0440 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u043e\u0440\u044b\u043d\u0434\u0430\u04a3\u044b\u0437. \u041d\u0430\u0437\u0430\u0440 \u0430\u0443\u0434\u0430\u0440\u044b\u04a3\u044b\u0437! \u0411\u04b1\u043b \u0435\u043a\u0435\u0443\u0456\u043d \u0441\u043e\u043b \u043c\u0435\u0437\u0433\u0456\u043b\u0434\u0435 \u0431\u0456\u0440\u0433\u0435 \u043e\u0440\u044b\u043d\u0434\u0430\u0443 \u043c\u04af\u043c\u043a\u0456\u043d \u0435\u043c\u0435\u0441, \u0441\u043e\u043d\u044b\u043c\u0435\u043d \u049b\u044b\u0437\u043c\u0435\u0442\u0442\u0456 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443 \u0430\u043b\u0434\u044b\u043d\u0430\u043d \u0436\u04af\u0439\u0435\u043b\u0456\u043a \u0442\u0430\u049b\u0442\u0430\u0434\u0430\u0493\u044b \u0431\u0435\u043b\u0433\u0456\u0448\u0435\u0434\u0435\u043d \u0448\u044b\u0493\u044b\u04a3\u044b\u0437.",
"ButtonSelectDirectory": "\u049a\u0430\u0442\u0430\u043b\u043e\u0433\u0442\u044b \u0431\u04e9\u043b\u0435\u043a\u0442\u0435\u0443",
- "LabelCustomPaths": "\u049a\u0430\u043b\u0430\u0443 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u043e\u043b\u0434\u0430\u0440\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u04a3\u0456\u0437. \u04d8\u0434\u0435\u043f\u043a\u0456\u043b\u0435\u0440\u0434\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u04e9\u0440\u0456\u0441\u0442\u0435\u0440\u0434\u0456 \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
+ "LabelCustomPaths": "\u049a\u0430\u043b\u0430\u0443\u044b\u04a3\u044b\u0437 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u043e\u043b\u0434\u0430\u0440\u0434\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437. \u04d8\u0434\u0435\u043f\u043a\u0456\u043b\u0435\u0440\u0434\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u04e9\u0440\u0456\u0441\u0442\u0435\u0440\u0434\u0456 \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
"LabelCachePath": "Cache \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u044b\u04a3 \u0436\u043e\u043b\u044b:",
- "LabelCachePathHelp": "\u0411\u04b1\u043b \u049b\u0430\u043b\u0442\u0430 \u049b\u04b1\u0440\u0430\u043c\u044b\u043d\u0434\u0430 \u0441\u0443\u0440\u0435\u0442 \u0441\u0438\u044f\u049b\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0456\u04a3 \u043a\u044d\u0448 \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u0431\u0430\u0440.",
+ "LabelCachePathHelp": "\u0421\u0443\u0440\u0435\u0442 \u0441\u0438\u044f\u049b\u0442\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0456\u04a3 \u043a\u044d\u0448 \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u04af\u0448\u0456\u043d \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u0430\u0439\u0493\u0430\u0441\u044b\u043c\u0434\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437.",
"LabelImagesByNamePath": "Images by name \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u044b\u04a3 \u0436\u043e\u043b\u044b:",
- "LabelImagesByNamePathHelp": "\u0411\u04b1\u043b \u049b\u0430\u043b\u0442\u0430 \u049b\u04b1\u0440\u0430\u043c\u044b\u043d\u0434\u0430 \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d \u0430\u043a\u0442\u0435\u0440, \u043e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b, \u0436\u0430\u043d\u0440, \u0436\u04d9\u043d\u0435 \u0441\u0442\u0443\u0434\u0438\u044f \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456 \u0431\u0430\u0440.",
+ "LabelImagesByNamePathHelp": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d \u0430\u043a\u0442\u0435\u0440, \u043e\u0440\u044b\u043d\u0434\u0430\u0443\u0448\u044b, \u0436\u0430\u043d\u0440, \u0436\u04d9\u043d\u0435 \u0441\u0442\u0443\u0434\u0438\u044f \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456 \u04af\u0448\u0456\u043d \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u0430\u0439\u0493\u0430\u0441\u044b\u043c\u0434\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437.",
"LabelMetadataPath": "Metadata \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u044b\u04a3 \u0436\u043e\u043b\u044b:",
- "LabelMetadataPathHelp": "\u0411\u04b1\u043b \u0436\u0430\u0439\u0493\u0430\u0441\u044b\u043c \u0456\u0448\u0456\u043d\u0434\u0435 \u0442\u0430\u0441\u0443\u0448\u044b \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u044b\u043d\u0434\u0430 \u0441\u0430\u049b\u0442\u0430\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u0441\u044b \u0456\u0441\u0442\u0435\u043b\u043c\u0435\u0433\u0435\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u043c\u0435 \u043c\u0435\u043d \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a \u0431\u0430\u0440.",
+ "LabelMetadataPathHelp": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u043c\u0435\u043b\u0435\u0440 \u0431\u0435\u043d \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u04af\u0448\u0456\u043d \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u0430\u0439\u0493\u0430\u0441\u044b\u043c\u0434\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437.",
"LabelTranscodingTempPath": "Transcoding temporary \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u044b\u04a3 \u0436\u043e\u043b\u044b:",
- "LabelTranscodingTempPathHelp": "\u0411\u04b1\u043b \u049b\u0430\u043b\u0442\u0430 \u049b\u04b1\u0440\u0430\u043c\u044b\u043d\u0434\u0430 \u049b\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443 \u049b\u04b1\u0440\u0430\u043b\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0430\u0442\u044b\u043d \u0436\u04b1\u043c\u044b\u0441 \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u0431\u0430\u0440. \u0422\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u043e\u043b\u0434\u044b \u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u04a3\u0456\u0437, \u043d\u0435\u043c\u0435\u0441\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0456\u04a3 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u049b\u0430\u043b\u0442\u0430\u0441\u044b \u0456\u0448\u0456\u043d\u0434\u0435\u0433\u0456 \u04d9\u0434\u0435\u043f\u043a\u0456\u0441\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
+ "LabelTranscodingTempPathHelp": "\u0411\u04b1\u043b \u049b\u0430\u043b\u0442\u0430 \u049b\u04b1\u0440\u0430\u043c\u044b\u043d\u0434\u0430 \u049b\u0430\u0439\u0442\u0430 \u043a\u043e\u0434\u0442\u0430\u0443 \u049b\u04b1\u0440\u0430\u043b\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0430\u0442\u044b\u043d \u0436\u04b1\u043c\u044b\u0441 \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u0431\u0430\u0440. \u0422\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u043e\u043b\u0434\u044b \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437, \u043d\u0435\u043c\u0435\u0441\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0456\u04a3 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440 \u049b\u0430\u043b\u0442\u0430\u0441\u044b \u0456\u0448\u0456\u043d\u0434\u0435\u0433\u0456 \u04d9\u0434\u0435\u043f\u043a\u0456\u0441\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443 \u04af\u0448\u0456\u043d \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
"TabBasics": "\u041d\u0435\u0433\u0456\u0437\u0433\u0456\u043b\u0435\u0440",
"TabTV": "\u0422\u0414",
"TabGames": "\u041e\u0439\u044b\u043d\u0434\u0430\u0440",
@@ -392,7 +393,7 @@
"HeaderAwardsAndReviews": "\u041c\u0430\u0440\u0430\u043f\u0430\u0442\u0442\u0430\u0440 \u043c\u0435\u043d \u043f\u0456\u043a\u0456\u0440\u043b\u0435\u0440",
"HeaderSoundtracks": "\u0424\u0438\u043b\u044c\u043c\u0434\u0456\u04a3 \u043c\u0443\u0437\u044b\u043a\u0430\u0441\u044b",
"HeaderMusicVideos": "\u0411\u0435\u0439\u043d\u0435\u043a\u043b\u0438\u043f\u0442\u0435\u0440",
- "HeaderSpecialFeatures": "\u0410\u0440\u043d\u0430\u0439\u044b \u049b\u043e\u0441\u044b\u043c\u0448\u0430\u043b\u0430\u0440",
+ "HeaderSpecialFeatures": "\u0410\u0440\u043d\u0430\u0439\u044b \u043c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440",
"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",
@@ -589,7 +590,7 @@
"NotificationOptionInstallationFailed": "\u041e\u0440\u043d\u0430\u0442\u0443 \u0441\u04d9\u0442\u0441\u0456\u0437\u0434\u0456\u0433\u0456",
"NotificationOptionNewLibraryContent": "\u0416\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u04af\u0441\u0442\u0435\u043b\u0433\u0435\u043d",
"NotificationOptionNewLibraryContentMultiple": "\u0416\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u049b\u043e\u0441\u044b\u043b\u0434\u044b (\u0431\u0456\u0440\u043d\u0435\u0448\u0435)",
- "SendNotificationHelp": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u043c\u0430\u043b\u0430\u0440 \u0431\u0430\u049b\u044b\u043b\u0430\u0443 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430\u0493\u044b \u04d9\u0434\u0435\u043f\u043a\u0456 \u043a\u0456\u0440\u0456\u0441 \u0436\u04d9\u0448\u0456\u0433\u0456\u043d\u0435 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u043b\u0435\u0434\u0456. \u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443 \u049b\u04b1\u0440\u0430\u043b\u0434\u0430\u0440\u044b\u043d \u043e\u0440\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d \u0448\u0430\u0440\u043b\u0430\u04a3\u044b\u0437.",
+ "SendNotificationHelp": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443\u043b\u0430\u0440 \u0431\u0430\u049b\u044b\u043b\u0430\u0443 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430\u0493\u044b \u04d9\u0434\u0435\u043f\u043a\u0456 \u043a\u0456\u0440\u0456\u0441 \u0436\u04d9\u0448\u0456\u0433\u0456\u043d\u0435 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u043b\u0435\u0434\u0456. \u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443 \u049b\u04b1\u0440\u0430\u043b\u0434\u0430\u0440\u044b\u043d \u043e\u0440\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d \u0448\u0430\u0440\u043b\u0430\u04a3\u044b\u0437.",
"NotificationOptionServerRestartRequired": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u049b\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443 \u049b\u0430\u0436\u0435\u0442",
"LabelNotificationEnabled": "\u0411\u04b1\u043b \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u043c\u0430\u043d\u044b \u049b\u043e\u0441\u0443",
"LabelMonitorUsers": "\u041c\u044b\u043d\u0430\u043d\u044b\u04a3 \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0435\u0440\u0456\u043d \u0431\u0430\u049b\u044b\u043b\u0430\u0443:",
@@ -641,7 +642,7 @@
"ButtonVolumeDown": "\u04ae\u043d\u0434\u0456\u043b\u0456\u043a\u0442\u0456 \u0442\u04e9\u043c\u0435\u043d\u0434\u0435\u0442\u0443",
"ButtonMute": "\u0414\u044b\u0431\u044b\u0441\u0442\u044b \u04e9\u0448\u0456\u0440\u0443",
"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",
+ "OptionSpecialFeatures": "\u0410\u0440\u043d\u0430\u0439\u044b \u043c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440",
"HeaderCollections": "\u0422\u043e\u043f\u0442\u0430\u043c\u0430\u043b\u0430\u0440",
"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.",
@@ -799,7 +800,7 @@
"LabelEnableChannelContentDownloadingFor": "\u0411\u04b1\u043b \u04af\u0448\u0456\u043d \u0430\u0440\u043d\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d\u044b\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443\u0434\u044b \u049b\u043e\u0441\u0443:",
"LabelEnableChannelContentDownloadingForHelp": "\u041a\u0435\u0439\u0431\u0456\u0440 \u0430\u0440\u043d\u0430\u043b\u0430\u0440 \u049b\u0430\u0440\u0430\u0443\u0434\u044b\u04a3 \u0430\u043b\u0434\u044b\u043d\u0434\u0430 \u043c\u0430\u0437\u043c\u04af\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443\u0434\u044b \u049b\u043e\u043b\u0434\u0430\u0439\u0434\u044b. \u04e8\u0442\u043a\u0456\u0437\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456 \u0442\u04e9\u043c\u0435\u043d \u043e\u0440\u0442\u0430\u043b\u0430\u0440\u0434\u0430 \u0430\u0440\u043d\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d\u044b\u043d \u0436\u04b1\u043c\u044b\u0441\u0442\u0430\u043d \u0431\u043e\u0441 \u0443\u0430\u049b\u044b\u0442\u0442\u0430 \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043d\u044b \u049b\u043e\u0441\u044b\u04a3\u044b\u0437. \u041c\u0430\u0437\u043c\u04af\u043d \u0430\u0440\u043d\u0430 \u0436\u04af\u043a\u0442\u0435\u0443 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d \u0442\u0430\u043f\u0441\u044b\u0440\u043c\u0430\u0441\u044b \u0431\u04e9\u043b\u0456\u0433\u0456 \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u0436\u04af\u043a\u0442\u0435\u043b\u0435\u0434\u0456.",
"LabelChannelDownloadPath": "\u0410\u0440\u043d\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d\u044b\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u0436\u043e\u043b\u044b:",
- "LabelChannelDownloadPathHelp": "\u041a\u0435\u0440\u0435\u043a \u0431\u043e\u043b\u0441\u0430 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u0436\u043e\u043b\u044b\u043d \u043a\u04e9\u0440\u0441\u0435\u0442\u0456\u04a3\u0456\u0437. \u0411\u0430\u0493\u0434\u0430\u0440\u043b\u0430\u043c\u0430 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u0456\u0448\u043a\u0456 \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u0430 \u0436\u04af\u043a\u0442\u0435\u0443 \u04af\u0448\u0456\u043d \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
+ "LabelChannelDownloadPathHelp": "\u041a\u0435\u0440\u0435\u043a \u0431\u043e\u043b\u0441\u0430 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u0436\u043e\u043b\u044b\u043d \u0430\u043d\u044b\u049b\u0442\u0430\u04a3\u044b\u0437. \u0411\u0430\u0493\u0434\u0430\u0440\u043b\u0430\u043c\u0430 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u0456\u0448\u043a\u0456 \u049b\u0430\u043b\u0442\u0430\u0441\u044b\u043d\u0430 \u0436\u04af\u043a\u0442\u0435\u0443 \u04af\u0448\u0456\u043d \u0431\u043e\u0441 \u049b\u0430\u043b\u0434\u044b\u0440\u044b\u04a3\u044b\u0437.",
"LabelChannelDownloadAge": "\u041c\u0430\u0437\u043c\u04b1\u043d \u0436\u043e\u0439\u044b\u043b\u0443\u044b \u043a\u0435\u043b\u0435\u0441\u0456\u0434\u0435\u043d \u043a\u0435\u0439\u0456\u043d, \u043a\u04af\u043d:",
"LabelChannelDownloadAgeHelp": "\u0411\u04b1\u0434\u0430\u043d \u0431\u04b1\u0440\u044b\u043d\u0493\u044b \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u044b\u043d\u0493\u0430\u043d \u043c\u0430\u0437\u043c\u04af\u043d \u0436\u043e\u0439\u044b\u043b\u0430\u0434\u044b. \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0430\u0440\u049b\u044b\u043b\u044b \u0430\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443 \u04d9\u0434\u0456\u0441\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u043e\u0439\u043d\u0430\u0442\u0443 \u0456\u0441\u0442\u0435 \u049b\u0430\u043b\u0430\u0434\u044b.",
"ChannelSettingsFormHelp": "\u041f\u043b\u0430\u0433\u0438\u043d \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d\u0434\u0435\u0433\u0456 Trailers \u0436\u04d9\u043d\u0435 Vimeo \u0441\u0438\u044f\u049b\u0442\u044b \u0430\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u044b \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
@@ -822,7 +823,7 @@
"LabelProtocolInfo": "\u041f\u0440\u043e\u0442\u043e\u049b\u043e\u043b \u0430\u049b\u043f\u0430\u0440\u0430\u0442\u044b:",
"LabelProtocolInfoHelp": "\u0411\u04b1\u043b \u043c\u04d9\u043d \u0436\u0430\u0431\u0434\u044b\u049b\u0442\u044b\u04a3 GetProtocolInfo \u0441\u04b1\u0440\u0430\u043d\u044b\u0441\u0442\u0430\u0440\u044b\u043d\u0430 \u0436\u0430\u0443\u0430\u043f \u0431\u0435\u0440\u0433\u0435\u043d\u0434\u0435 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0430\u0434\u044b.",
"TabXbmcMetadata": "Xbmc",
- "HeaderXbmcMetadataHelp": "Media Browser \u0431\u0430\u0493\u0434\u0430\u0440\u043b\u0430\u043c\u0430\u0441\u044b Xbmc Nfo \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u0436\u04d9\u043d\u0435 \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u043a\u0456\u0440\u0456\u043a\u0442\u0456\u0440\u043c\u0435 \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u043d \u049b\u0430\u043c\u0442\u0438\u0434\u044b.",
+ "HeaderXbmcMetadataHelp": "Media Browser \u0431\u0430\u0493\u0434\u0430\u0440\u043b\u0430\u043c\u0430\u0441\u044b Xbmc Nfo \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u0436\u04d9\u043d\u0435 \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u043a\u0456\u0440\u0456\u043a\u0442\u0456\u0440\u043c\u0435 \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u043d \u049b\u0430\u043c\u0442\u0438\u0434\u044b. Xbmc \u043c\u0435\u0442\u0430\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d \u049b\u043e\u0441\u0443 \u043d\u0435\u043c\u0435\u0441\u0435 \u04e9\u0448\u0456\u0440\u0443 \u04af\u0448\u0456\u043d \u049a\u044b\u0437\u043c\u0435\u0442\u0442\u0435\u0440 \u049b\u043e\u0439\u044b\u043d\u0434\u044b\u0441\u044b\u043d\u0434\u0430\u0493\u044b \u0442\u0430\u0441\u0443\u0448\u044b \u0442\u04af\u0440\u043b\u0435\u0440\u0456\u043d\u0435 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0434\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u04a3\u044b\u0437.",
"LabelXbmcMetadataUser": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043d\u044b\u04a3 \u049b\u0430\u0440\u0430\u0443 \u043a\u04af\u0439\u0456\u043d nfo \u04af\u0448\u0456\u043d \u043c\u044b\u043d\u0430\u0493\u0430\u043d \u049b\u043e\u0441\u0443:",
"LabelXbmcMetadataUserHelp": "\u041a\u04e9\u0440\u0456\u043b\u0433\u0435\u043d \u043a\u04af\u0439\u0434\u0456 Media Browser \u0436\u04d9\u043d\u0435 Xbmc \u0430\u0440\u0430\u0441\u044b\u043d\u0434\u0430 \u04af\u0439\u043b\u0435\u0441\u0442\u0456\u0440\u0456\u043f \u0442\u04b1\u0440\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043d\u044b \u049b\u043e\u0441\u044b\u04a3\u044b\u0437.",
"LabelXbmcMetadataDateFormat": "\u0416\u044b\u0493\u0430\u0440\u0443 \u043a\u04af\u043d-\u0430\u0439\u044b\u043d\u044b\u04a3 \u043f\u0456\u0448\u0456\u043c\u0456:",
@@ -874,5 +875,18 @@
"LabelMatchType": "\u0421\u04d9\u0439\u043a\u0435\u0441 \u0442\u04af\u0440\u0456:",
"OptionEquals": "\u0422\u0435\u04a3",
"OptionRegex": "\u04b0\u0434\u0430\u0439\u044b \u04e9\u0440\u043d\u0435\u043a",
- "OptionSubstring": "\u0406\u0448\u043a\u0456 \u0436\u043e\u043b"
+ "OptionSubstring": "\u0406\u0448\u043a\u0456 \u0436\u043e\u043b",
+ "TabView": "\u041a\u04e9\u0440\u0456\u043d\u0456\u0441",
+ "TabSort": "\u0421\u04b1\u0440\u044b\u043f\u0442\u0430\u0443",
+ "TabFilter": "\u0421\u04af\u0437\u0443",
+ "ButtonView": "\u049a\u0430\u0440\u0430\u0443",
+ "LabelPageSize": "\u042d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0456\u04a3 \u0448\u0435\u0433\u0456:",
+ "LabelView": "\u041a\u04e9\u0440\u0456\u043d\u0456\u0441:",
+ "TabUsers": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440",
+ "HeaderFeatures": "\u041c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440",
+ "HeaderAdvanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
+ "ButtonSync": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0434\u0430\u0443",
+ "TabScheduledTasks": "\u0416\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0443\u0448\u044b",
+ "HeaderChapters": "\u0421\u0430\u0445\u043d\u0430\u043b\u0430\u0440",
+ "HeaderResumeSettings": "\u0416\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043b\u0435\u0440\u0456"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ko.json b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
index 18cc943e1..f474225fd 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ko.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 f90a35018..232e94a72 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Sunday",
"OptionMonday": "Monday",
"OptionTuesday": "Tuesday",
@@ -198,7 +198,8 @@
"OptionThursday": "Thursday",
"OptionFriday": "Friday",
"OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Missing IMDb Id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 94927eb12..c10e19102 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Fortsetter",
"OptionEnded": "Avsluttet",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "S\u00f8ndag",
"OptionMonday": "Mandag",
"OptionTuesday": "Tirsdag",
@@ -198,7 +198,8 @@
"OptionThursday": "Torsdag",
"OptionFriday": "Fredag",
"OptionSaturday": "L\u00f8rdag",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Mangler IMDb id",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Mangler oversikt",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Select Directory",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 7f1545c2b..c1a871095 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
@@ -39,7 +39,7 @@
"HeaderSetupLibrary": "Stel uw mediabibliotheek in",
"ButtonAddMediaFolder": "Mediamap toevoegen",
"LabelFolderType": "Maptype:",
- "MediaFolderHelpPluginRequired": "* Hiervoor is het gebruik van een plug-in vereist, bijvoorbeeld GameBrowser of MB Bookshelf.",
+ "MediaFolderHelpPluginRequired": "* Hiervoor is het gebruik van een Invoegtoepassing vereist, bijvoorbeeld GameBrowser of MB Bookshelf.",
"ReferToMediaLibraryWiki": "Raadpleeg de mediabibliotheek wiki.",
"LabelCountry": "Land:",
"LabelLanguage": "Taal:",
@@ -152,9 +152,9 @@
"OptionResumable": "Hervatbaar",
"ScheduledTasksHelp": "Klik op een taak om het schema aan te passen.",
"ScheduledTasksTitle": "Geplande taken",
- "TabMyPlugins": "Mijn Plug-ins",
+ "TabMyPlugins": "Mijn Invoegtoepassingen",
"TabCatalog": "Catalogus",
- "PluginsTitle": "Plug-ins",
+ "PluginsTitle": "Invoegtoepassingen",
"HeaderAutomaticUpdates": "Automatische updates",
"HeaderNowPlaying": "Wordt nu afgespeeld",
"HeaderLatestAlbums": "Nieuwste Albums",
@@ -199,6 +199,7 @@
"OptionFriday": "Vrijdag",
"OptionSaturday": "Zaterdag",
"HeaderManagement": "Beheer:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "IMDb Id ontbreekt",
"OptionMissingTvdbId": "TheTVDB Id ontbreekt",
"OptionMissingOverview": "Overzicht ontbreekt",
@@ -284,7 +285,7 @@
"ButtonAutoScroll": "Auto-scroll",
"LabelImageSavingConvention": "Afbeelding opslag conventie:",
"LabelImageSavingConventionHelp": "Media Browser herkent afbeeldingen van de meeste grote media-applicaties. Het kiezen van uw download conventie is handig als u ook gebruik wilt maken van andere producten.",
- "OptionImageSavingCompatible": "Compatibel - Media Browser \/ Plex \/ XBMC",
+ "OptionImageSavingCompatible": "Compatibel - Media Browser \/ XBMC \/ Plex",
"OptionImageSavingStandard": "Standaard - MB2",
"ButtonSignIn": "Aanmelden",
"TitleSignIn": "Aanmelden",
@@ -332,10 +333,10 @@
"LabelNumberOfGuideDays": "Aantal dagen van de gids om te downloaden:",
"LabelNumberOfGuideDaysHelp": "Het downloaden van meer dagen van de gids gegevens biedt de mogelijkheid verder vooruit te plannen en een beter overzicht geven, maar het zal ook langer duren om te downloaden. Auto kiest op basis van het aantal kanalen.",
"LabelActiveService": "Actieve Service:",
- "LabelActiveServiceHelp": "Er kunnen meerdere tv plug-ins worden ge\u00efnstalleerd, maar er kan er slechts een per keer actief zijn.",
+ "LabelActiveServiceHelp": "Er kunnen meerdere tv Invoegtoepassingen worden ge\u00efnstalleerd, maar er kan er slechts een per keer actief zijn.",
"OptionAutomatic": "Automatisch",
- "LiveTvPluginRequired": "Een Live TV service provider plug-in is vereist om door te gaan.",
- "LiveTvPluginRequiredHelp": "Installeer a.u b een van onze beschikbare plug-ins, zoals Next PVR of ServerWmc.",
+ "LiveTvPluginRequired": "Een Live TV service provider Invoegtoepassing is vereist om door te gaan.",
+ "LiveTvPluginRequiredHelp": "Installeer a.u b een van onze beschikbare Invoegtoepassingen, zoals Next PVR of ServerWmc.",
"LabelCustomizeOptionsPerMediaType": "Aanpassen voor mediatype",
"OptionDownloadThumbImage": "Miniatuur",
"OptionDownloadMenuImage": "Menu",
@@ -576,9 +577,9 @@
"HeaderNotificationList": "Klik op een melding om de opties voor het versturen ervan te configureren .",
"NotificationOptionApplicationUpdateAvailable": "Programma-update beschikbaar",
"NotificationOptionApplicationUpdateInstalled": "Programma-update ge\u00efnstalleerd",
- "NotificationOptionPluginUpdateInstalled": "Plugin-update ge\u00efnstalleerd",
- "NotificationOptionPluginInstalled": "Plugin ge\u00efnstalleerd",
- "NotificationOptionPluginUninstalled": "Plugin verwijderd",
+ "NotificationOptionPluginUpdateInstalled": "Invoegtoepassings-update ge\u00efnstalleerd",
+ "NotificationOptionPluginInstalled": "Invoegtoepassing ge\u00efnstalleerd",
+ "NotificationOptionPluginUninstalled": "Invoegtoepassing verwijderd",
"NotificationOptionVideoPlayback": "Video afspelen gestart",
"NotificationOptionAudioPlayback": "Audio afspelen gestart",
"NotificationOptionGamePlayback": "Game gestart",
@@ -589,7 +590,7 @@
"NotificationOptionInstallationFailed": "Mislukken van de installatie",
"NotificationOptionNewLibraryContent": "Nieuwe content toegevoegd",
"NotificationOptionNewLibraryContentMultiple": "Nieuwe content toegevoegd (meerdere)",
- "SendNotificationHelp": "Meldingen worden geplaatst in de inbox op het dashboard. Blader door de Plug-ins catalogus om aanvullende opties voor meldingen te installeren.",
+ "SendNotificationHelp": "Meldingen worden geplaatst in de inbox op het dashboard. Blader door de Invoegtoepassings catalogus om aanvullende opties voor meldingen te installeren.",
"NotificationOptionServerRestartRequired": "Server herstart nodig",
"LabelNotificationEnabled": "Deze melding inschakelen",
"LabelMonitorUsers": "Monitor activiteit van:",
@@ -599,10 +600,10 @@
"CategoryUser": "Gebruiker",
"CategorySystem": "Systeem",
"CategoryApplication": "Toepassing",
- "CategoryPlugin": "Plug-in",
+ "CategoryPlugin": "Invoegtoepassing",
"LabelMessageTitle": "Titel van het bericht:",
"LabelAvailableTokens": "Beschikbaar tokens:",
- "AdditionalNotificationServices": "Blader door de plug-in catalogus om aanvullende meldingsdiensten te installeren.",
+ "AdditionalNotificationServices": "Blader door de Invoegtoepassings catalogus om aanvullende meldingsdiensten te installeren.",
"OptionAllUsers": "Alle gebruikers",
"OptionAdminUsers": "Beheerders",
"OptionCustomUsers": "Aangepast",
@@ -626,17 +627,17 @@
"TabNowPlaying": "Wordt nu afgespeeld",
"TabNavigation": "Navigatie",
"TabControls": "Besturing",
- "ButtonFullscreen": "Volledig scherm in-\/uitschakelen",
+ "ButtonFullscreen": "Schakelen tussen volledig scherm ",
"ButtonScenes": "Scenes",
"ButtonSubtitles": "Ondertitels",
"ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Vorig nummer",
- "ButtonNextTrack": "Volgend nummer",
+ "ButtonPreviousTrack": "Vorige track",
+ "ButtonNextTrack": "Volgende track",
"ButtonStop": "Stop",
"ButtonPause": "Pauze",
"LabelGroupMoviesIntoCollections": "Groepeer films in verzamelingen",
"LabelGroupMoviesIntoCollectionsHelp": "Bij de weergave van film lijsten, zullen films die behoren tot een verzameling worden weergegeven als een gegroepeerd object.",
- "NotificationOptionPluginError": "Plug-in fout",
+ "NotificationOptionPluginError": "Invoegtoepassings fout",
"ButtonVolumeUp": "Volume omhoog",
"ButtonVolumeDown": "Volume omlaag",
"ButtonMute": "Dempen",
@@ -722,7 +723,7 @@
"OptionReportByteRangeSeekingWhenTranscodingHelp": "Dit is vereist voor bepaalde apparaten die zo goed op tijd zoeken.",
"HeaderSubtitleDownloadingHelp": "Bij het scannen van uw videobestanden kan Media Browser naar ontbrekende ondertiteling zoeken en deze downloaden bij ondertiteling providers zoals OpenSubtitles.org.",
"HeaderDownloadSubtitlesFor": "Download ondertiteling voor:",
- "MessageNoChapterProviders": "Installeer een hoofdstuk provider plug-in zoals ChapterDb of tagChimp om extra hoofdstuk opties in te schakelen.",
+ "MessageNoChapterProviders": "Installeer een hoofdstuk provider Invoegtoepassing zoals ChapterDb om extra hoofdstuk opties in te schakelen.",
"LabelSkipIfGraphicalSubsPresent": "Overslaan als de video al grafische ondertitels bevat",
"LabelSkipIfGraphicalSubsPresentHelp": "Tekstversies houden van ondertitels zal resulteren in meer effici\u00ebnte levering aan mobiele clients.",
"TabSubtitles": "Ondertiteling",
@@ -730,7 +731,7 @@
"HeaderDownloadChaptersFor": "Download hoofdstuk namen voor:",
"LabelOpenSubtitlesUsername": "Gebruikersnaam Open Subtitles:",
"LabelOpenSubtitlesPassword": "Wachtwoord Open Subtitles:",
- "HeaderChapterDownloadingHelp": "Wanneer Media Browser uw videobestanden scant kan het gebruiksvriendelijke namen voor hoofdstukken downloaden van het internet met behulp van hoofdstuk plug-ins zoals ChapterDb en tagChimp.",
+ "HeaderChapterDownloadingHelp": "Wanneer Media Browser uw videobestanden scant kan het gebruiksvriendelijke namen voor hoofdstukken downloaden van het internet met behulp van hoofdstuk Invoegtoepassing zoals ChapterDb.",
"LabelPlayDefaultAudioTrack": "Speel standaard audio spoor ongeacht taal",
"LabelSubtitlePlaybackMode": "Ondertitelingsmode:",
"LabelDownloadLanguages": "Download talen:",
@@ -740,8 +741,8 @@
"HeaderSendMessage": "Stuur bericht",
"ButtonSend": "Stuur",
"LabelMessageText": "Bericht tekst:",
- "MessageNoAvailablePlugins": "Geen beschikbare plugins.",
- "LabelDisplayPluginsFor": "Toon plugins voor:",
+ "MessageNoAvailablePlugins": "Geen beschikbare Invoegtoepassingen.",
+ "LabelDisplayPluginsFor": "Toon Invoegtoepassingen voor:",
"PluginTabMediaBrowserClassic": "MB Classic",
"PluginTabMediaBrowserTheater": "MB Theater",
"LabelEpisodeName": "Naam aflevering",
@@ -802,7 +803,7 @@
"LabelChannelDownloadPathHelp": "Geef een eigen download pad op als dit gewenst is, leeglaten voor dowloaden naar de interne program data map.",
"LabelChannelDownloadAge": "Verwijder inhoud na: (dagen)",
"LabelChannelDownloadAgeHelp": "Gedownloade inhoud die ouder is zal worden verwijderd. Afspelen via internet streaming blijft mogelijk.",
- "ChannelSettingsFormHelp": "Installeer kanalen zoals Trailers en Vimeo in de plug-in catalogus.",
+ "ChannelSettingsFormHelp": "Installeer kanalen zoals Trailers en Vimeo in de Invoegtoepassings catalogus.",
"LabelSelectCollection": "Selecteer verzameling:",
"ViewTypeMovies": "Films",
"ViewTypeTvShows": "TV",
@@ -844,7 +845,7 @@
"HeaderBrandingHelp": "Pas het uiterlijk van Media Browser aan, aan de behoeften van uw groep of organisatie.",
"LabelLoginDisclaimer": "Aanmeld vrijwaring:",
"LabelLoginDisclaimerHelp": "Dit wordt onderaan de login pagina weergegeven.",
- "LabelAutomaticallyDonate": "Doneer dit bedrag automatisch per maand",
+ "LabelAutomaticallyDonate": "Doneer dit bedrag automatisch elke zes maanden",
"LabelAutomaticallyDonateHelp": "U kunt dit via uw PayPal account op elk moment annuleren.",
"OptionList": "Lijst",
"TabDashboard": "Dashboard",
@@ -874,5 +875,18 @@
"LabelMatchType": "Type overeenkomst:",
"OptionEquals": "Is gelijk aan",
"OptionRegex": "Regex",
- "OptionSubstring": "Subtekenreeks"
+ "OptionSubstring": "Subtekenreeks",
+ "TabView": "Weergave",
+ "TabSort": "Sorteren",
+ "TabFilter": "Filter",
+ "ButtonView": "Weergave",
+ "LabelPageSize": "Schermgrootte:",
+ "LabelView": "Weergave:",
+ "TabUsers": "Gebruikers",
+ "HeaderFeatures": "Functies",
+ "HeaderAdvanced": "Geavanceerd",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Geplande taken",
+ "HeaderChapters": "Hoofdstukken",
+ "HeaderResumeSettings": "Resume Settings"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pl.json b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
index 43444b689..3032f71f0 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Status",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Niedziela",
"OptionMonday": "Poniedzia\u0142ek",
"OptionTuesday": "Wtorek",
@@ -198,7 +198,8 @@
"OptionThursday": "Czwartek",
"OptionFriday": "Pi\u0105tek",
"OptionSaturday": "Sobota",
- "HeaderManagement": "Management:",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Brakuje Id IMDb",
"OptionMissingTvdbId": "Brakuje Id TheTVDB",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "Wybierz folder",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 e60c7b3c3..a80d352b9 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
@@ -199,6 +199,7 @@
"OptionFriday": "Sexta-feira",
"OptionSaturday": "S\u00e1bado",
"HeaderManagement": "Gerenciamento:",
+ "LabelManagement": "Administra\u00e7\u00e3o:",
"OptionMissingImdbId": "Faltando Id IMDb",
"OptionMissingTvdbId": "Faltando Id TheTVDB",
"OptionMissingOverview": "Faltando Sinopse",
@@ -626,12 +627,12 @@
"TabNowPlaying": "Reproduzindo Agora",
"TabNavigation": "Navega\u00e7\u00e3o",
"TabControls": "Controles",
- "ButtonFullscreen": "Alternar tela cheia",
+ "ButtonFullscreen": "Alternar para tela cheia",
"ButtonScenes": "Cenas",
"ButtonSubtitles": "Legendas",
"ButtonAudioTracks": "Faixas de \u00e1udio",
- "ButtonPreviousTrack": "Faixa Anterior",
- "ButtonNextTrack": "Pr\u00f3xima Faixa",
+ "ButtonPreviousTrack": "Faixa anterior",
+ "ButtonNextTrack": "Pr\u00f3xima faixa",
"ButtonStop": "Parar",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Agrupar filmes nas cole\u00e7\u00f5es",
@@ -874,5 +875,18 @@
"LabelMatchType": "Tipo de correspond\u00eancia",
"OptionEquals": "Igual",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "Visualizar",
+ "TabSort": "Ordenar",
+ "TabFilter": "Filtro",
+ "ButtonView": "Visualizar",
+ "LabelPageSize": "Tamanho de exibi\u00e7\u00e3o:",
+ "LabelView": "Visualizar:",
+ "TabUsers": "Usu\u00e1rios",
+ "HeaderFeatures": "Inclui",
+ "HeaderAdvanced": "Avan\u00e7ado",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Tarefas Agendadas",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 c53ecd9d8..83e82070a 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
@@ -199,6 +199,7 @@
"OptionFriday": "Sexta",
"OptionSaturday": "S\u00e1bado",
"HeaderManagement": "Gest\u00e3o:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Id do IMDb em falta",
"OptionMissingTvdbId": "iD do TheTVDB em falta",
"OptionMissingOverview": "Descri\u00e7\u00e3o em falta",
@@ -479,10 +480,10 @@
"HeaderProgram": "Programa",
"HeaderClients": "Clientes",
"LabelCompleted": "Terminado",
- "LabelFailed": "Falhou",
+ "LabelFailed": "Failed",
"LabelSkipped": "Ignorado",
"HeaderEpisodeOrganization": "Organiza\u00e7\u00e3o dos Epis\u00f3dios",
- "LabelSeries": "S\u00e9rie:",
+ "LabelSeries": "Series:",
"LabelSeasonNumber": "N\u00famero da temporada",
"LabelEpisodeNumber": "N\u00famero do epis\u00f3dio",
"LabelEndingEpisodeNumber": "N\u00famero do epis\u00f3dio final",
@@ -629,9 +630,9 @@
"ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Cenas",
"ButtonSubtitles": "Legendas",
- "ButtonAudioTracks": "Faixas de \u00e1udio",
- "ButtonPreviousTrack": "Faixa Anterior",
- "ButtonNextTrack": "Pr\u00f3xima Faixa",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
"ButtonStop": "Parar",
"ButtonPause": "Pausar",
"LabelGroupMoviesIntoCollections": "Group movies into collections",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 7d9e83cbc..abdb98e97 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
@@ -19,13 +19,13 @@
"ThisWizardWillGuideYou": "\u042d\u0442\u043e\u0442 \u043f\u043e\u043c\u043e\u0449\u043d\u0438\u043a \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u0442 \u0447\u0435\u0440\u0435\u0437 \u0432\u0441\u0435 \u0444\u0430\u0437\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u044f\u0437\u044b\u043a.",
"TellUsAboutYourself": "\u0420\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u043e \u0441\u0435\u0431\u0435",
"LabelYourFirstName": "\u0412\u0430\u0448\u0435 \u0438\u043c\u044f:",
- "MoreUsersCanBeAddedLater": "\u041f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0451 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u041f\u0430\u043d\u0435\u043b\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.",
+ "MoreUsersCanBeAddedLater": "\u041f\u043e\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0449\u0451 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0447\u0435\u0440\u0435\u0437 \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c.",
"UserProfilesIntro": "\u0412 Media Browser \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\u043c.",
"LabelWindowsService": "\u0421\u043b\u0443\u0436\u0431\u0430 Windows",
"AWindowsServiceHasBeenInstalled": "\u0421\u043b\u0443\u0436\u0431\u0430 Windows \u0431\u044b\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430.",
"WindowsServiceIntro1": "\u041e\u0431\u044b\u0447\u043d\u043e Media Browser Server \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u043e\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u043b\u043e\u0442\u043a\u0435, \u043d\u043e \u043f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0431\u0430\u043c\u0438 Windows.",
"WindowsServiceIntro2": "\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u0443\u0436\u0431\u0430 Windows, \u043f\u0440\u0438\u043c\u0438\u0442\u0435 \u043a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e, \u0447\u0442\u043e \u043e\u043d\u0430 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441\u043e \u0437\u043d\u0430\u0447\u043a\u043e\u043c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u043b\u043e\u0442\u043a\u0435, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0437\u043d\u0430\u0447\u043e\u043a \u0432 \u043b\u043e\u0442\u043a\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443. \u0421\u043b\u0443\u0436\u0431\u0443 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043e\u0431\u043b\u0430\u0434\u0430\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u0430\u0432\u0430\u043c\u0438, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0432 \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043b\u0443\u0436\u0431\u0435 \u043d\u0435 \u0443\u0434\u0430\u0451\u0442\u0441\u044f \u0441\u0430\u043c\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u043e\u0432\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u0430\u0448\u0435 \u0432\u043c\u0435\u0448\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u043e.",
- "WizardCompleted": "\u042d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. Media Browser \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0438 \u0442\u043e\u0433\u0434\u0430 \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 <b>\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c<\/b>, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 <b>\u041f\u0430\u043d\u0435\u043b\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430<\/b>.",
+ "WizardCompleted": "\u042d\u0442\u043e \u0432\u0441\u0451, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442. Media Browser \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u0431\u043e\u0440 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435. \u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0438 \u0442\u043e\u0433\u0434\u0430 \u0449\u0451\u043b\u043a\u043d\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 <b>\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c<\/b>, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 <b>\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c<\/b>.",
"LabelConfigureSettings": "\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432",
"LabelEnableVideoImageExtraction": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0430 \u0438\u0437 \u0432\u0438\u0434\u0435\u043e",
"VideoImageExtractionHelp": "\u0414\u043b\u044f \u0432\u0438\u0434\u0435\u043e, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0451 \u200b\u200b\u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043e\u0431\u043b\u043e\u0436\u043a\u0438, \u0438 \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0442\u0430\u043a\u043e\u0432\u044b\u0445. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u0441\u044f \u0435\u0449\u0451 \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e\u0435 \u0434\u043b\u044f \u0433\u043b\u0430\u0437 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445.",
@@ -122,8 +122,8 @@
"TabAlbumArtists": "\u0410\u043b\u044c\u0431\u043e\u043c\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
"TabMusicVideos": "\u041a\u043b\u0438\u043f\u044b",
"ButtonSort": "\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
- "HeaderSortBy": "\u041f\u043e \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u044e:",
- "HeaderSortOrder": "\u041f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443:",
+ "HeaderSortBy": "\u041a\u0440\u0438\u0442\u0435\u0440\u0438\u0439:",
+ "HeaderSortOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a:",
"OptionPlayed": "\u0412\u043e\u0441\u043f\u0440-\u043d\u043d\u044b\u0435",
"OptionUnplayed": "\u041d\u0435 \u0432\u043e\u0441\u043f\u0440-\u043d\u043d\u044b\u0435",
"OptionAscending": "\u0412\u043e\u0437\u0440\u0430\u0441\u0442\u0430\u043d\u0438\u0435",
@@ -167,7 +167,7 @@
"OptionDvd": "DVD",
"OptionIso": "ISO",
"Option3D": "3D",
- "LabelFeatures": "\u0414\u043b\u044f \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432:",
+ "LabelFeatures": "\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b:",
"LabelService": "\u0421\u043b\u0443\u0436\u0431\u0430:",
"LabelStatus": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435:",
"LabelVersion": "\u0412\u0435\u0440\u0441\u0438\u044f:",
@@ -185,12 +185,12 @@
"OptionImdbRating": "\u041e\u0446\u0435\u043d\u043a\u0430 IMDb",
"OptionParentalRating": "\u0412\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
"OptionPremiereDate": "\u0414\u0430\u0442\u0430 \u043f\u0440\u0435\u043c\u044c\u0435\u0440\u044b",
- "TabBasic": "\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435",
- "TabAdvanced": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435",
+ "TabBasic": "\u041e\u0441\u043d\u043e\u0432\u044b",
+ "TabAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e",
"HeaderStatus": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435",
"OptionContinuing": "\u041f\u0440\u043e\u0434\u043b\u0435\u043d\u043e",
"OptionEnded": "\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u043e",
- "HeaderAirDays": "\u0414\u043d\u0438 \u044d\u0444\u0438\u0440\u0430:",
+ "HeaderAirDays": "\u0414\u043d\u0438 \u044d\u0444\u0438\u0440\u0430",
"OptionSunday": "\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
"OptionMonday": "\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a",
"OptionTuesday": "\u0432\u0442\u043e\u0440\u043d\u0438\u043a",
@@ -198,7 +198,8 @@
"OptionThursday": "\u0447\u0435\u0442\u0432\u0435\u0440\u0433",
"OptionFriday": "\u043f\u044f\u0442\u043d\u0438\u0446\u0430",
"OptionSaturday": "\u0441\u0443\u0431\u0431\u043e\u0442\u0430",
- "HeaderManagement": "\u0414\u043b\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445:",
+ "HeaderManagement": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435",
+ "LabelManagement": "\u041c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435",
"OptionMissingImdbId": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d IMDb Id",
"OptionMissingTvdbId": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d TheTVDB Id",
"OptionMissingOverview": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e \u043e\u0431\u043e\u0437\u0440\u0435\u043d\u0438\u0435",
@@ -209,12 +210,12 @@
"TabAbout": "\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435",
"TabSupporterKey": "\u041a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430",
"TabBecomeSupporter": "\u0421\u0442\u0430\u0442\u044c \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u043e\u043c",
- "MediaBrowserHasCommunity": "Media Browser \u0438\u043c\u0435\u0435\u0442 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430.",
- "CheckoutKnowledgeBase": "\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0411\u0430\u0437\u043e\u0439 \u0437\u043d\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u043f\u043e\u043c\u043e\u0449\u0438 \u043f\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u0434\u0430\u0447\u0438 \u043e\u0442 Media Browser.",
+ "MediaBrowserHasCommunity": "\u0423 Media Browser - \u0440\u0430\u0441\u0442\u0443\u0449\u0435\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432.",
+ "CheckoutKnowledgeBase": "\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441 \u0411\u0430\u0437\u043e\u0439 \u0437\u043d\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0441\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u0442\u0434\u0430\u0447\u0438 \u043e\u0442 Media Browser.",
"SearchKnowledgeBase": "\u0418\u0441\u043a\u0430\u0442\u044c \u0432 \u0411\u0430\u0437\u0435 \u0437\u043d\u0430\u043d\u0438\u0439",
"VisitTheCommunity": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u044c \u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e",
"VisitMediaBrowserWebsite": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u044c \u0441\u0430\u0439\u0442 Media Browser",
- "VisitMediaBrowserWebsiteLong": "\u041f\u043e\u0441\u0435\u0449\u0430\u0439\u0442\u0435 \u0441\u0430\u0439\u0442 Media Browser, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043f\u0435\u0432\u0430\u0442\u044c \u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u043b\u043e\u0433 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.",
+ "VisitMediaBrowserWebsiteLong": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 \u0441\u0430\u0439\u0442 Media Browser, \u0447\u0442\u043e\u0431\u044b \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u0447\u0438\u0442\u0430\u0442\u044c \u0431\u043b\u043e\u0433\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.",
"OptionHideUser": "\u0421\u043a\u0440\u044b\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u044d\u043a\u0440\u0430\u043d\u043e\u0432 \u0432\u0445\u043e\u0434\u0430",
"OptionDisableUser": "\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f",
"OptionDisableUserHelp": "\u041f\u0440\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0440\u0435\u0437\u043a\u043e \u043e\u0431\u043e\u0440\u0432\u0430\u043d\u044b.",
@@ -237,13 +238,13 @@
"ButtonAddToCollection": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438",
"PismoMessage": "Pismo File Mount \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u0434\u0430\u0440\u0435\u043d\u043d\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438.",
"TangibleSoftwareMessage": "Tangible Solutions Java\/C# \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u0434\u0430\u0440\u0435\u043d\u043d\u043e\u0439 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438.",
- "HeaderCredits": "\u0412\u043d\u0451\u0441\u0448\u0438\u0435 \u0432\u043a\u043b\u0430\u0434",
+ "HeaderCredits": "\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438",
"PleaseSupportOtherProduces": "\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \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 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c:",
"VersionNumber": "\u0412\u0435\u0440\u0441\u0438\u044f {0}",
"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": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b",
+ "TitleAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e",
"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",
@@ -254,15 +255,15 @@
"LabelRunServerAtStartup": "\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b",
"LabelRunServerAtStartupHelp": "\u0417\u043d\u0430\u0447\u043e\u043a \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u043b\u043e\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0442\u0430\u0440\u0442\u0430 Windows. \u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443 Windows, \u0443\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0441\u043b\u0443\u0436\u0431\u0443 \u0438\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f Windows. \u041f\u0440\u0438\u043c\u0438\u0442\u0435 \u043a \u0441\u0432\u0435\u0434\u0435\u043d\u0438\u044e, \u0447\u0442\u043e \u043e\u043d\u0438 \u043e\u0431\u0430 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u043e\u043a \u0432 \u043b\u043e\u0442\u043a\u0435 \u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043b\u0443\u0436\u0431\u044b.",
"ButtonSelectDirectory": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u0430\u0442\u0430\u043b\u043e\u0433",
- "LabelCustomPaths": "\u041d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u043f\u0443\u0442\u0438 \u0442\u0443\u0434\u0430, \u043a\u0443\u0434\u0430 \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043f\u043e\u043b\u044f \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.",
+ "LabelCustomPaths": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043f\u0443\u0442\u0438 \u043f\u043e \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c. \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u043f\u043e\u043b\u044f \u043f\u0443\u0441\u0442\u044b\u043c\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.",
"LabelCachePath": "\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 Cache:",
- "LabelCachePathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0444\u0430\u0439\u043b\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0438\u0441\u0443\u043d\u043a\u0438.",
+ "LabelCachePathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u044d\u0448\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432.",
"LabelImagesByNamePath": "\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 Images by name:",
- "LabelImagesByNamePathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0430\u043a\u0442\u0451\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439 \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u0441\u0442\u0443\u0434\u0438\u0439.",
+ "LabelImagesByNamePathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0430\u043a\u0442\u0451\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439, \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u0441\u0442\u0443\u0434\u0438\u0439.",
"LabelMetadataPath": "\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 Metadata:",
- "LabelMetadataPathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0435 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0435 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0432 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0430\u0445.",
+ "LabelMetadataPathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0430\u0445.",
"LabelTranscodingTempPath": "\u041f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 Transcoding temporary:",
- "LabelTranscodingTempPathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435. \u041d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u043f\u0443\u0442\u044c, \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043f\u0430\u043f\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
+ "LabelTranscodingTempPathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u043f\u0430\u043f\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
"TabBasics": "\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435",
"TabTV": "\u0422\u0412",
"TabGames": "\u0418\u0433\u0440\u044b",
@@ -276,9 +277,9 @@
"LabelAutomaticUpdatesFanart": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441 FanArt.tv",
"LabelAutomaticUpdatesTmdb": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441 TheMovieDB.org",
"LabelAutomaticUpdatesTvdb": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441 TheTVDB.com",
- "LabelAutomaticUpdatesFanartHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 fanart.tv. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
- "LabelAutomaticUpdatesTmdbHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 TheMovieDB.org. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
- "LabelAutomaticUpdatesTvdbHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 TheTVDB.com. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
+ "LabelAutomaticUpdatesFanartHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 fanart.tv. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
+ "LabelAutomaticUpdatesTmdbHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 TheMovieDB.org. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
+ "LabelAutomaticUpdatesTvdbHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043d\u043e\u0432\u044b\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0441\u0440\u0430\u0437\u0443 \u043f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 TheTVDB.com. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043c\u0435\u0449\u0430\u0442\u044c\u0441\u044f.",
"ExtractChapterImagesHelp": "\u0418\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0441\u0446\u0435\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u043e\u0440\u0430 \u0441\u0446\u0435\u043d\u044b. \u0414\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c, \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430. \u041e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 4:00 \u0443\u0442\u0440\u0430, \u0420\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0430. \u041d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432 \u0447\u0430\u0441\u044b \u043f\u0438\u043a.",
"LabelMetadataDownloadLanguage": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445:",
"ButtonAutoScroll": "\u0410\u0432\u0442\u043e\u043f\u0440\u043e\u043a\u0440\u0443\u0442\u043a\u0430",
@@ -336,7 +337,7 @@
"OptionAutomatic": "\u0410\u0432\u0442\u043e",
"LiveTvPluginRequired": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043b\u0430\u0433\u0438\u043d-\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0443\u0441\u043b\u0443\u0433 \u044d\u0444\u0438\u0440\u043d\u043e\u0433\u043e \u0422\u0412 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f.",
"LiveTvPluginRequiredHelp": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043e\u0434\u0438\u043d \u0438\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, NextPVR \u0438\u043b\u0438 ServerWMC.",
- "LabelCustomizeOptionsPerMediaType": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u0442\u0438\u043f\u0443 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f:",
+ "LabelCustomizeOptionsPerMediaType": "\u041f\u043e\u0434\u0433\u043e\u043d\u043a\u0430 \u043f\u043e \u0442\u0438\u043f\u0443 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f:",
"OptionDownloadThumbImage": "\u0411\u0435\u0433\u0443\u043d\u043e\u043a",
"OptionDownloadMenuImage": "\u041c\u0435\u043d\u044e",
"OptionDownloadLogoImage": "\u041b\u043e\u0433\u043e\u0442\u0438\u043f",
@@ -410,7 +411,7 @@
"OptionSpecialEpisode": "\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435",
"OptionMissingEpisode": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d. \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
"OptionUnairedEpisode": "\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
- "OptionEpisodeSortName": "\u0418\u043c\u044f \u0441\u043e\u0440\u0442-\u043a\u0438 \u044d\u043f\u0438\u0437\u043e\u0434\u0430",
+ "OptionEpisodeSortName": "\u0421\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u043d\u0430\u0437\u0432-\u0438\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u0430",
"OptionSeriesSortName": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u0430",
"OptionTvdbRating": "\u041e\u0446\u0435\u043d\u043a\u0430 TVDb",
"HeaderTranscodingQualityPreference": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:",
@@ -427,19 +428,19 @@
"OptionUpscalingHelp": "\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0451\u0442 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u0432\u0438\u0434\u0435\u043e, \u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u0441\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440.",
"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 DLNA-\u0440\u0435\u0436\u0438\u043c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445",
+ "LabelEnableDlnaPlayTo": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e DLNA \u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u041d\u0430",
"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",
"LabelEnableDlnaClientDiscoveryIntervalHelp": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438 SSDP \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c\u0438 Media Browser.",
- "HeaderCustomDlnaProfiles": "\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438",
+ "HeaderCustomDlnaProfiles": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438",
"HeaderSystemDlnaProfiles": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438",
- "CustomDlnaProfilesHelp": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c.",
- "SystemDlnaProfilesHelp": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u043d\u043e\u0432\u043e\u043c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435.",
- "TitleDashboard": "\u041f\u0430\u043d\u0435\u043b\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430",
+ "CustomDlnaProfilesHelp": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c.",
+ "SystemDlnaProfilesHelp": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u043d\u043e\u0432\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435.",
+ "TitleDashboard": "\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c",
"TabHome": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f",
- "TabInfo": "\u0418\u043d\u0444\u043e",
+ "TabInfo": "\u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
"HeaderLinks": "\u0421\u0441\u044b\u043b\u043a\u0438",
"HeaderSystemPaths": "\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u043f\u0443\u0442\u0438",
"LinkCommunity": "\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e",
@@ -479,7 +480,7 @@
"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 \u0432\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:",
@@ -552,7 +553,7 @@
"MessageInvalidKey": "\u041a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043b\u0438 \u043d\u0435\u0432\u0435\u0440\u0435\u043d",
"ErrorMessageInvalidKey": "\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u043f\u0440\u0435\u043c\u0438\u0443\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435, \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u043e\u043c Media Browser. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0440\u0441\u0442\u0432\u0443\u0439\u0442\u0435 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e\u0449\u0435\u0435\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0432\u0430\u0441.",
"HeaderDisplaySettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
- "TabPlayTo": " \u0412\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",
+ "TabPlayTo": "\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u041d\u0430",
"LabelEnableDlnaServer": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c DLNA-\u0441\u0435\u0440\u0432\u0435\u0440",
"LabelEnableDlnaServerHelp": "\u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 UPnP-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u043c \u0432 \u0441\u0435\u0442\u0438 \u043e\u0431\u0437\u043e\u0440 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f Media Browser.",
"LabelEnableBlastAliveMessages": "\u0423\u0447\u0430\u0449\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438",
@@ -561,7 +562,7 @@
"LabelBlastMessageIntervalHelp": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
"LabelDefaultUser": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e",
"LabelDefaultUserHelp": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u044c\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445. \u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439.",
- "TitleDlna": "DLNA-\u0440\u0435\u0436\u0438\u043c",
+ "TitleDlna": "DLNA \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f",
"TitleChannels": "\u041a\u0430\u043d\u0430\u043b\u044b",
"HeaderServerSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0441\u0435\u0440\u0432\u0435\u0440\u0430",
"LabelWeatherDisplayLocation": "\u041f\u043e\u0433\u043e\u0434\u0430 \u0434\u043b\u044f \u043c\u0435\u0441\u0442\u043d\u043e\u0441\u0442\u0438:",
@@ -589,7 +590,7 @@
"NotificationOptionInstallationFailed": "\u0421\u0431\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438",
"NotificationOptionNewLibraryContent": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e",
"NotificationOptionNewLibraryContentMultiple": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e (\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e)",
- "SendNotificationHelp": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u044f\u0449\u0438\u043a \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.",
+ "SendNotificationHelp": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u044f\u0449\u0438\u043a \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438. \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.",
"NotificationOptionServerRestartRequired": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0430",
"LabelNotificationEnabled": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435",
"LabelMonitorUsers": "\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u0442:",
@@ -605,7 +606,7 @@
"AdditionalNotificationServices": "\u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.",
"OptionAllUsers": "\u0412\u0441\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438",
"OptionAdminUsers": "\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b",
- "OptionCustomUsers": "\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435",
+ "OptionCustomUsers": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435",
"ButtonArrowUp": "\u0412\u0432\u0435\u0440\u0445",
"ButtonArrowDown": "\u0412\u043d\u0438\u0437",
"ButtonArrowLeft": "\u0412\u043b\u0435\u0432\u043e",
@@ -629,7 +630,7 @@
"ButtonFullscreen": "\u041f\u043e\u043b\u043d\u044b\u0439 \u044d\u043a\u0440\u0430\u043d",
"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",
+ "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": "\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c",
@@ -662,7 +663,7 @@
"OptionProfileVideoAudio": "\u0412\u0438\u0434\u0435\u043e \u0410\u0443\u0434\u0438\u043e",
"OptionProfilePhoto": "\u0424\u043e\u0442\u043e",
"LabelUserLibrary": "\u041c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:",
- "LabelUserLibraryHelp": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u0447\u044c\u044e \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0443 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.",
+ "LabelUserLibraryHelp": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u0447\u044c\u044e \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0443 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.",
"OptionPlainStorageFolders": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u043f\u0430\u043f\u043a\u0438, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u043f\u0430\u043f\u043a\u0438 \u0445\u0440\u0430\u043d\u0438\u0435\u043d\u0438\u044f",
"OptionPlainStorageFoldersHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0432\u0441\u0435 \u043f\u0430\u043f\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 DIDL \u043a\u0430\u043a \"object.container.storageFolder\", \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \"object.container.person.musicArtist\".",
"OptionPlainVideoItems": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0432\u0441\u0435 \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u044b, \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0432\u0438\u0434\u0435\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b",
@@ -673,7 +674,7 @@
"TabContainers": "\u041a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b",
"TabCodecs": "\u041a\u043e\u0434\u0435\u043a\u0438",
"TabResponses": "\u041e\u0442\u043a\u043b\u0438\u043a\u0438",
- "HeaderProfileInformation": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0435",
+ "HeaderProfileInformation": "\u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0435",
"LabelEmbedAlbumArtDidl": "\u0412\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u0430\u043b\u044c\u0431\u043e\u043c\u0430 \u0432 DIDL",
"LabelEmbedAlbumArtDidlHelp": "\u0414\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. \u0414\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0436\u0435, \u043f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0443\u0434\u0430\u0441\u0442\u0441\u044f.",
"LabelAlbumArtPN": "PN \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0430\u043b\u044c\u0431\u043e\u043c\u0430",
@@ -687,7 +688,7 @@
"LabelIconMaxHeight": "\u041c\u0430\u043a\u0441. \u0432\u044b\u0441\u043e\u0442\u0430 \u0437\u043d\u0430\u0447\u043a\u0430:",
"LabelIconMaxHeightHelp": "\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u043a\u043e\u0432 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 upnp:icon.",
"LabelIdentificationFieldHelp": "\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430 \u0431\u0435\u0437 \u0443\u0447\u0451\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430, \u043b\u0438\u0431\u043e \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435.",
- "HeaderProfileServerSettingsHelp": "\u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442, \u043a\u0430\u043a Media Browser \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0435\u0431\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.",
+ "HeaderProfileServerSettingsHelp": "\u042d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442, \u043a\u0430\u043a Media Browser \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.",
"LabelMaxBitrate": "\u041c\u0430\u043a\u0441. \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c:",
"LabelMaxBitrateHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432 \u0441\u0440\u0435\u0434\u0430\u0445 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e, \u043b\u0438\u0431\u043e \u0435\u0441\u043b\u0438 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043d\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0451 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435.",
"OptionIgnoreTranscodeByteRangeRequests": "\u0418\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0431\u0430\u0439\u0442\u043e\u0432 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438",
@@ -704,7 +705,7 @@
"HeaderIdentificationCriteriaHelp": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u0434\u0438\u043d \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u0440\u0438\u0442\u0435\u0440\u0438\u0439.",
"HeaderDirectPlayProfileHelp": "\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e.",
"HeaderTranscodingProfileHelp": "\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430.",
- "HeaderResponseProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u0438\u043a\u043e\u0432 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c\u043e\u0439 \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439.",
+ "HeaderResponseProfileHelp": "\u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u043e\u0442\u043a\u043b\u0438\u043a\u043e\u0432 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u043f\u043e\u0434\u043e\u0433\u043d\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c\u0443\u044e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0438\u0434\u043e\u0432 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439.",
"LabelXDlnaCap": "\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430 X-Dlna:",
"LabelXDlnaCapHelp": "\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 X_DLNACAP \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u0438\u043c\u0451\u043d urn:schemas-dlna-org:device-1-0",
"LabelXDlnaDoc": "\u0421\u0445\u0435\u043c\u0430 X-Dlna:",
@@ -737,7 +738,7 @@
"ButtonRegister": "\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f",
"LabelSkipIfAudioTrackPresent": "\u041e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0439 \u044f\u0437\u044b\u043a \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u044f\u0437\u044b\u043a\u043e\u043c \u0430\u0443\u0434\u0438\u043e\u0434\u043e\u0440\u043e\u0436\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e",
"LabelSkipIfAudioTrackPresentHelp": "\u0421\u043d\u044f\u0442\u044c \u0444\u043b\u0430\u0436\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e \u0438\u043c\u0435\u043b\u0438\u0441\u044c \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b, \u0432\u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u0430\u0443\u0434\u0438\u043e.",
- "HeaderSendMessage": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435",
+ "HeaderSendMessage": "\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f",
"ButtonSend": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c",
"LabelMessageText": "\u0422\u0435\u043a\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:",
"MessageNoAvailablePlugins": "\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.",
@@ -762,7 +763,7 @@
"LabelEnableThemeSongsHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043c\u0435\u043b\u043e\u0434\u0438\u0438 \u0442\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0444\u043e\u043d\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u0438 \u043e\u0431\u0437\u043e\u0440\u0435 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438.",
"LabelEnableBackdropsHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0437\u0430\u0434\u043d\u0438\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0444\u043e\u043d \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043f\u0440\u0438 \u043e\u0431\u0437\u043e\u0440\u0435 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438.",
"HeaderHomePage": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430",
- "HeaderSettingsForThisDevice": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",
+ "HeaderSettingsForThisDevice": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430",
"OptionAuto": "\u0410\u0432\u0442\u043e",
"OptionYes": "\u0414\u0430",
"OptionNo": "\u041d\u0435\u0442",
@@ -791,18 +792,18 @@
"MessageNoCollectionsAvailable": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0437 \u0444\u0438\u043b\u044c\u043c\u043e\u0432, \u0441\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u0432 \u0438 \u0438\u0433\u0440. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \"\u0421\u043e\u0437\u0434\u0430\u0442\u044c\", \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.",
"HeaderWelcomeToMediaBrowserWebClient": "\u0412\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442 Media Browser \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0430\u0441!",
"ButtonDismiss": "\u0421\u043a\u0440\u044b\u0442\u044c",
- "MessageLearnHowToCustomize": "\u0423\u0437\u043d\u0430\u0439\u0442\u0435, \u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c\u0443 \u0432\u043a\u0443\u0441\u0443. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0432\u0430\u0448\u0443 \u0430\u0432\u0430\u0442\u0430\u0440\u0443 \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.",
+ "MessageLearnHowToCustomize": "\u0418\u0437\u0443\u0447\u0438\u0442\u0435, \u043a\u0430\u043a \u043f\u043e\u0434\u043e\u0433\u043d\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u0432\u043a\u0443\u0441\u0443. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0430\u0432\u0430\u0442\u0430\u0440\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.",
"ButtonEditOtherUserPreferences": "\u041f\u0440\u0430\u0432\u0438\u0442\u044c \u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.",
"LabelChannelStreamQuality": "\u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442:",
"LabelChannelStreamQualityHelp": "\u0412 \u0441\u0440\u0435\u0434\u0435 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u043f\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
"OptionBestAvailableStreamQuality": "\u041d\u0430\u0438\u043b\u0443\u0447\u0448\u0435\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435",
"LabelEnableChannelContentDownloadingFor": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 \u0434\u043b\u044f:",
- "LabelEnableChannelContentDownloadingForHelp": "\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435. \u0412\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u043f\u0440\u0438 \u0441\u0440\u0435\u0434\u0430\u0445 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043e \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432.",
+ "LabelEnableChannelContentDownloadingForHelp": "\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043a\u0430\u043d\u0430\u043b\u0430\u043c\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0434\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. \u0412\u043a\u043b\u044e\u0447\u0430\u0439\u0442\u0435 \u043f\u0440\u0438 \u0441\u0440\u0435\u0434\u0430\u0445 \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u0430 \u0432 \u043d\u0435\u0440\u0430\u0431\u043e\u0447\u0435\u0435 \u0432\u0440\u0435\u043c\u044f. \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432.",
"LabelChannelDownloadPath": "\u041f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u043e\u0432:",
- "LabelChannelDownloadPathHelp": "\u041d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.",
+ "LabelChannelDownloadPathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435, \u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.",
"LabelChannelDownloadAge": "\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437, \u0434\u043d\u0438:",
- "LabelChannelDownloadAgeHelp": "\u0411\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0435\u0435, \u0447\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0435. \u041e\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c\u044b\u043c \u043f\u0440\u0438 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442.",
- "ChannelSettingsFormHelp": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Trailers \u0438 Vimeo.",
+ "LabelChannelDownloadAgeHelp": "\u0411\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0435\u0435, \u0447\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f.",
+ "ChannelSettingsFormHelp": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u0430\u043d\u0430\u043b\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Trailers \u0438 Vimeo) \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.",
"LabelSelectCollection": "\u0412\u044b\u0431\u043e\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438:",
"ViewTypeMovies": "\u041a\u0438\u043d\u043e",
"ViewTypeTvShows": "\u0422\u0412",
@@ -815,7 +816,7 @@
"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 \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\"",
+ "OptionDisplayAdultContent": "\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \"\u0434\u043b\u044f \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0445\"",
"OptionLibraryFolders": "\u041c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0438",
"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",
@@ -830,7 +831,7 @@
"LabelXbmcMetadataSaveImagePaths": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0443\u0442\u0438 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0432 NFO \u0444\u0430\u0439\u043b\u0430\u0445",
"LabelXbmcMetadataSaveImagePathsHelp": "\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u044f\u0449\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c XBMC.",
"LabelXbmcMetadataEnablePathSubstitution": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439",
- "LabelXbmcMetadataEnablePathSubstitutionHelp": "\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043f\u0443\u0442\u0435\u0439 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.",
+ "LabelXbmcMetadataEnablePathSubstitutionHelp": "\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a \u043f\u0443\u0442\u0435\u0439 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.",
"LabelXbmcMetadataEnablePathSubstitutionHelp2": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439.",
"LabelGroupChannelsIntoViews": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u041c\u043e\u0438\u0445 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043a\u0430\u043d\u0430\u043b\u044b:",
"LabelGroupChannelsIntoViewsHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438. \u041f\u0440\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u041a\u0430\u043d\u0430\u043b\u044b.",
@@ -841,13 +842,13 @@
"TabLogs": "\u0416\u0443\u0440\u043d\u0430\u043b\u044b",
"HeaderServerLogFiles": "\u0424\u0430\u0439\u043b\u044b \u0436\u0443\u0440\u043d\u0430\u043b\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430:",
"TabBranding": "\u0411\u0440\u0435\u043d\u0434\u0438\u043d\u0433",
- "HeaderBrandingHelp": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0430 Media Browser \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438.",
+ "HeaderBrandingHelp": "\u041f\u043e\u0434\u0433\u043e\u043d\u043a\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0430 Media Browser \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0432\u0430\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u043b\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438.",
"LabelLoginDisclaimer": "\u041e\u0433\u043e\u0432\u043e\u0440\u043a\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0432\u0445\u043e\u0434\u0430:",
"LabelLoginDisclaimerHelp": "\u042d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043d\u0438\u0436\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u0445\u043e\u0434\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.",
"LabelAutomaticallyDonate": "\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0434\u0430\u0440\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0435 \u0448\u0435\u0441\u0442\u044c \u043c\u0435\u0441\u044f\u0446\u0435\u0432",
"LabelAutomaticallyDonateHelp": "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0435\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u044d\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u044e \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c PayPal.",
"OptionList": "\u0421\u043f\u0438\u0441\u043e\u043a",
- "TabDashboard": "\u041f\u0430\u043d\u0435\u043b\u044c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430",
+ "TabDashboard": "\u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u044c",
"TitleServer": "\u0421\u0435\u0440\u0432\u0435\u0440",
"LabelCache": "Cache:",
"LabelLogs": "Logs:",
@@ -855,7 +856,7 @@
"LabelImagesByName": "Images by name:",
"LabelTranscodingTemporaryFiles": "Transcoding temporary files:",
"HeaderLatestMusic": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043c\u0443\u0437\u044b\u043a\u0438",
- "HeaderBranding": "\u0411\u0440\u0435\u043d\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435",
+ "HeaderBranding": "\u0411\u0440\u0435\u043d\u0434\u0438\u043d\u0433",
"HeaderApiKeys": "\u041a\u043b\u044e\u0447\u0438 API",
"HeaderApiKeysHelp": "\u0412\u043d\u0435\u0448\u043d\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447 API, \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a Media Browser. \u041a\u043b\u044e\u0447\u0438 \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u0441 \u0443\u0447\u0451\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u044c\u044e Media Browser, \u0438\u043b\u0438 \u043a\u043b\u044e\u0447 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e.",
"HeaderApiKey": "\u041a\u043b\u044e\u0447 API",
@@ -867,12 +868,25 @@
"HeaderNewApiKey": "\u041d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 API",
"LabelAppName": "\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f",
"LabelAppNameExample": "\u041f\u0440\u0438\u043c\u0435\u0440: Sickbeard, NzbDrone",
- "HeaderNewApiKeyHelp": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a Media Browser.",
+ "HeaderNewApiKeyHelp": "\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a Media Browser.",
"HeaderHttpHeaders": "HTTP-\u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438",
"HeaderIdentificationHeader": "\u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a",
"LabelValue": "\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435:",
"LabelMatchType": "\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0442\u0438\u043f:",
- "OptionEquals": "\u0420\u0430\u0432\u043d\u044f\u0435\u0442\u0441\u044f",
- "OptionRegex": "\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
- "OptionSubstring": "\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430"
+ "OptionEquals": "\u0420\u0430\u0432\u043d\u043e",
+ "OptionRegex": "\u0420\u0435\u0433. \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435",
+ "OptionSubstring": "\u041f\u043e\u0434\u0441\u0442\u0440\u043e\u043a\u0430",
+ "TabView": "\u0412\u0438\u0434",
+ "TabSort": "\u0421\u043e\u0440\u0442-\u043a\u0430",
+ "TabFilter": "\u0424\u0438\u043b\u044c\u0442\u0440-\u043a\u0430",
+ "ButtonView": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c",
+ "LabelPageSize": "\u041c\u0430\u043a\u0441. \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432:",
+ "LabelView": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440:",
+ "TabUsers": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438",
+ "HeaderFeatures": "\u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b",
+ "HeaderAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e",
+ "ButtonSync": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c",
+ "TabScheduledTasks": "\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a",
+ "HeaderChapters": "\u0421\u0446\u0435\u043d\u044b",
+ "HeaderResumeSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f"
} \ 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 741bc52ca..3a49024f9 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -1,893 +1,907 @@
{
"LabelExit": "Exit",
- "LabelVisitCommunity": "Visit Community",
- "LabelGithubWiki": "Github Wiki",
- "LabelSwagger": "Swagger",
- "LabelStandard": "Standard",
- "LabelViewApiDocumentation": "View Api Documentation",
- "LabelBrowseLibrary": "Browse Library",
- "LabelConfigureMediaBrowser": "Configure Media Browser",
- "LabelOpenLibraryViewer": "Open Library Viewer",
- "LabelRestartServer": "Restart Server",
- "LabelShowLogWindow": "Show Log Window",
- "LabelPrevious": "Previous",
- "LabelFinish": "Finish",
- "LabelNext": "Next",
- "LabelYoureDone": "You're Done!",
- "WelcomeToMediaBrowser": "Welcome to Media Browser!",
- "TitleMediaBrowser": "Media Browser",
- "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
- "TellUsAboutYourself": "Tell us about yourself",
- "LabelYourFirstName": "Your first name:",
- "MoreUsersCanBeAddedLater": "More users can be added later within the Dashboard.",
- "UserProfilesIntro": "Media Browser includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.",
- "LabelWindowsService": "Windows Service",
- "AWindowsServiceHasBeenInstalled": "A Windows Service has been installed.",
- "WindowsServiceIntro1": "Media Browser Server normally runs as a desktop application with a tray icon, but if you prefer to run it as a background service, it can be started from the windows services control panel instead.",
- "WindowsServiceIntro2": "If using the windows service, please note that it cannot be run at the same time as the tray icon, so you'll need to exit the tray in order to run the service. The service will also need to be configured with administrative privileges via the control panel. Please note that at this time the service is unable to self-update, so new versions will require manual interaction.",
- "WizardCompleted": "That's all we need for now. Media Browser has begun collecting information about your media library. Check out some of our apps, and then click <b>Finish</b> to view the <b>Dashboard</b>.",
- "LabelConfigureSettings": "Configure settings",
- "LabelEnableVideoImageExtraction": "Enable video image extraction",
- "VideoImageExtractionHelp": "For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.",
- "LabelEnableChapterImageExtractionForMovies": "Extract chapter image extraction for Movies",
- "LabelChapterImageExtractionForMoviesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.",
- "LabelEnableAutomaticPortMapping": "Enable automatic port mapping",
- "LabelEnableAutomaticPortMappingHelp": "UPnP allows automated router configuration for easy remote access. This may not work with some router models.",
- "ButtonOk": "Ok",
- "ButtonCancel": "Cancel",
- "ButtonNew": "New",
- "HeaderSetupLibrary": "Setup your media library",
- "ButtonAddMediaFolder": "Add media folder",
- "LabelFolderType": "Folder type:",
- "MediaFolderHelpPluginRequired": "* Requires the use of a plugin, e.g. GameBrowser or MB Bookshelf.",
- "ReferToMediaLibraryWiki": "Refer to the media library wiki.",
- "LabelCountry": "Country:",
- "LabelLanguage": "Language:",
- "HeaderPreferredMetadataLanguage": "Preferred metadata language:",
- "LabelSaveLocalMetadata": "Save artwork and metadata into media folders",
- "LabelSaveLocalMetadataHelp": "Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.",
- "LabelDownloadInternetMetadata": "Download artwork and metadata from the internet",
- "LabelDownloadInternetMetadataHelp": "Media Browser can download information about your media to enable rich presentations.",
- "TabPreferences": "Preferences",
- "TabPassword": "Password",
- "TabLibraryAccess": "Library Access",
- "TabImage": "Image",
- "TabProfile": "Profile",
- "TabMetadata": "Metadata",
- "TabImages": "Images",
- "TabNotifications": "Notifications",
- "TabCollectionTitles": "Titles",
- "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons",
- "LabelUnairedMissingEpisodesWithinSeasons": "Display unaired episodes within seasons",
- "HeaderVideoPlaybackSettings": "Video Playback Settings",
- "HeaderPlaybackSettings": "Playback Settings",
- "LabelAudioLanguagePreference": "Audio language preference:",
- "LabelSubtitleLanguagePreference": "Subtitle language preference:",
- "OptionDefaultSubtitles": "Default",
- "OptionOnlyForcedSubtitles": "Only forced subtitles",
- "OptionAlwaysPlaySubtitles": "Always play subtitles",
- "OptionNoSubtitles": "None",
- "OptionDefaultSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.",
- "OptionOnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.",
- "OptionAlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.",
- "OptionNoSubtitlesHelp": "Subtitles will not be loaded by default.",
- "TabProfiles": "Profiles",
- "TabSecurity": "Security",
- "ButtonAddUser": "Add User",
- "ButtonSave": "Save",
- "ButtonResetPassword": "Reset Password",
- "LabelNewPassword": "New password:",
- "LabelNewPasswordConfirm": "New password confirm:",
- "HeaderCreatePassword": "Create Password",
- "LabelCurrentPassword": "Current password:",
- "LabelMaxParentalRating": "Maximum allowed parental rating:",
- "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
- "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
- "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.",
- "ButtonDeleteImage": "Delete Image",
- "LabelSelectUsers": "Select users:",
- "ButtonUpload": "Upload",
- "HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
- "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.",
- "MessageNothingHere": "Nothing here.",
- "MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
- "TabSuggested": "Suggested",
- "TabLatest": "Latest",
- "TabUpcoming": "Upcoming",
- "TabShows": "Shows",
- "TabEpisodes": "Episodes",
- "TabGenres": "Genres",
- "TabPeople": "People",
- "TabNetworks": "Networks",
- "HeaderUsers": "Users",
- "HeaderFilters": "Filters:",
- "ButtonFilter": "Filter",
- "OptionFavorite": "Favorites",
- "OptionLikes": "Likes",
- "OptionDislikes": "Dislikes",
- "OptionActors": "Actors",
- "OptionGuestStars": "Guest Stars",
- "OptionDirectors": "Directors",
- "OptionWriters": "Writers",
- "OptionProducers": "Producers",
- "HeaderResume": "Resume",
- "HeaderNextUp": "Next Up",
- "NoNextUpItemsMessage": "None found. Start watching your shows!",
- "HeaderLatestEpisodes": "Latest Episodes",
- "HeaderPersonTypes": "Person Types:",
- "TabSongs": "Songs",
- "TabAlbums": "Albums",
- "TabArtists": "Artists",
- "TabAlbumArtists": "Album Artists",
- "TabMusicVideos": "Music Videos",
- "ButtonSort": "Sort",
- "HeaderSortBy": "Sort By:",
- "HeaderSortOrder": "Sort Order:",
- "OptionPlayed": "Played",
- "OptionUnplayed": "Unplayed",
- "OptionAscending": "Ascending",
- "OptionDescending": "Descending",
- "OptionRuntime": "Runtime",
- "OptionReleaseDate": "Release Date",
- "OptionPlayCount": "Play Count",
- "OptionDatePlayed": "Date Played",
- "OptionDateAdded": "Date Added",
- "OptionAlbumArtist": "Album Artist",
- "OptionArtist": "Artist",
- "OptionAlbum": "Album",
- "OptionTrackName": "Track Name",
- "OptionCommunityRating": "Community Rating",
- "OptionNameSort": "Name",
- "OptionFolderSort": "Folders",
- "OptionBudget": "Budget",
- "OptionRevenue": "Revenue",
- "OptionPoster": "Poster",
- "OptionBackdrop": "Backdrop",
- "OptionTimeline": "Timeline",
- "OptionThumb": "Thumb",
- "OptionBanner": "Banner",
- "OptionCriticRating": "Critic Rating",
- "OptionVideoBitrate": "Video Bitrate",
- "OptionResumable": "Resumable",
- "ScheduledTasksHelp": "Click a task to adjust its schedule.",
- "ScheduledTasksTitle": "Scheduled Tasks",
- "TabMyPlugins": "My Plugins",
- "TabCatalog": "Catalog",
- "PluginsTitle": "Plugins",
- "HeaderAutomaticUpdates": "Automatic Updates",
- "HeaderNowPlaying": "Now Playing",
- "HeaderLatestAlbums": "Latest Albums",
- "HeaderLatestSongs": "Latest Songs",
- "HeaderRecentlyPlayed": "Recently Played",
- "HeaderFrequentlyPlayed": "Frequently Played",
- "DevBuildWarning": "Dev builds are the bleeding edge. Released often, these build have not been tested. The application may crash and entire features may not work at all.",
- "LabelVideoType": "Video Type:",
- "OptionBluray": "Bluray",
- "OptionDvd": "Dvd",
- "OptionIso": "Iso",
- "Option3D": "3D",
- "LabelFeatures": "Features:",
- "LabelService": "Service:",
- "LabelStatus": "Status:",
- "LabelVersion": "Version:",
- "LabelLastResult": "Last result:",
- "OptionHasSubtitles": "Subtitles",
- "OptionHasTrailer": "Trailer",
- "OptionHasThemeSong": "Theme Song",
- "OptionHasThemeVideo": "Theme Video",
- "TabMovies": "Movies",
- "TabStudios": "Studios",
- "TabTrailers": "Trailers",
- "HeaderLatestMovies": "Latest Movies",
- "HeaderLatestTrailers": "Latest Trailers",
- "OptionHasSpecialFeatures": "Special Features",
- "OptionImdbRating": "IMDb Rating",
- "OptionParentalRating": "Parental Rating",
- "OptionPremiereDate": "Premiere Date",
- "TabBasic": "Basic",
- "TabAdvanced": "Advanced",
- "HeaderStatus": "Status",
- "OptionContinuing": "Continuing",
- "OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
- "OptionSunday": "Sunday",
- "OptionMonday": "Monday",
- "OptionTuesday": "Tuesday",
- "OptionWednesday": "Wednesday",
- "OptionThursday": "Thursday",
- "OptionFriday": "Friday",
- "OptionSaturday": "Saturday",
- "HeaderManagement": "Management:",
- "OptionMissingImdbId": "Missing IMDb Id",
- "OptionMissingTvdbId": "Missing TheTVDB Id",
- "OptionMissingOverview": "Missing Overview",
- "OptionFileMetadataYearMismatch": "File/Metadata Years Mismatched",
- "TabGeneral": "General",
- "TitleSupport": "Support",
- "TabLog": "Log",
- "TabAbout": "About",
- "TabSupporterKey": "Supporter Key",
- "TabBecomeSupporter": "Become a Supporter",
- "MediaBrowserHasCommunity": "Media Browser has a thriving community of users and contributors.",
- "CheckoutKnowledgeBase": "Check out our knowledge base to help you get the most out of Media Browser.",
- "SearchKnowledgeBase": "Search the Knowledge Base",
- "VisitTheCommunity": "Visit the Community",
- "VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
- "VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
- "OptionHideUser": "Hide this user from login screens",
- "OptionDisableUser": "Disable this user",
- "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
- "HeaderAdvancedControl": "Advanced Control",
- "LabelName": "Name:",
- "OptionAllowUserToManageServer": "Allow this user to manage the server",
- "HeaderFeatureAccess": "Feature Access",
- "OptionAllowMediaPlayback": "Allow media playback",
- "OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
- "OptionAllowDeleteLibraryContent": "Allow this user to delete library content",
- "OptionAllowManageLiveTv": "Allow management of live tv recordings",
- "OptionAllowRemoteControlOthers": "Allow this user to remote control other users",
- "OptionMissingTmdbId": "Missing Tmdb Id",
- "OptionIsHD": "HD",
- "OptionIsSD": "SD",
- "OptionMetascore": "Metascore",
- "ButtonSelect": "Select",
- "ButtonSearch": "Search",
- "ButtonGroupVersions": "Group Versions",
- "ButtonAddToCollection": "Add to Collection",
- "PismoMessage": "Utilizing Pismo File Mount through a donated license.",
- "TangibleSoftwareMessage": "Utilizing Tangible Solutions Java/C# converters through a donated license.",
- "HeaderCredits": "Credits",
- "PleaseSupportOtherProduces": "Please support other free products we utilize:",
- "VersionNumber": "Version {0}",
- "TabPaths": "Paths",
- "TabServer": "Server",
- "TabTranscoding": "Transcoding",
- "TitleAdvanced": "Advanced",
- "LabelAutomaticUpdateLevel": "Automatic update level",
- "OptionRelease": "Official Release",
- "OptionBeta": "Beta",
- "OptionDev": "Dev (Unstable)",
- "LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates",
- "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.",
- "LabelEnableDebugLogging": "Enable debug logging",
- "LabelRunServerAtStartup": "Run server at startup",
- "LabelRunServerAtStartupHelp": "This will start the tray icon on windows startup. To start the windows service, uncheck this and run the service from the windows control panel. Please note that you cannot run both at the same time, so you will need to exit the tray icon before starting the service.",
- "ButtonSelectDirectory": "Select Directory",
- "LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
- "LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
- "LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
- "LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
- "LabelTranscodingTempPath": "Transcoding temporary path:",
- "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
- "TabBasics": "Basics",
- "TabTV": "TV",
- "TabGames": "Games",
- "TabMusic": "Music",
- "TabOthers": "Others",
- "HeaderExtractChapterImagesFor": "Extract chapter images for:",
- "OptionMovies": "Movies",
- "OptionEpisodes": "Episodes",
- "OptionOtherVideos": "Other Videos",
- "TitleMetadata": "Metadata",
- "LabelAutomaticUpdatesFanart": "Enable automatic updates from FanArt.tv",
- "LabelAutomaticUpdatesTmdb": "Enable automatic updates from TheMovieDB.org",
- "LabelAutomaticUpdatesTvdb": "Enable automatic updates from TheTVDB.com",
- "LabelAutomaticUpdatesFanartHelp": "If enabled, new images will be downloaded automatically as they're added to fanart.tv. Existing images will not be replaced.",
- "LabelAutomaticUpdatesTmdbHelp": "If enabled, new images will be downloaded automatically as they're added to TheMovieDB.org. Existing images will not be replaced.",
- "LabelAutomaticUpdatesTvdbHelp": "If enabled, new images will be downloaded automatically as they're added to TheTVDB.com. Existing images will not be replaced.",
- "ExtractChapterImagesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs when videos are discovered, and also as a nightly scheduled task at 4am. The schedule is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.",
- "LabelMetadataDownloadLanguage": "Preferred download language:",
- "ButtonAutoScroll": "Auto-scroll",
- "LabelImageSavingConvention": "Image saving convention:",
- "LabelImageSavingConventionHelp": "Media Browser recognizes images from most major media applications. Choosing your downloading convention is useful if you also use other products.",
- "OptionImageSavingCompatible": "Compatible - Media Browser/Xbmc/Plex",
- "OptionImageSavingStandard": "Standard - MB2",
- "ButtonSignIn": "Sign In",
- "TitleSignIn": "Sign In",
- "HeaderPleaseSignIn": "Please sign in",
- "LabelUser": "User:",
- "LabelPassword": "Password:",
- "ButtonManualLogin": "Manual Login",
- "PasswordLocalhostMessage": "Passwords are not required when logging in from localhost.",
- "TabGuide": "Guide",
- "TabChannels": "Channels",
- "TabCollections": "Collections",
- "HeaderChannels": "Channels",
- "TabRecordings": "Recordings",
- "TabScheduled": "Scheduled",
- "TabSeries": "Series",
- "TabFavorites": "Favorites",
- "TabMyLibrary": "My Library",
- "ButtonCancelRecording": "Cancel Recording",
- "HeaderPrePostPadding": "Pre/Post Padding",
- "LabelPrePaddingMinutes": "Pre-padding minutes:",
- "OptionPrePaddingRequired": "Pre-padding is required in order to record.",
- "LabelPostPaddingMinutes": "Post-padding minutes:",
- "OptionPostPaddingRequired": "Post-padding is required in order to record.",
- "HeaderWhatsOnTV": "What's On",
- "HeaderUpcomingTV": "Upcoming TV",
- "TabStatus": "Status",
- "TabSettings": "Settings",
- "ButtonRefreshGuideData": "Refresh Guide Data",
- "OptionPriority": "Priority",
- "OptionRecordOnAllChannels": "Record program on all channels",
- "OptionRecordAnytime": "Record program at any time",
- "OptionRecordOnlyNewEpisodes": "Record only new episodes",
- "HeaderDays": "Days",
- "HeaderActiveRecordings": "Active Recordings",
- "HeaderLatestRecordings": "Latest Recordings",
- "HeaderAllRecordings": "All Recordings",
- "ButtonPlay": "Play",
- "ButtonEdit": "Edit",
- "ButtonRecord": "Record",
- "ButtonDelete": "Delete",
- "ButtonRemove": "Remove",
- "OptionRecordSeries": "Record Series",
- "HeaderDetails": "Details",
- "ButtonCancelRecording": "Cancel Recording",
- "TitleLiveTV": "Live TV",
- "LabelNumberOfGuideDays": "Number of days of guide data to download:",
- "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.",
- "LabelActiveService": "Active Service:",
- "LabelActiveServiceHelp": "Multiple tv plugins can be installed but only one can be active at a time.",
- "OptionAutomatic": "Auto",
- "LiveTvPluginRequired": "A Live TV service provider plugin is required in order to continue.",
- "LiveTvPluginRequiredHelp": "Please install one of our available plugins, such as Next Pvr or ServerWmc.",
- "LabelCustomizeOptionsPerMediaType": "Customize for media type:",
- "OptionDownloadThumbImage": "Thumb",
- "OptionDownloadMenuImage": "Menu",
- "OptionDownloadLogoImage": "Logo",
- "OptionDownloadBoxImage": "Box",
- "OptionDownloadDiscImage": "Disc",
- "OptionDownloadBannerImage": "Banner",
- "OptionDownloadBackImage": "Back",
- "OptionDownloadArtImage": "Art",
- "OptionDownloadPrimaryImage": "Primary",
- "HeaderFetchImages": "Fetch Images:",
- "HeaderImageSettings": "Image Settings",
- "TabOther": "Other",
- "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item:",
- "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item:",
- "LabelMinBackdropDownloadWidth": "Minimum backdrop download width:",
- "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width:",
- "ButtonAddScheduledTaskTrigger": "Add Task Trigger",
- "HeaderAddScheduledTaskTrigger": "Add Task Trigger",
- "ButtonAdd": "Add",
- "LabelTriggerType": "Trigger Type:",
- "OptionDaily": "Daily",
- "OptionWeekly": "Weekly",
- "OptionOnInterval": "On an interval",
- "OptionOnAppStartup": "On application startup",
- "OptionAfterSystemEvent": "After a system event",
- "LabelDay": "Day:",
- "LabelTime": "Time:",
- "LabelEvent": "Event:",
- "OptionWakeFromSleep": "Wake from sleep",
- "LabelEveryXMinutes": "Every:",
- "HeaderTvTuners": "Tuners",
- "HeaderGallery": "Gallery",
- "HeaderLatestGames": "Latest Games",
- "HeaderRecentlyPlayedGames": "Recently Played Games",
- "TabGameSystems": "Game Systems",
- "TitleMediaLibrary": "Media Library",
- "TabFolders": "Folders",
- "TabPathSubstitution": "Path Substitution",
- "LabelSeasonZeroDisplayName": "Season 0 display name:",
- "LabelEnableRealtimeMonitor": "Enable real time monitoring",
- "LabelEnableRealtimeMonitorHelp": "Changes will be processed immediately, on supported file systems.",
- "ButtonScanLibrary": "Scan Library",
- "HeaderNumberOfPlayers": "Players:",
- "OptionAnyNumberOfPlayers": "Any",
- "Option1Player": "1+",
- "Option2Player": "2+",
- "Option3Player": "3+",
- "Option4Player": "4+",
- "HeaderMediaFolders": "Media Folders",
- "HeaderThemeVideos": "Theme Videos",
- "HeaderThemeSongs": "Theme Songs",
- "HeaderScenes": "Scenes",
- "HeaderAwardsAndReviews": "Awards and Reviews",
- "HeaderSoundtracks": "Soundtracks",
- "HeaderMusicVideos": "Music Videos",
- "HeaderSpecialFeatures": "Special Features",
- "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.",
- "HeaderFrom": "From",
- "HeaderTo": "To",
- "LabelFrom": "From:",
- "LabelFromHelp": "Example: D:\\Movies (on the server)",
- "LabelTo": "To:",
- "LabelToHelp": "Example: \\\\MyServer\\Movies (a path clients can access)",
- "ButtonAddPathSubstitution": "Add Substitution",
- "OptionSpecialEpisode": "Specials",
- "OptionMissingEpisode": "Missing Episodes",
- "OptionUnairedEpisode": "Unaired Episodes",
- "OptionEpisodeSortName": "Episode Sort Name",
- "OptionSeriesSortName": "Series Name",
- "OptionTvdbRating": "Tvdb Rating",
- "HeaderTranscodingQualityPreference": "Transcoding Quality Preference:",
- "OptionAutomaticTranscodingHelp": "The server will decide quality and speed",
- "OptionHighSpeedTranscodingHelp": "Lower quality, but faster encoding",
- "OptionHighQualityTranscodingHelp": "Higher quality, but slower encoding",
- "OptionMaxQualityTranscodingHelp": "Best quality with slower encoding and high CPU usage",
- "OptionHighSpeedTranscoding": "Higher speed",
- "OptionHighQualityTranscoding": "Higher quality",
- "OptionMaxQualityTranscoding": "Max quality",
- "OptionEnableDebugTranscodingLogging": "Enable debug transcoding logging",
- "OptionEnableDebugTranscodingLoggingHelp": "This will create very large log files and is only recommended as needed for troubleshooting purposes.",
- "OptionEnableDebugTranscodingLogging": "Enable debug transcoding logging",
- "OptionUpscaling": "Allow clients to request upscaled video",
- "OptionUpscalingHelp": "In some cases this will result in improved video quality but will increase CPU usage.",
- "EditCollectionItemsHelp": "Add or remove any movies, series, albums, books or games you wish to group within this collection.",
- "HeaderAddTitles": "Add Titles",
- "LabelEnableDlnaPlayTo": "Enable DLNA Play To",
- "LabelEnableDlnaPlayToHelp": "Media Browser can detect devices within your network and offer the ability to remote control them.",
- "LabelEnableDlnaDebugLogging": "Enable DLNA debug logging",
- "LabelEnableDlnaDebugLoggingHelp": "This will create large log files and should only be used as needed for troubleshooting purposes.",
- "LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval (seconds)",
- "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Media Browser.",
- "HeaderCustomDlnaProfiles": "Custom Profiles",
- "HeaderSystemDlnaProfiles": "System Profiles",
- "CustomDlnaProfilesHelp": "Create a custom profile to target a new device or override a system profile.",
- "SystemDlnaProfilesHelp": "System profiles are read-only. Changes to a system profile will be saved to a new custom profile.",
- "TitleDashboard": "Dashboard",
- "TabHome": "Home",
- "TabInfo": "Info",
- "HeaderLinks": "Links",
- "HeaderSystemPaths": "System Paths",
- "LinkCommunity": "Community",
- "LinkGithub": "Github",
- "LinkApiDocumentation": "Api Documentation",
- "LabelFriendlyServerName": "Friendly server name:",
- "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.",
- "LabelPreferredDisplayLanguage": "Preferred display language",
- "LabelPreferredDisplayLanguageHelp": "Translating Media Browser is an ongoing project and is not yet complete.",
- "LabelReadHowYouCanContribute": "Read about how you can contribute.",
- "HeaderNewCollection": "New Collection",
- "HeaderAddToCollection": "Add to Collection",
- "ButtonSubmit": "Submit",
- "NewCollectionNameExample": "Example: Star Wars Collection",
- "OptionSearchForInternetMetadata": "Search the internet for artwork and metadata",
- "ButtonCreate": "Create",
- "LabelHttpServerPortNumber": "Http server port number:",
- "LabelWebSocketPortNumber": "Web socket port number:",
- "LabelEnableAutomaticPortMapping": "Enable automatic port mapping",
- "LabelEnableAutomaticPortHelp": "UPnP allows automated router configuration for remote access. This may not work with some router models.",
- "LabelExternalDDNS": "External DDNS:",
- "LabelExternalDDNSHelp": "If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.",
- "TabResume": "Resume",
- "TabWeather": "Weather",
- "TitleAppSettings": "App Settings",
- "LabelMinResumePercentage": "Min resume percentage:",
- "LabelMaxResumePercentage": "Max resume percentage:",
- "LabelMinResumeDuration": "Min resume duration (seconds):",
- "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time",
- "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time",
- "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable",
- "TitleAutoOrganize": "Auto-Organize",
- "TabActivityLog": "Activity Log",
- "HeaderName": "Name",
- "HeaderDate": "Date",
- "HeaderSource": "Source",
- "HeaderStatus": "Status",
- "HeaderDestination": "Destination",
- "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:",
- "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files",
- "HeaderSupportTheTeam": "Support the Media Browser Team",
- "LabelSupportAmount": "Amount (USD)",
- "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by donating. A portion of all donations will be contributed to other free tools we depend on.",
- "ButtonEnterSupporterKey": "Enter supporter key",
- "DonationNextStep": "Once complete, please return and enter your supporter key, which you will receive by email.",
- "AutoOrganizeHelp": "Auto-organize monitors your download folders for new files and moves them to your media directories.",
- "AutoOrganizeTvHelp": "TV file organizing will only add episodes to existing series. It will not create new series folders.",
- "OptionEnableEpisodeOrganization": "Enable new episode organization",
- "LabelWatchFolder": "Watch folder:",
- "LabelWatchFolderHelp": "The server will poll this folder during the 'Organize new media files' scheduled task.",
- "ButtonViewScheduledTasks": "View scheduled tasks",
- "LabelMinFileSizeForOrganize": "Minimum file size (MB):",
- "LabelMinFileSizeForOrganizeHelp": "Files under this size will be ignored.",
- "LabelSeasonFolderPattern": "Season folder pattern:",
- "LabelSeasonZeroFolderName": "Season zero folder name:",
- "HeaderEpisodeFilePattern": "Episode file pattern",
- "LabelEpisodePattern": "Episode pattern:",
- "LabelMultiEpisodePattern": "Multi-Episode pattern:",
- "HeaderSupportedPatterns": "Supported Patterns",
- "HeaderTerm": "Term",
- "HeaderPattern": "Pattern",
- "HeaderResult": "Result",
- "LabelDeleteEmptyFolders": "Delete empty folders after organizing",
- "LabelDeleteEmptyFoldersHelp": "Enable this to keep the download directory clean.",
- "LabelDeleteLeftOverFiles": "Delete left over files with the following extensions:",
- "LabelDeleteLeftOverFilesHelp": "Separate with ;. For example: .nfo;.txt",
- "OptionOverwriteExistingEpisodes": "Overwrite existing episodes",
- "LabelTransferMethod": "Transfer method",
- "OptionCopy": "Copy",
- "OptionMove": "Move",
- "LabelTransferMethodHelp": "Copy or move files from the watch folder",
- "HeaderLatestNews": "Latest News",
- "HeaderHelpImproveMediaBrowser": "Help Improve Media Browser",
- "HeaderRunningTasks": "Running Tasks",
- "HeaderActiveDevices": "Active Devices",
- "HeaderPendingInstallations": "Pending Installations",
- "HeaerServerInformation": "Server Information",
- "ButtonRestartNow": "Restart Now",
- "ButtonRestart": "Restart",
- "ButtonShutdown": "Shutdown",
- "ButtonUpdateNow": "Update Now",
- "PleaseUpdateManually": "Please shutdown the server and update manually.",
- "NewServerVersionAvailable": "A new version of Media Browser Server is available!",
- "ServerUpToDate": "Media Browser Server is up to date",
- "ErrorConnectingToMediaBrowserRepository": "There was an error connecting to the remote Media Browser repository.",
- "LabelComponentsUpdated": "The following components have been installed or updated:",
- "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.",
- "LabelDownMixAudioScale": "Audio boost when downmixing:",
- "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.",
- "ButtonLinkKeys": "Link Keys",
- "LabelOldSupporterKey": "Old supporter key",
- "LabelNewSupporterKey": "New supporter key",
- "HeaderMultipleKeyLinking": "Multiple Key Linking",
- "MultipleKeyLinkingHelp": "If you have more than one supporter key, use this form to link the old key's registrations with your new one.",
- "LabelCurrentEmailAddress": "Current email address",
- "LabelCurrentEmailAddressHelp": "The current email address to which your new key was sent.",
- "HeaderForgotKey": "Forgot Key",
- "LabelEmailAddress": "Email address",
- "LabelSupporterEmailAddress": "The email address that was used to purchase the key.",
- "ButtonRetrieveKey": "Retrieve Key",
- "LabelSupporterKey": "Supporter Key (paste from email)",
- "LabelSupporterKeyHelp": "Enter your supporter key to start enjoying additional benefits the community has developed for Media Browser.",
- "MessageInvalidKey": "Supporter key is missing or invalid.",
- "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also be a Media Browser Supporter. Please donate and support the continued development of the core product. Thank you.",
- "HeaderDisplaySettings": "Display Settings",
- "TabPlayTo": "Play To",
- "LabelEnableDlnaServer": "Enable Dlna server",
- "LabelEnableDlnaServerHelp": "Allows UPnP devices on your network to browse and play Media Browser content.",
- "LabelEnableBlastAliveMessages": "Blast alive messages",
- "LabelEnableBlastAliveMessagesHelp": "Enable this if the server is not detected reliably by other UPnP devices on your network.",
- "LabelBlastMessageInterval": "Alive message interval (seconds)",
- "LabelBlastMessageIntervalHelp": "Determines the duration in seconds between server alive messages.",
- "LabelDefaultUser": "Default user:",
- "LabelDefaultUserHelp": "Determines which user library should be displayed on connected devices. This can be overridden for each device using profiles.",
- "TitleDlna": "DLNA",
- "TitleChannels": "Channels",
- "HeaderServerSettings": "Server Settings",
- "LabelWeatherDisplayLocation": "Weather display location:",
- "LabelWeatherDisplayLocationHelp": "US zip code / City, State, Country / City, Country",
- "LabelWeatherDisplayUnit": "Weather display unit:",
- "OptionCelsius": "Celsius",
- "OptionFahrenheit": "Fahrenheit",
- "HeaderRequireManualLogin": "Require manual username entry for:",
- "HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
- "OptionOtherApps": "Other apps",
- "OptionMobileApps": "Mobile apps",
- "HeaderNotificationList": "Click on a notification to configure it's sending options.",
- "NotificationOptionApplicationUpdateAvailable": "Application update available",
- "NotificationOptionApplicationUpdateInstalled": "Application update installed",
- "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
- "NotificationOptionPluginInstalled": "Plugin installed",
- "NotificationOptionPluginUninstalled": "Plugin uninstalled",
- "NotificationOptionVideoPlayback": "Video playback started",
- "NotificationOptionAudioPlayback": "Audio playback started",
- "NotificationOptionGamePlayback": "Game playback started",
- "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
- "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
- "NotificationOptionGamePlaybackStopped": "Game playback stopped",
- "NotificationOptionTaskFailed": "Scheduled task failure",
- "NotificationOptionInstallationFailed": "Installation failure",
- "NotificationOptionNewLibraryContent": "New content added",
- "NotificationOptionNewLibraryContentMultiple": "New content added (multiple)",
- "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
- "NotificationOptionServerRestartRequired": "Server restart required",
- "LabelNotificationEnabled": "Enable this notification",
- "LabelMonitorUsers": "Monitor activity from:",
- "LabelSendNotificationToUsers": "Send the notification to:",
- "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
- "LabelUseNotificationServices": "Use the following services:",
- "CategoryUser": "User",
- "CategorySystem": "System",
- "CategoryApplication": "Application",
- "CategoryPlugin": "Plugin",
- "LabelMessageTitle": "Message title:",
- "LabelAvailableTokens": "Available tokens:",
- "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
- "OptionAllUsers": "All users",
- "OptionAdminUsers": "Administrators",
- "OptionCustomUsers": "Custom",
- "ButtonArrowUp": "Up",
- "ButtonArrowDown": "Down",
- "ButtonArrowLeft": "Left",
- "ButtonArrowRight": "Right",
- "ButtonBack": "Back",
- "ButtonInfo": "Info",
- "ButtonOsd": "On screen display",
- "ButtonPageUp": "Page Up",
- "ButtonPageDown": "Page Down",
- "PageAbbreviation": "PG",
- "ButtonHome": "Home",
- "ButtonSearch": "Search",
- "ButtonSettings": "Settings",
- "ButtonTakeScreenshot": "Capture Screenshot",
- "ButtonLetterUp": "Letter Up",
- "ButtonLetterDown": "Letter Down",
- "PageButtonAbbreviation": "PG",
- "LetterButtonAbbreviation": "A",
- "TabNowPlaying": "Now Playing",
- "TabNavigation": "Navigation",
- "TabControls": "Controls",
- "ButtonFullscreen": "Toggle fullscreen",
- "ButtonScenes": "Scenes",
- "ButtonSubtitles": "Subtitles",
- "ButtonAudioTracks": "Audio tracks",
- "ButtonPreviousTrack": "Previous track",
- "ButtonNextTrack": "Next track",
- "ButtonStop": "Stop",
- "ButtonPlay": "Play",
- "ButtonPause": "Pause",
- "LabelGroupMoviesIntoCollections": "Group movies into collections",
- "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
- "NotificationOptionPluginError": "Plugin failure",
- "ButtonVolumeUp": "Volume up",
- "ButtonVolumeDown": "Volume down",
- "ButtonMute": "Mute",
- "HeaderLatestMedia": "Latest Media",
- "OptionNoSubtitles": "No Subtitles",
- "OptionSpecialFeatures": "Special Features",
- "HeaderCollections": "Collections",
- "HeaderChannels": "Channels",
- "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",
- "LabelType": "Type:",
- "LabelProfileContainer": "Container:",
- "LabelProfileVideoCodecs": "Video codecs:",
- "LabelProfileAudioCodecs": "Audio codecs:",
- "LabelProfileCodecs": "Codecs:",
- "HeaderDirectPlayProfile": "Direct Play Profile",
- "HeaderTranscodingProfile": "Transcoding Profile",
- "HeaderCodecProfile": "Codec Profile",
- "HeaderCodecProfileHelp": "Define additional conditions that must be met in order for a codec to be direct played.",
- "HeaderContainerProfile": "Container Profile",
- "HeaderContainerProfileHelp": "Define additional conditions that must be met in order for a file to be direct played.",
- "OptionProfileVideo": "Video",
- "OptionProfileAudio": "Audio",
- "OptionProfileVideoAudio": "Video Audio",
- "OptionProfilePhoto": "Photo",
- "LabelUserLibrary": "User library:",
- "LabelUserLibraryHelp": "Select which user library to display to the device. Leave empty to inherit the default setting.",
- "OptionPlainStorageFolders": "Display all folders as plain storage folders",
- "OptionPlainStorageFoldersHelp": "If enabled, all folders are represented in DIDL as \"object.container.storageFolder\" instead of a more specific type, such as \"object.container.person.musicArtist\".",
- "OptionPlainVideoItems": "Display all videos as plain video items",
- "OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".",
- "LabelSupportedMediaTypes": "Supported Media Types:",
- "TabIdentification": "Identification",
- "TabDirectPlay": "Direct Play",
- "TabContainers": "Containers",
- "TabCodecs": "Codecs",
- "TabResponses": "Responses",
- "HeaderProfileInformation": "Profile Information",
- "LabelEmbedAlbumArtDidl": "Embed album art in Didl",
- "LabelEmbedAlbumArtDidlHelp": "Some devices prefer this method for obtaining album art. Others may fail to play with this option enabled.",
- "LabelAlbumArtPN": "Album art PN:",
- "LabelAlbumArtHelp": "PN used for album art, within the dlna:profileID attribute on upnp:albumArtURI. Some clients require a specific value, regardless of the size of the image.",
- "LabelAlbumArtMaxWidth": "Album art max width:",
- "LabelAlbumArtMaxWidthHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
- "LabelAlbumArtMaxHeight": "Album art max height:",
- "LabelAlbumArtMaxHeightHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
- "LabelIconMaxWidth": "Icon max width:",
- "LabelIconMaxWidthHelp": "Max resolution of icons exposed via upnp:icon.",
- "LabelIconMaxHeight": "Icon max height:",
- "LabelIconMaxHeightHelp": "Max resolution of icons exposed via upnp:icon.",
- "LabelIdentificationFieldHelp": "A case-insensitive substring or regex expression.",
- "HeaderProfileServerSettingsHelp": "These values control how Media Browser will present itself to the device.",
- "LabelMaxBitrate": "Max bitrate:",
- "LabelMaxBitrateHelp": "Specify a max bitrate in bandwidth constrained environments, or if the device imposes it's own limit.",
- "OptionIgnoreTranscodeByteRangeRequests": "Ignore transcode byte range requests",
- "OptionIgnoreTranscodeByteRangeRequestsHelp": "If enabled, these requests will be honored but will ignore the byte range header.",
- "LabelFriendlyName": "Friendly name",
- "LabelManufacturer": "Manufacturer",
- "LabelManufacturerUrl": "Manufacturer url",
- "LabelModelName": "Model name",
- "LabelModelNumber": "Model number",
- "LabelModelDescription": "Model description",
- "LabelModelUrl": "Model url",
- "LabelSerialNumber": "Serial number",
- "LabelDeviceDescription": "Device description",
- "HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.",
- "HeaderDirectPlayProfileHelp": "Add direct play profiles to indicate which formats the device can handle natively.",
- "HeaderTranscodingProfileHelp": "Add transcoding profiles to indicate which formats should be used when transcoding is required.",
- "HeaderContainerProfileHelp": "Container profiles indicate the limitations of a device when playing specific formats. If a limitation applies then the media will be transcoded, even if the format is configured for direct play.",
- "HeaderCodecProfileHelp": "Codec profiles indicate the limitations of a device when playing specific codecs. If a limitation applies then the media will be transcoded, even if the codec is configured for direct play.",
- "HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.",
- "LabelXDlnaCap": "X-Dlna cap:",
- "LabelXDlnaCapHelp": "Determines the content of the X_DLNACAP element in the urn:schemas-dlna-org:device-1-0 namespace.",
- "LabelXDlnaDoc": "X-Dlna doc:",
- "LabelXDlnaDocHelp": "Determines the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace.",
- "LabelSonyAggregationFlags": "Sony aggregation flags:",
- "LabelSonyAggregationFlagsHelp": "Determines the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.",
- "LabelTranscodingContainer": "Container:",
- "LabelTranscodingVideoCodec": "Video codec:",
- "LabelTranscodingVideoProfile": "Video profile:",
- "LabelTranscodingAudioCodec": "Audio codec:",
- "OptionEnableM2tsMode": "Enable M2ts mode",
- "OptionEnableM2tsModeHelp": "Enable m2ts mode when encoding to mpegts.",
- "OptionEstimateContentLength": "Estimate content length when transcoding",
- "OptionReportByteRangeSeekingWhenTranscoding": "Report that the server supports byte seeking when transcoding",
- "OptionReportByteRangeSeekingWhenTranscodingHelp": "This is required for some devices that don't time seek very well.",
- "HeaderSubtitleDownloadingHelp": "When Media Browser scans your video files it can search for missing subtitles, and download them using a subtitle provider such as OpenSubtitles.org.",
- "HeaderDownloadSubtitlesFor": "Download subtitles for:",
- "MessageNoChapterProviders": "Install a chapter provider plugin such as ChapterDb to enable additional chapter options.",
- "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains graphical subtitles",
- "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
- "TabSubtitles": "Subtitles",
- "TabChapters": "Chapters",
- "HeaderDownloadChaptersFor": "Download chapter names for:",
- "LabelOpenSubtitlesUsername": "Open Subtitles username:",
- "LabelOpenSubtitlesPassword": "Open Subtitles password:",
- "HeaderChapterDownloadingHelp": "When Media Browser scans your video files it can download friendly chapter names from the internet using chapter plugins such as ChapterDb.",
- "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language",
- "LabelSubtitlePlaybackMode": "Subtitle mode:",
- "LabelDownloadLanguages": "Download languages:",
- "ButtonRegister": "Register",
- "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language",
- "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.",
- "HeaderSendMessage": "Send Message",
- "ButtonSend": "Send",
- "LabelMessageText": "Message text:",
- "LabelMessageTitle": "Message title:",
- "MessageNoAvailablePlugins": "No available plugins.",
- "LabelDisplayPluginsFor": "Display plugins for:",
- "PluginTabMediaBrowserClassic": "MB Classic",
- "PluginTabMediaBrowserTheater": "MB Theater",
- "LabelEpisodeName": "Episode name",
- "LabelSeriesName": "Series name",
- "ValueSeriesNamePeriod": "Series.name",
- "ValueSeriesNameUnderscore": "Series_name",
- "ValueEpisodeNamePeriod": "Episode.name",
- "ValueEpisodeNameUnderscore": "Episode_name",
- "LabelSeasonNumber": "Season number",
- "LabelEpisodeNumber": "Episode number",
- "LabelEndingEpisodeNumber": "Ending episode number",
- "HeaderTypeText": "Enter Text",
- "LabelTypeText": "Text",
- "HeaderSearchForSubtitles": "Search for Subtitles",
- "MessageNoSubtitleSearchResultsFound": "No search results founds.",
- "TabDisplay": "Display",
- "TabLanguages": "Languages",
- "TabWebClient": "Web Client",
- "LabelEnableThemeSongs": "Enable theme songs",
- "LabelEnableBackdrops": "Enable backdrops",
- "LabelEnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.",
- "LabelEnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.",
- "HeaderHomePage": "Home Page",
- "HeaderSettingsForThisDevice": "Settings for This Device",
- "OptionAuto": "Auto",
- "OptionYes": "Yes",
- "OptionNo": "No",
- "LabelHomePageSection1": "Home page section one:",
- "LabelHomePageSection2": "Home page section two:",
- "LabelHomePageSection3": "Home page section three:",
- "LabelHomePageSection4": "Home page section four:",
- "OptionMyViewsButtons": "My views (buttons)",
- "OptionMyViews": "My views",
- "OptionMyViewsSmall": "My views (small)",
- "OptionResumablemedia": "Resume",
- "OptionLatestMedia": "Latest media",
- "OptionLatestChannelMedia": "Latest channel items",
- "HeaderLatestChannelItems": "Latest Channel Items",
- "OptionNone": "None",
- "HeaderLiveTv": "Live TV",
- "HeaderReports": "Reports",
- "HeaderMetadataManager": "Metadata Manager",
- "HeaderPreferences": "Preferences",
- "MessageLoadingChannels": "Loading channel content...",
- "ButtonMarkRead": "Mark Read",
- "OptionDefaultSort": "Default",
- "OptionCommunityMostWatchedSort": "Most Watched",
- "TabNextUp": "Next Up",
- "MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
- "MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
- "HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
- "ButtonDismiss": "Dismiss",
- "MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
- "ButtonEditOtherUserPreferences": "Edit this user's personal preferences.",
- "LabelChannelStreamQuality": "Preferred internet stream quality:",
- "LabelChannelStreamQualityHelp": "In a low bandwidth environment, limiting quality can help ensure a smooth streaming experience.",
- "OptionBestAvailableStreamQuality": "Best available",
- "LabelEnableChannelContentDownloadingFor": "Enable channel content downloading for:",
- "LabelEnableChannelContentDownloadingForHelp": "Some channels support downloading content prior to viewing. Enable this in low bandwidth enviornments to download channel content during off hours. Content is downloaded as part of the channel download scheduled task.",
- "LabelChannelDownloadPath": "Channel content download path:",
- "LabelChannelDownloadPathHelp": "Specify a custom download path if desired. Leave empty to download to an internal program data folder.",
- "LabelChannelDownloadAge": "Delete content after: (days)",
- "LabelChannelDownloadAgeHelp": "Downloaded content older than this will be deleted. It will remain playable via internet streaming.",
- "ChannelSettingsFormHelp": "Install channels such as Trailers and Vimeo in the plugin catalog.",
- "LabelSelectCollection": "Select collection:",
- "ViewTypeMovies": "Movies",
- "ViewTypeTvShows": "TV",
- "ViewTypeGames": "Games",
- "ViewTypeMusic": "Music",
- "ViewTypeBoxSets": "Collections",
- "ViewTypeChannels": "Channels",
- "ViewTypeLiveTV": "Live TV",
- "HeaderOtherDisplaySettings": "Display Settings",
- "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": "Media folders",
- "TitleRemoteControl": "Remote Control",
- "OptionLatestTvRecordings": "Latest recordings",
- "LabelProtocolInfo": "Protocol info:",
- "LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.",
- "TabXbmcMetadata": "Xbmc",
- "HeaderXbmcMetadataHelp": "Media Browser includes native support for Xbmc Nfo metadata and images. To enable or disable Xbmc metadata, use the Advanced tab to configure options for your media types.",
- "LabelXbmcMetadataUser": "Add user watch data to nfo's for:",
- "LabelXbmcMetadataUserHelp": "Enable this to keep watch data in sync between Media Browser and Xbmc.",
- "LabelXbmcMetadataDateFormat": "Release date format:",
- "LabelXbmcMetadataDateFormatHelp": "All dates within nfo's will be read and written to using this format.",
- "LabelXbmcMetadataSaveImagePaths": "Save image paths within nfo files",
- "LabelXbmcMetadataSaveImagePathsHelp": "This is recommended if you have image file names that don't conform to Xbmc guidelines.",
- "LabelXbmcMetadataEnablePathSubstitution": "Enable path substitution",
- "LabelXbmcMetadataEnablePathSubstitutionHelp": "Enables path substitution of image paths using the server's path substitution settings.",
- "LabelXbmcMetadataEnablePathSubstitutionHelp2": "See path substitution.",
- "LabelGroupChannelsIntoViews": "Display the following channels directly within my views:",
- "LabelGroupChannelsIntoViewsHelp": "If enabled, these channels will be displayed directly alongside other views. If disabled, they'll be displayed within a separate Channels view.",
- "LabelDisplayCollectionsView": "Display a collections view to show movie collections",
- "LabelXbmcMetadataEnableExtraThumbs": "Copy extrafanart into extrathumbs",
- "LabelXbmcMetadataEnableExtraThumbsHelp": "When downloading images they can be saved into both extrafanart and extrathumbs for maximum Xbmc skin compatibility.",
- "TabServices": "Services",
- "TabLogs": "Logs",
- "HeaderServerLogFiles": "Server log files:",
- "TabBranding": "Branding",
- "HeaderBrandingHelp": "Customize the appearance of Media Browser to fit the needs of your group or organization.",
- "LabelLoginDisclaimer": "Login disclaimer:",
- "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.",
- "LabelAutomaticallyDonate": "Automatically donate this amount every six months",
- "LabelAutomaticallyDonateHelp": "You can cancel at any time via your PayPal account.",
- "OptionList": "List",
- "TabDashboard": "Dashboard",
- "TitleServer": "Server",
- "LabelCache": "Cache:",
- "LabelLogs": "Logs:",
- "LabelMetadata": "Metadata:",
- "LabelImagesByName": "Images by name:",
- "LabelTranscodingTemporaryFiles": "Transcoding temporary files:",
- "HeaderLatestMusic": "Latest Music",
- "HeaderBranding": "Branding",
- "HeaderApiKeys": "Api Keys",
- "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Media Browser. Keys are issued by logging in with a Media Browser account, or by manually granting the application a key.",
- "HeaderApiKey": "Api Key",
- "HeaderApp": "App",
- "HeaderDevice": "Device",
- "HeaderUser": "User",
- "HeaderDateIssued": "Date Issued",
- "LabelChapterName": "Chapter {0}",
- "HeaderNewApiKey": "New Api Key",
- "LabelAppName": "App name",
- "LabelAppNameExample": "Example: Sickbeard, NzbDrone",
- "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Media Browser.",
- "ButtonEnterSupporterKey": "Enter supporter key",
- "HeaderHttpHeaders": "Http Headers",
- "HeaderIdentificationHeader": "Identification Header",
- "LabelValue": "Value:",
- "LabelMatchType": "Match type:",
- "OptionEquals": "Equals",
- "OptionRegex": "Regex",
- "OptionSubstring": "Substring"
-} \ No newline at end of file
+ "LabelVisitCommunity": "Visit Community",
+ "LabelGithubWiki": "Github Wiki",
+ "LabelSwagger": "Swagger",
+ "LabelStandard": "Standard",
+ "LabelViewApiDocumentation": "View Api Documentation",
+ "LabelBrowseLibrary": "Browse Library",
+ "LabelConfigureMediaBrowser": "Configure Media Browser",
+ "LabelOpenLibraryViewer": "Open Library Viewer",
+ "LabelRestartServer": "Restart Server",
+ "LabelShowLogWindow": "Show Log Window",
+ "LabelPrevious": "Previous",
+ "LabelFinish": "Finish",
+ "LabelNext": "Next",
+ "LabelYoureDone": "You're Done!",
+ "WelcomeToMediaBrowser": "Welcome to Media Browser!",
+ "TitleMediaBrowser": "Media Browser",
+ "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
+ "TellUsAboutYourself": "Tell us about yourself",
+ "LabelYourFirstName": "Your first name:",
+ "MoreUsersCanBeAddedLater": "More users can be added later within the Dashboard.",
+ "UserProfilesIntro": "Media Browser includes built-in support for user profiles, enabling each user to have their own display settings, playstate and parental controls.",
+ "LabelWindowsService": "Windows Service",
+ "AWindowsServiceHasBeenInstalled": "A Windows Service has been installed.",
+ "WindowsServiceIntro1": "Media Browser Server normally runs as a desktop application with a tray icon, but if you prefer to run it as a background service, it can be started from the windows services control panel instead.",
+ "WindowsServiceIntro2": "If using the windows service, please note that it cannot be run at the same time as the tray icon, so you'll need to exit the tray in order to run the service. The service will also need to be configured with administrative privileges via the control panel. Please note that at this time the service is unable to self-update, so new versions will require manual interaction.",
+ "WizardCompleted": "That's all we need for now. Media Browser has begun collecting information about your media library. Check out some of our apps, and then click <b>Finish</b> to view the <b>Dashboard</b>.",
+ "LabelConfigureSettings": "Configure settings",
+ "LabelEnableVideoImageExtraction": "Enable video image extraction",
+ "VideoImageExtractionHelp": "For videos that don't already have images, and that we're unable to find internet images for. This will add some additional time to the initial library scan but will result in a more pleasing presentation.",
+ "LabelEnableChapterImageExtractionForMovies": "Extract chapter image extraction for Movies",
+ "LabelChapterImageExtractionForMoviesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs as a nightly scheduled task at 4am, although this is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.",
+ "LabelEnableAutomaticPortMapping": "Enable automatic port mapping",
+ "LabelEnableAutomaticPortMappingHelp": "UPnP allows automated router configuration for easy remote access. This may not work with some router models.",
+ "ButtonOk": "Ok",
+ "ButtonCancel": "Cancel",
+ "ButtonNew": "New",
+ "HeaderSetupLibrary": "Setup your media library",
+ "ButtonAddMediaFolder": "Add media folder",
+ "LabelFolderType": "Folder type:",
+ "MediaFolderHelpPluginRequired": "* Requires the use of a plugin, e.g. GameBrowser or MB Bookshelf.",
+ "ReferToMediaLibraryWiki": "Refer to the media library wiki.",
+ "LabelCountry": "Country:",
+ "LabelLanguage": "Language:",
+ "HeaderPreferredMetadataLanguage": "Preferred metadata language:",
+ "LabelSaveLocalMetadata": "Save artwork and metadata into media folders",
+ "LabelSaveLocalMetadataHelp": "Saving artwork and metadata directly into media folders will put them in a place where they can be easily edited.",
+ "LabelDownloadInternetMetadata": "Download artwork and metadata from the internet",
+ "LabelDownloadInternetMetadataHelp": "Media Browser can download information about your media to enable rich presentations.",
+ "TabPreferences": "Preferences",
+ "TabPassword": "Password",
+ "TabLibraryAccess": "Library Access",
+ "TabImage": "Image",
+ "TabProfile": "Profile",
+ "TabMetadata": "Metadata",
+ "TabImages": "Images",
+ "TabNotifications": "Notifications",
+ "TabCollectionTitles": "Titles",
+ "LabelDisplayMissingEpisodesWithinSeasons": "Display missing episodes within seasons",
+ "LabelUnairedMissingEpisodesWithinSeasons": "Display unaired episodes within seasons",
+ "HeaderVideoPlaybackSettings": "Video Playback Settings",
+ "HeaderPlaybackSettings": "Playback Settings",
+ "LabelAudioLanguagePreference": "Audio language preference:",
+ "LabelSubtitleLanguagePreference": "Subtitle language preference:",
+ "OptionDefaultSubtitles": "Default",
+ "OptionOnlyForcedSubtitles": "Only forced subtitles",
+ "OptionAlwaysPlaySubtitles": "Always play subtitles",
+ "OptionNoSubtitles": "None",
+ "OptionDefaultSubtitlesHelp": "Subtitles matching the language preference will be loaded when the audio is in a foreign language.",
+ "OptionOnlyForcedSubtitlesHelp": "Only subtitles marked as forced will be loaded.",
+ "OptionAlwaysPlaySubtitlesHelp": "Subtitles matching the language preference will be loaded regardless of the audio language.",
+ "OptionNoSubtitlesHelp": "Subtitles will not be loaded by default.",
+ "TabProfiles": "Profiles",
+ "TabSecurity": "Security",
+ "ButtonAddUser": "Add User",
+ "ButtonSave": "Save",
+ "ButtonResetPassword": "Reset Password",
+ "LabelNewPassword": "New password:",
+ "LabelNewPasswordConfirm": "New password confirm:",
+ "HeaderCreatePassword": "Create Password",
+ "LabelCurrentPassword": "Current password:",
+ "LabelMaxParentalRating": "Maximum allowed parental rating:",
+ "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
+ "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
+ "ChannelAccessHelp": "Select the channels to share with this user. Administrators will be able to edit all channels using the metadata manager.",
+ "ButtonDeleteImage": "Delete Image",
+ "LabelSelectUsers": "Select users:",
+ "ButtonUpload": "Upload",
+ "HeaderUploadNewImage": "Upload New Image",
+ "LabelDropImageHere": "Drop Image Here",
+ "ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG/PNG only.",
+ "MessageNothingHere": "Nothing here.",
+ "MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
+ "TabSuggested": "Suggested",
+ "TabLatest": "Latest",
+ "TabUpcoming": "Upcoming",
+ "TabShows": "Shows",
+ "TabEpisodes": "Episodes",
+ "TabGenres": "Genres",
+ "TabPeople": "People",
+ "TabNetworks": "Networks",
+ "HeaderUsers": "Users",
+ "HeaderFilters": "Filters:",
+ "ButtonFilter": "Filter",
+ "OptionFavorite": "Favorites",
+ "OptionLikes": "Likes",
+ "OptionDislikes": "Dislikes",
+ "OptionActors": "Actors",
+ "OptionGuestStars": "Guest Stars",
+ "OptionDirectors": "Directors",
+ "OptionWriters": "Writers",
+ "OptionProducers": "Producers",
+ "HeaderResume": "Resume",
+ "HeaderNextUp": "Next Up",
+ "NoNextUpItemsMessage": "None found. Start watching your shows!",
+ "HeaderLatestEpisodes": "Latest Episodes",
+ "HeaderPersonTypes": "Person Types:",
+ "TabSongs": "Songs",
+ "TabAlbums": "Albums",
+ "TabArtists": "Artists",
+ "TabAlbumArtists": "Album Artists",
+ "TabMusicVideos": "Music Videos",
+ "ButtonSort": "Sort",
+ "HeaderSortBy": "Sort By:",
+ "HeaderSortOrder": "Sort Order:",
+ "OptionPlayed": "Played",
+ "OptionUnplayed": "Unplayed",
+ "OptionAscending": "Ascending",
+ "OptionDescending": "Descending",
+ "OptionRuntime": "Runtime",
+ "OptionReleaseDate": "Release Date",
+ "OptionPlayCount": "Play Count",
+ "OptionDatePlayed": "Date Played",
+ "OptionDateAdded": "Date Added",
+ "OptionAlbumArtist": "Album Artist",
+ "OptionArtist": "Artist",
+ "OptionAlbum": "Album",
+ "OptionTrackName": "Track Name",
+ "OptionCommunityRating": "Community Rating",
+ "OptionNameSort": "Name",
+ "OptionFolderSort": "Folders",
+ "OptionBudget": "Budget",
+ "OptionRevenue": "Revenue",
+ "OptionPoster": "Poster",
+ "OptionBackdrop": "Backdrop",
+ "OptionTimeline": "Timeline",
+ "OptionThumb": "Thumb",
+ "OptionBanner": "Banner",
+ "OptionCriticRating": "Critic Rating",
+ "OptionVideoBitrate": "Video Bitrate",
+ "OptionResumable": "Resumable",
+ "ScheduledTasksHelp": "Click a task to adjust its schedule.",
+ "ScheduledTasksTitle": "Scheduled Tasks",
+ "TabMyPlugins": "My Plugins",
+ "TabCatalog": "Catalog",
+ "PluginsTitle": "Plugins",
+ "HeaderAutomaticUpdates": "Automatic Updates",
+ "HeaderNowPlaying": "Now Playing",
+ "HeaderLatestAlbums": "Latest Albums",
+ "HeaderLatestSongs": "Latest Songs",
+ "HeaderRecentlyPlayed": "Recently Played",
+ "HeaderFrequentlyPlayed": "Frequently Played",
+ "DevBuildWarning": "Dev builds are the bleeding edge. Released often, these build have not been tested. The application may crash and entire features may not work at all.",
+ "LabelVideoType": "Video Type:",
+ "OptionBluray": "Bluray",
+ "OptionDvd": "Dvd",
+ "OptionIso": "Iso",
+ "Option3D": "3D",
+ "LabelFeatures": "Features:",
+ "LabelService": "Service:",
+ "LabelStatus": "Status:",
+ "LabelVersion": "Version:",
+ "LabelLastResult": "Last result:",
+ "OptionHasSubtitles": "Subtitles",
+ "OptionHasTrailer": "Trailer",
+ "OptionHasThemeSong": "Theme Song",
+ "OptionHasThemeVideo": "Theme Video",
+ "TabMovies": "Movies",
+ "TabStudios": "Studios",
+ "TabTrailers": "Trailers",
+ "HeaderLatestMovies": "Latest Movies",
+ "HeaderLatestTrailers": "Latest Trailers",
+ "OptionHasSpecialFeatures": "Special Features",
+ "OptionImdbRating": "IMDb Rating",
+ "OptionParentalRating": "Parental Rating",
+ "OptionPremiereDate": "Premiere Date",
+ "TabBasic": "Basic",
+ "TabAdvanced": "Advanced",
+ "HeaderStatus": "Status",
+ "OptionContinuing": "Continuing",
+ "OptionEnded": "Ended",
+ "HeaderAirDays": "Air Days",
+ "OptionSunday": "Sunday",
+ "OptionMonday": "Monday",
+ "OptionTuesday": "Tuesday",
+ "OptionWednesday": "Wednesday",
+ "OptionThursday": "Thursday",
+ "OptionFriday": "Friday",
+ "OptionSaturday": "Saturday",
+ "HeaderManagement": "Management",
+ "LabelManagement": "Management:",
+ "OptionMissingImdbId": "Missing IMDb Id",
+ "OptionMissingTvdbId": "Missing TheTVDB Id",
+ "OptionMissingOverview": "Missing Overview",
+ "OptionFileMetadataYearMismatch": "File/Metadata Years Mismatched",
+ "TabGeneral": "General",
+ "TitleSupport": "Support",
+ "TabLog": "Log",
+ "TabAbout": "About",
+ "TabSupporterKey": "Supporter Key",
+ "TabBecomeSupporter": "Become a Supporter",
+ "MediaBrowserHasCommunity": "Media Browser has a thriving community of users and contributors.",
+ "CheckoutKnowledgeBase": "Check out our knowledge base to help you get the most out of Media Browser.",
+ "SearchKnowledgeBase": "Search the Knowledge Base",
+ "VisitTheCommunity": "Visit the Community",
+ "VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
+ "VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "OptionHideUser": "Hide this user from login screens",
+ "OptionDisableUser": "Disable this user",
+ "OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "HeaderAdvancedControl": "Advanced Control",
+ "LabelName": "Name:",
+ "OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "HeaderFeatureAccess": "Feature Access",
+ "OptionAllowMediaPlayback": "Allow media playback",
+ "OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
+ "OptionAllowDeleteLibraryContent": "Allow this user to delete library content",
+ "OptionAllowManageLiveTv": "Allow management of live tv recordings",
+ "OptionAllowRemoteControlOthers": "Allow this user to remote control other users",
+ "OptionMissingTmdbId": "Missing Tmdb Id",
+ "OptionIsHD": "HD",
+ "OptionIsSD": "SD",
+ "OptionMetascore": "Metascore",
+ "ButtonSelect": "Select",
+ "ButtonSearch": "Search",
+ "ButtonGroupVersions": "Group Versions",
+ "ButtonAddToCollection": "Add to Collection",
+ "PismoMessage": "Utilizing Pismo File Mount through a donated license.",
+ "TangibleSoftwareMessage": "Utilizing Tangible Solutions Java/C# converters through a donated license.",
+ "HeaderCredits": "Credits",
+ "PleaseSupportOtherProduces": "Please support other free products we utilize:",
+ "VersionNumber": "Version {0}",
+ "TabPaths": "Paths",
+ "TabServer": "Server",
+ "TabTranscoding": "Transcoding",
+ "TitleAdvanced": "Advanced",
+ "LabelAutomaticUpdateLevel": "Automatic update level",
+ "OptionRelease": "Official Release",
+ "OptionBeta": "Beta",
+ "OptionDev": "Dev (Unstable)",
+ "LabelAllowServerAutoRestart": "Allow the server to restart automatically to apply updates",
+ "LabelAllowServerAutoRestartHelp": "The server will only restart during idle periods, when no users are active.",
+ "LabelEnableDebugLogging": "Enable debug logging",
+ "LabelRunServerAtStartup": "Run server at startup",
+ "LabelRunServerAtStartupHelp": "This will start the tray icon on windows startup. To start the windows service, uncheck this and run the service from the windows control panel. Please note that you cannot run both at the same time, so you will need to exit the tray icon before starting the service.",
+ "ButtonSelectDirectory": "Select Directory",
+ "LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
+ "LabelCachePath": "Cache path:",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
+ "LabelImagesByNamePath": "Images by name path:",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
+ "LabelMetadataPath": "Metadata path:",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
+ "LabelTranscodingTempPath": "Transcoding temporary path:",
+ "LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
+ "TabBasics": "Basics",
+ "TabTV": "TV",
+ "TabGames": "Games",
+ "TabMusic": "Music",
+ "TabOthers": "Others",
+ "HeaderExtractChapterImagesFor": "Extract chapter images for:",
+ "OptionMovies": "Movies",
+ "OptionEpisodes": "Episodes",
+ "OptionOtherVideos": "Other Videos",
+ "TitleMetadata": "Metadata",
+ "LabelAutomaticUpdatesFanart": "Enable automatic updates from FanArt.tv",
+ "LabelAutomaticUpdatesTmdb": "Enable automatic updates from TheMovieDB.org",
+ "LabelAutomaticUpdatesTvdb": "Enable automatic updates from TheTVDB.com",
+ "LabelAutomaticUpdatesFanartHelp": "If enabled, new images will be downloaded automatically as they're added to fanart.tv. Existing images will not be replaced.",
+ "LabelAutomaticUpdatesTmdbHelp": "If enabled, new images will be downloaded automatically as they're added to TheMovieDB.org. Existing images will not be replaced.",
+ "LabelAutomaticUpdatesTvdbHelp": "If enabled, new images will be downloaded automatically as they're added to TheTVDB.com. Existing images will not be replaced.",
+ "ExtractChapterImagesHelp": "Extracting chapter images will allow clients to display graphical scene selection menus. The process can be slow, cpu-intensive and may require several gigabytes of space. It runs when videos are discovered, and also as a nightly scheduled task at 4am. The schedule is configurable in the scheduled tasks area. It is not recommended to run this task during peak usage hours.",
+ "LabelMetadataDownloadLanguage": "Preferred download language:",
+ "ButtonAutoScroll": "Auto-scroll",
+ "LabelImageSavingConvention": "Image saving convention:",
+ "LabelImageSavingConventionHelp": "Media Browser recognizes images from most major media applications. Choosing your downloading convention is useful if you also use other products.",
+ "OptionImageSavingCompatible": "Compatible - Media Browser/Xbmc/Plex",
+ "OptionImageSavingStandard": "Standard - MB2",
+ "ButtonSignIn": "Sign In",
+ "TitleSignIn": "Sign In",
+ "HeaderPleaseSignIn": "Please sign in",
+ "LabelUser": "User:",
+ "LabelPassword": "Password:",
+ "ButtonManualLogin": "Manual Login",
+ "PasswordLocalhostMessage": "Passwords are not required when logging in from localhost.",
+ "TabGuide": "Guide",
+ "TabChannels": "Channels",
+ "TabCollections": "Collections",
+ "HeaderChannels": "Channels",
+ "TabRecordings": "Recordings",
+ "TabScheduled": "Scheduled",
+ "TabSeries": "Series",
+ "TabFavorites": "Favorites",
+ "TabMyLibrary": "My Library",
+ "ButtonCancelRecording": "Cancel Recording",
+ "HeaderPrePostPadding": "Pre/Post Padding",
+ "LabelPrePaddingMinutes": "Pre-padding minutes:",
+ "OptionPrePaddingRequired": "Pre-padding is required in order to record.",
+ "LabelPostPaddingMinutes": "Post-padding minutes:",
+ "OptionPostPaddingRequired": "Post-padding is required in order to record.",
+ "HeaderWhatsOnTV": "What's On",
+ "HeaderUpcomingTV": "Upcoming TV",
+ "TabStatus": "Status",
+ "TabSettings": "Settings",
+ "ButtonRefreshGuideData": "Refresh Guide Data",
+ "OptionPriority": "Priority",
+ "OptionRecordOnAllChannels": "Record program on all channels",
+ "OptionRecordAnytime": "Record program at any time",
+ "OptionRecordOnlyNewEpisodes": "Record only new episodes",
+ "HeaderDays": "Days",
+ "HeaderActiveRecordings": "Active Recordings",
+ "HeaderLatestRecordings": "Latest Recordings",
+ "HeaderAllRecordings": "All Recordings",
+ "ButtonPlay": "Play",
+ "ButtonEdit": "Edit",
+ "ButtonRecord": "Record",
+ "ButtonDelete": "Delete",
+ "ButtonRemove": "Remove",
+ "OptionRecordSeries": "Record Series",
+ "HeaderDetails": "Details",
+ "ButtonCancelRecording": "Cancel Recording",
+ "TitleLiveTV": "Live TV",
+ "LabelNumberOfGuideDays": "Number of days of guide data to download:",
+ "LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.",
+ "LabelActiveService": "Active Service:",
+ "LabelActiveServiceHelp": "Multiple tv plugins can be installed but only one can be active at a time.",
+ "OptionAutomatic": "Auto",
+ "LiveTvPluginRequired": "A Live TV service provider plugin is required in order to continue.",
+ "LiveTvPluginRequiredHelp": "Please install one of our available plugins, such as Next Pvr or ServerWmc.",
+ "LabelCustomizeOptionsPerMediaType": "Customize for media type:",
+ "OptionDownloadThumbImage": "Thumb",
+ "OptionDownloadMenuImage": "Menu",
+ "OptionDownloadLogoImage": "Logo",
+ "OptionDownloadBoxImage": "Box",
+ "OptionDownloadDiscImage": "Disc",
+ "OptionDownloadBannerImage": "Banner",
+ "OptionDownloadBackImage": "Back",
+ "OptionDownloadArtImage": "Art",
+ "OptionDownloadPrimaryImage": "Primary",
+ "HeaderFetchImages": "Fetch Images:",
+ "HeaderImageSettings": "Image Settings",
+ "TabOther": "Other",
+ "LabelMaxBackdropsPerItem": "Maximum number of backdrops per item:",
+ "LabelMaxScreenshotsPerItem": "Maximum number of screenshots per item:",
+ "LabelMinBackdropDownloadWidth": "Minimum backdrop download width:",
+ "LabelMinScreenshotDownloadWidth": "Minimum screenshot download width:",
+ "ButtonAddScheduledTaskTrigger": "Add Task Trigger",
+ "HeaderAddScheduledTaskTrigger": "Add Task Trigger",
+ "ButtonAdd": "Add",
+ "LabelTriggerType": "Trigger Type:",
+ "OptionDaily": "Daily",
+ "OptionWeekly": "Weekly",
+ "OptionOnInterval": "On an interval",
+ "OptionOnAppStartup": "On application startup",
+ "OptionAfterSystemEvent": "After a system event",
+ "LabelDay": "Day:",
+ "LabelTime": "Time:",
+ "LabelEvent": "Event:",
+ "OptionWakeFromSleep": "Wake from sleep",
+ "LabelEveryXMinutes": "Every:",
+ "HeaderTvTuners": "Tuners",
+ "HeaderGallery": "Gallery",
+ "HeaderLatestGames": "Latest Games",
+ "HeaderRecentlyPlayedGames": "Recently Played Games",
+ "TabGameSystems": "Game Systems",
+ "TitleMediaLibrary": "Media Library",
+ "TabFolders": "Folders",
+ "TabPathSubstitution": "Path Substitution",
+ "LabelSeasonZeroDisplayName": "Season 0 display name:",
+ "LabelEnableRealtimeMonitor": "Enable real time monitoring",
+ "LabelEnableRealtimeMonitorHelp": "Changes will be processed immediately, on supported file systems.",
+ "ButtonScanLibrary": "Scan Library",
+ "HeaderNumberOfPlayers": "Players:",
+ "OptionAnyNumberOfPlayers": "Any",
+ "Option1Player": "1+",
+ "Option2Player": "2+",
+ "Option3Player": "3+",
+ "Option4Player": "4+",
+ "HeaderMediaFolders": "Media Folders",
+ "HeaderThemeVideos": "Theme Videos",
+ "HeaderThemeSongs": "Theme Songs",
+ "HeaderScenes": "Scenes",
+ "HeaderAwardsAndReviews": "Awards and Reviews",
+ "HeaderSoundtracks": "Soundtracks",
+ "HeaderMusicVideos": "Music Videos",
+ "HeaderSpecialFeatures": "Special Features",
+ "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.",
+ "HeaderFrom": "From",
+ "HeaderTo": "To",
+ "LabelFrom": "From:",
+ "LabelFromHelp": "Example: D:\\Movies (on the server)",
+ "LabelTo": "To:",
+ "LabelToHelp": "Example: \\\\MyServer\\Movies (a path clients can access)",
+ "ButtonAddPathSubstitution": "Add Substitution",
+ "OptionSpecialEpisode": "Specials",
+ "OptionMissingEpisode": "Missing Episodes",
+ "OptionUnairedEpisode": "Unaired Episodes",
+ "OptionEpisodeSortName": "Episode Sort Name",
+ "OptionSeriesSortName": "Series Name",
+ "OptionTvdbRating": "Tvdb Rating",
+ "HeaderTranscodingQualityPreference": "Transcoding Quality Preference:",
+ "OptionAutomaticTranscodingHelp": "The server will decide quality and speed",
+ "OptionHighSpeedTranscodingHelp": "Lower quality, but faster encoding",
+ "OptionHighQualityTranscodingHelp": "Higher quality, but slower encoding",
+ "OptionMaxQualityTranscodingHelp": "Best quality with slower encoding and high CPU usage",
+ "OptionHighSpeedTranscoding": "Higher speed",
+ "OptionHighQualityTranscoding": "Higher quality",
+ "OptionMaxQualityTranscoding": "Max quality",
+ "OptionEnableDebugTranscodingLogging": "Enable debug transcoding logging",
+ "OptionEnableDebugTranscodingLoggingHelp": "This will create very large log files and is only recommended as needed for troubleshooting purposes.",
+ "OptionEnableDebugTranscodingLogging": "Enable debug transcoding logging",
+ "OptionUpscaling": "Allow clients to request upscaled video",
+ "OptionUpscalingHelp": "In some cases this will result in improved video quality but will increase CPU usage.",
+ "EditCollectionItemsHelp": "Add or remove any movies, series, albums, books or games you wish to group within this collection.",
+ "HeaderAddTitles": "Add Titles",
+ "LabelEnableDlnaPlayTo": "Enable DLNA Play To",
+ "LabelEnableDlnaPlayToHelp": "Media Browser can detect devices within your network and offer the ability to remote control them.",
+ "LabelEnableDlnaDebugLogging": "Enable DLNA debug logging",
+ "LabelEnableDlnaDebugLoggingHelp": "This will create large log files and should only be used as needed for troubleshooting purposes.",
+ "LabelEnableDlnaClientDiscoveryInterval": "Client discovery interval (seconds)",
+ "LabelEnableDlnaClientDiscoveryIntervalHelp": "Determines the duration in seconds between SSDP searches performed by Media Browser.",
+ "HeaderCustomDlnaProfiles": "Custom Profiles",
+ "HeaderSystemDlnaProfiles": "System Profiles",
+ "CustomDlnaProfilesHelp": "Create a custom profile to target a new device or override a system profile.",
+ "SystemDlnaProfilesHelp": "System profiles are read-only. Changes to a system profile will be saved to a new custom profile.",
+ "TitleDashboard": "Dashboard",
+ "TabHome": "Home",
+ "TabInfo": "Info",
+ "HeaderLinks": "Links",
+ "HeaderSystemPaths": "System Paths",
+ "LinkCommunity": "Community",
+ "LinkGithub": "Github",
+ "LinkApiDocumentation": "Api Documentation",
+ "LabelFriendlyServerName": "Friendly server name:",
+ "LabelFriendlyServerNameHelp": "This name will be used to identify this server. If left blank, the computer name will be used.",
+ "LabelPreferredDisplayLanguage": "Preferred display language",
+ "LabelPreferredDisplayLanguageHelp": "Translating Media Browser is an ongoing project and is not yet complete.",
+ "LabelReadHowYouCanContribute": "Read about how you can contribute.",
+ "HeaderNewCollection": "New Collection",
+ "HeaderAddToCollection": "Add to Collection",
+ "ButtonSubmit": "Submit",
+ "NewCollectionNameExample": "Example: Star Wars Collection",
+ "OptionSearchForInternetMetadata": "Search the internet for artwork and metadata",
+ "ButtonCreate": "Create",
+ "LabelHttpServerPortNumber": "Http server port number:",
+ "LabelWebSocketPortNumber": "Web socket port number:",
+ "LabelEnableAutomaticPortMapping": "Enable automatic port mapping",
+ "LabelEnableAutomaticPortHelp": "UPnP allows automated router configuration for remote access. This may not work with some router models.",
+ "LabelExternalDDNS": "External DDNS:",
+ "LabelExternalDDNSHelp": "If you have a dynamic DNS enter it here. Media Browser apps will use it when connecting remotely.",
+ "TabResume": "Resume",
+ "TabWeather": "Weather",
+ "TitleAppSettings": "App Settings",
+ "LabelMinResumePercentage": "Min resume percentage:",
+ "LabelMaxResumePercentage": "Max resume percentage:",
+ "LabelMinResumeDuration": "Min resume duration (seconds):",
+ "LabelMinResumePercentageHelp": "Titles are assumed unplayed if stopped before this time",
+ "LabelMaxResumePercentageHelp": "Titles are assumed fully played if stopped after this time",
+ "LabelMinResumeDurationHelp": "Titles shorter than this will not be resumable",
+ "TitleAutoOrganize": "Auto-Organize",
+ "TabActivityLog": "Activity Log",
+ "HeaderName": "Name",
+ "HeaderDate": "Date",
+ "HeaderSource": "Source",
+ "HeaderStatus": "Status",
+ "HeaderDestination": "Destination",
+ "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:",
+ "LabelEndingEpisodeNumberHelp": "Only required for multi-episode files",
+ "HeaderSupportTheTeam": "Support the Media Browser Team",
+ "LabelSupportAmount": "Amount (USD)",
+ "HeaderSupportTheTeamHelp": "Help ensure the continued development of this project by donating. A portion of all donations will be contributed to other free tools we depend on.",
+ "ButtonEnterSupporterKey": "Enter supporter key",
+ "DonationNextStep": "Once complete, please return and enter your supporter key, which you will receive by email.",
+ "AutoOrganizeHelp": "Auto-organize monitors your download folders for new files and moves them to your media directories.",
+ "AutoOrganizeTvHelp": "TV file organizing will only add episodes to existing series. It will not create new series folders.",
+ "OptionEnableEpisodeOrganization": "Enable new episode organization",
+ "LabelWatchFolder": "Watch folder:",
+ "LabelWatchFolderHelp": "The server will poll this folder during the 'Organize new media files' scheduled task.",
+ "ButtonViewScheduledTasks": "View scheduled tasks",
+ "LabelMinFileSizeForOrganize": "Minimum file size (MB):",
+ "LabelMinFileSizeForOrganizeHelp": "Files under this size will be ignored.",
+ "LabelSeasonFolderPattern": "Season folder pattern:",
+ "LabelSeasonZeroFolderName": "Season zero folder name:",
+ "HeaderEpisodeFilePattern": "Episode file pattern",
+ "LabelEpisodePattern": "Episode pattern:",
+ "LabelMultiEpisodePattern": "Multi-Episode pattern:",
+ "HeaderSupportedPatterns": "Supported Patterns",
+ "HeaderTerm": "Term",
+ "HeaderPattern": "Pattern",
+ "HeaderResult": "Result",
+ "LabelDeleteEmptyFolders": "Delete empty folders after organizing",
+ "LabelDeleteEmptyFoldersHelp": "Enable this to keep the download directory clean.",
+ "LabelDeleteLeftOverFiles": "Delete left over files with the following extensions:",
+ "LabelDeleteLeftOverFilesHelp": "Separate with ;. For example: .nfo;.txt",
+ "OptionOverwriteExistingEpisodes": "Overwrite existing episodes",
+ "LabelTransferMethod": "Transfer method",
+ "OptionCopy": "Copy",
+ "OptionMove": "Move",
+ "LabelTransferMethodHelp": "Copy or move files from the watch folder",
+ "HeaderLatestNews": "Latest News",
+ "HeaderHelpImproveMediaBrowser": "Help Improve Media Browser",
+ "HeaderRunningTasks": "Running Tasks",
+ "HeaderActiveDevices": "Active Devices",
+ "HeaderPendingInstallations": "Pending Installations",
+ "HeaerServerInformation": "Server Information",
+ "ButtonRestartNow": "Restart Now",
+ "ButtonRestart": "Restart",
+ "ButtonShutdown": "Shutdown",
+ "ButtonUpdateNow": "Update Now",
+ "PleaseUpdateManually": "Please shutdown the server and update manually.",
+ "NewServerVersionAvailable": "A new version of Media Browser Server is available!",
+ "ServerUpToDate": "Media Browser Server is up to date",
+ "ErrorConnectingToMediaBrowserRepository": "There was an error connecting to the remote Media Browser repository.",
+ "LabelComponentsUpdated": "The following components have been installed or updated:",
+ "MessagePleaseRestartServerToFinishUpdating": "Please restart the server to finish applying updates.",
+ "LabelDownMixAudioScale": "Audio boost when downmixing:",
+ "LabelDownMixAudioScaleHelp": "Boost audio when downmixing. Set to 1 to preserve original volume value.",
+ "ButtonLinkKeys": "Link Keys",
+ "LabelOldSupporterKey": "Old supporter key",
+ "LabelNewSupporterKey": "New supporter key",
+ "HeaderMultipleKeyLinking": "Multiple Key Linking",
+ "MultipleKeyLinkingHelp": "If you have more than one supporter key, use this form to link the old key's registrations with your new one.",
+ "LabelCurrentEmailAddress": "Current email address",
+ "LabelCurrentEmailAddressHelp": "The current email address to which your new key was sent.",
+ "HeaderForgotKey": "Forgot Key",
+ "LabelEmailAddress": "Email address",
+ "LabelSupporterEmailAddress": "The email address that was used to purchase the key.",
+ "ButtonRetrieveKey": "Retrieve Key",
+ "LabelSupporterKey": "Supporter Key (paste from email)",
+ "LabelSupporterKeyHelp": "Enter your supporter key to start enjoying additional benefits the community has developed for Media Browser.",
+ "MessageInvalidKey": "Supporter key is missing or invalid.",
+ "ErrorMessageInvalidKey": "In order for any premium content to be registered, you must also be a Media Browser Supporter. Please donate and support the continued development of the core product. Thank you.",
+ "HeaderDisplaySettings": "Display Settings",
+ "TabPlayTo": "Play To",
+ "LabelEnableDlnaServer": "Enable Dlna server",
+ "LabelEnableDlnaServerHelp": "Allows UPnP devices on your network to browse and play Media Browser content.",
+ "LabelEnableBlastAliveMessages": "Blast alive messages",
+ "LabelEnableBlastAliveMessagesHelp": "Enable this if the server is not detected reliably by other UPnP devices on your network.",
+ "LabelBlastMessageInterval": "Alive message interval (seconds)",
+ "LabelBlastMessageIntervalHelp": "Determines the duration in seconds between server alive messages.",
+ "LabelDefaultUser": "Default user:",
+ "LabelDefaultUserHelp": "Determines which user library should be displayed on connected devices. This can be overridden for each device using profiles.",
+ "TitleDlna": "DLNA",
+ "TitleChannels": "Channels",
+ "HeaderServerSettings": "Server Settings",
+ "LabelWeatherDisplayLocation": "Weather display location:",
+ "LabelWeatherDisplayLocationHelp": "US zip code / City, State, Country / City, Country",
+ "LabelWeatherDisplayUnit": "Weather display unit:",
+ "OptionCelsius": "Celsius",
+ "OptionFahrenheit": "Fahrenheit",
+ "HeaderRequireManualLogin": "Require manual username entry for:",
+ "HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
+ "OptionOtherApps": "Other apps",
+ "OptionMobileApps": "Mobile apps",
+ "HeaderNotificationList": "Click on a notification to configure it's sending options.",
+ "NotificationOptionApplicationUpdateAvailable": "Application update available",
+ "NotificationOptionApplicationUpdateInstalled": "Application update installed",
+ "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
+ "NotificationOptionPluginInstalled": "Plugin installed",
+ "NotificationOptionPluginUninstalled": "Plugin uninstalled",
+ "NotificationOptionVideoPlayback": "Video playback started",
+ "NotificationOptionAudioPlayback": "Audio playback started",
+ "NotificationOptionGamePlayback": "Game playback started",
+ "NotificationOptionVideoPlaybackStopped": "Video playback stopped",
+ "NotificationOptionAudioPlaybackStopped": "Audio playback stopped",
+ "NotificationOptionGamePlaybackStopped": "Game playback stopped",
+ "NotificationOptionTaskFailed": "Scheduled task failure",
+ "NotificationOptionInstallationFailed": "Installation failure",
+ "NotificationOptionNewLibraryContent": "New content added",
+ "NotificationOptionNewLibraryContentMultiple": "New content added (multiple)",
+ "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
+ "NotificationOptionServerRestartRequired": "Server restart required",
+ "LabelNotificationEnabled": "Enable this notification",
+ "LabelMonitorUsers": "Monitor activity from:",
+ "LabelSendNotificationToUsers": "Send the notification to:",
+ "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
+ "LabelUseNotificationServices": "Use the following services:",
+ "CategoryUser": "User",
+ "CategorySystem": "System",
+ "CategoryApplication": "Application",
+ "CategoryPlugin": "Plugin",
+ "LabelMessageTitle": "Message title:",
+ "LabelAvailableTokens": "Available tokens:",
+ "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+ "OptionAllUsers": "All users",
+ "OptionAdminUsers": "Administrators",
+ "OptionCustomUsers": "Custom",
+ "ButtonArrowUp": "Up",
+ "ButtonArrowDown": "Down",
+ "ButtonArrowLeft": "Left",
+ "ButtonArrowRight": "Right",
+ "ButtonBack": "Back",
+ "ButtonInfo": "Info",
+ "ButtonOsd": "On screen display",
+ "ButtonPageUp": "Page Up",
+ "ButtonPageDown": "Page Down",
+ "PageAbbreviation": "PG",
+ "ButtonHome": "Home",
+ "ButtonSearch": "Search",
+ "ButtonSettings": "Settings",
+ "ButtonTakeScreenshot": "Capture Screenshot",
+ "ButtonLetterUp": "Letter Up",
+ "ButtonLetterDown": "Letter Down",
+ "PageButtonAbbreviation": "PG",
+ "LetterButtonAbbreviation": "A",
+ "TabNowPlaying": "Now Playing",
+ "TabNavigation": "Navigation",
+ "TabControls": "Controls",
+ "ButtonFullscreen": "Toggle fullscreen",
+ "ButtonScenes": "Scenes",
+ "ButtonSubtitles": "Subtitles",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
+ "ButtonStop": "Stop",
+ "ButtonPlay": "Play",
+ "ButtonPause": "Pause",
+ "LabelGroupMoviesIntoCollections": "Group movies into collections",
+ "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+ "NotificationOptionPluginError": "Plugin failure",
+ "ButtonVolumeUp": "Volume up",
+ "ButtonVolumeDown": "Volume down",
+ "ButtonMute": "Mute",
+ "HeaderLatestMedia": "Latest Media",
+ "OptionNoSubtitles": "No Subtitles",
+ "OptionSpecialFeatures": "Special Features",
+ "HeaderCollections": "Collections",
+ "HeaderChannels": "Channels",
+ "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",
+ "LabelType": "Type:",
+ "LabelProfileContainer": "Container:",
+ "LabelProfileVideoCodecs": "Video codecs:",
+ "LabelProfileAudioCodecs": "Audio codecs:",
+ "LabelProfileCodecs": "Codecs:",
+ "HeaderDirectPlayProfile": "Direct Play Profile",
+ "HeaderTranscodingProfile": "Transcoding Profile",
+ "HeaderCodecProfile": "Codec Profile",
+ "HeaderCodecProfileHelp": "Define additional conditions that must be met in order for a codec to be direct played.",
+ "HeaderContainerProfile": "Container Profile",
+ "HeaderContainerProfileHelp": "Define additional conditions that must be met in order for a file to be direct played.",
+ "OptionProfileVideo": "Video",
+ "OptionProfileAudio": "Audio",
+ "OptionProfileVideoAudio": "Video Audio",
+ "OptionProfilePhoto": "Photo",
+ "LabelUserLibrary": "User library:",
+ "LabelUserLibraryHelp": "Select which user library to display to the device. Leave empty to inherit the default setting.",
+ "OptionPlainStorageFolders": "Display all folders as plain storage folders",
+ "OptionPlainStorageFoldersHelp": "If enabled, all folders are represented in DIDL as \"object.container.storageFolder\" instead of a more specific type, such as \"object.container.person.musicArtist\".",
+ "OptionPlainVideoItems": "Display all videos as plain video items",
+ "OptionPlainVideoItemsHelp": "If enabled, all videos are represented in DIDL as \"object.item.videoItem\" instead of a more specific type, such as \"object.item.videoItem.movie\".",
+ "LabelSupportedMediaTypes": "Supported Media Types:",
+ "TabIdentification": "Identification",
+ "TabDirectPlay": "Direct Play",
+ "TabContainers": "Containers",
+ "TabCodecs": "Codecs",
+ "TabResponses": "Responses",
+ "HeaderProfileInformation": "Profile Information",
+ "LabelEmbedAlbumArtDidl": "Embed album art in Didl",
+ "LabelEmbedAlbumArtDidlHelp": "Some devices prefer this method for obtaining album art. Others may fail to play with this option enabled.",
+ "LabelAlbumArtPN": "Album art PN:",
+ "LabelAlbumArtHelp": "PN used for album art, within the dlna:profileID attribute on upnp:albumArtURI. Some clients require a specific value, regardless of the size of the image.",
+ "LabelAlbumArtMaxWidth": "Album art max width:",
+ "LabelAlbumArtMaxWidthHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
+ "LabelAlbumArtMaxHeight": "Album art max height:",
+ "LabelAlbumArtMaxHeightHelp": "Max resolution of album art exposed via upnp:albumArtURI.",
+ "LabelIconMaxWidth": "Icon max width:",
+ "LabelIconMaxWidthHelp": "Max resolution of icons exposed via upnp:icon.",
+ "LabelIconMaxHeight": "Icon max height:",
+ "LabelIconMaxHeightHelp": "Max resolution of icons exposed via upnp:icon.",
+ "LabelIdentificationFieldHelp": "A case-insensitive substring or regex expression.",
+ "HeaderProfileServerSettingsHelp": "These values control how Media Browser will present itself to the device.",
+ "LabelMaxBitrate": "Max bitrate:",
+ "LabelMaxBitrateHelp": "Specify a max bitrate in bandwidth constrained environments, or if the device imposes it's own limit.",
+ "OptionIgnoreTranscodeByteRangeRequests": "Ignore transcode byte range requests",
+ "OptionIgnoreTranscodeByteRangeRequestsHelp": "If enabled, these requests will be honored but will ignore the byte range header.",
+ "LabelFriendlyName": "Friendly name",
+ "LabelManufacturer": "Manufacturer",
+ "LabelManufacturerUrl": "Manufacturer url",
+ "LabelModelName": "Model name",
+ "LabelModelNumber": "Model number",
+ "LabelModelDescription": "Model description",
+ "LabelModelUrl": "Model url",
+ "LabelSerialNumber": "Serial number",
+ "LabelDeviceDescription": "Device description",
+ "HeaderIdentificationCriteriaHelp": "Enter at least one identification criteria.",
+ "HeaderDirectPlayProfileHelp": "Add direct play profiles to indicate which formats the device can handle natively.",
+ "HeaderTranscodingProfileHelp": "Add transcoding profiles to indicate which formats should be used when transcoding is required.",
+ "HeaderContainerProfileHelp": "Container profiles indicate the limitations of a device when playing specific formats. If a limitation applies then the media will be transcoded, even if the format is configured for direct play.",
+ "HeaderCodecProfileHelp": "Codec profiles indicate the limitations of a device when playing specific codecs. If a limitation applies then the media will be transcoded, even if the codec is configured for direct play.",
+ "HeaderResponseProfileHelp": "Response profiles provide a way to customize information sent to the device when playing certain kinds of media.",
+ "LabelXDlnaCap": "X-Dlna cap:",
+ "LabelXDlnaCapHelp": "Determines the content of the X_DLNACAP element in the urn:schemas-dlna-org:device-1-0 namespace.",
+ "LabelXDlnaDoc": "X-Dlna doc:",
+ "LabelXDlnaDocHelp": "Determines the content of the X_DLNADOC element in the urn:schemas-dlna-org:device-1-0 namespace.",
+ "LabelSonyAggregationFlags": "Sony aggregation flags:",
+ "LabelSonyAggregationFlagsHelp": "Determines the content of the aggregationFlags element in the urn:schemas-sonycom:av namespace.",
+ "LabelTranscodingContainer": "Container:",
+ "LabelTranscodingVideoCodec": "Video codec:",
+ "LabelTranscodingVideoProfile": "Video profile:",
+ "LabelTranscodingAudioCodec": "Audio codec:",
+ "OptionEnableM2tsMode": "Enable M2ts mode",
+ "OptionEnableM2tsModeHelp": "Enable m2ts mode when encoding to mpegts.",
+ "OptionEstimateContentLength": "Estimate content length when transcoding",
+ "OptionReportByteRangeSeekingWhenTranscoding": "Report that the server supports byte seeking when transcoding",
+ "OptionReportByteRangeSeekingWhenTranscodingHelp": "This is required for some devices that don't time seek very well.",
+ "HeaderSubtitleDownloadingHelp": "When Media Browser scans your video files it can search for missing subtitles, and download them using a subtitle provider such as OpenSubtitles.org.",
+ "HeaderDownloadSubtitlesFor": "Download subtitles for:",
+ "MessageNoChapterProviders": "Install a chapter provider plugin such as ChapterDb to enable additional chapter options.",
+ "LabelSkipIfGraphicalSubsPresent": "Skip if the video already contains graphical subtitles",
+ "LabelSkipIfGraphicalSubsPresentHelp": "Keeping text versions of subtitles will result in more efficient delivery to mobile clients.",
+ "TabSubtitles": "Subtitles",
+ "TabChapters": "Chapters",
+ "HeaderDownloadChaptersFor": "Download chapter names for:",
+ "LabelOpenSubtitlesUsername": "Open Subtitles username:",
+ "LabelOpenSubtitlesPassword": "Open Subtitles password:",
+ "HeaderChapterDownloadingHelp": "When Media Browser scans your video files it can download friendly chapter names from the internet using chapter plugins such as ChapterDb.",
+ "LabelPlayDefaultAudioTrack": "Play default audio track regardless of language",
+ "LabelSubtitlePlaybackMode": "Subtitle mode:",
+ "LabelDownloadLanguages": "Download languages:",
+ "ButtonRegister": "Register",
+ "LabelSkipIfAudioTrackPresent": "Skip if the default audio track matches the download language",
+ "LabelSkipIfAudioTrackPresentHelp": "Uncheck this to ensure all videos have subtitles, regardless of audio language.",
+ "HeaderSendMessage": "Send Message",
+ "ButtonSend": "Send",
+ "LabelMessageText": "Message text:",
+ "LabelMessageTitle": "Message title:",
+ "MessageNoAvailablePlugins": "No available plugins.",
+ "LabelDisplayPluginsFor": "Display plugins for:",
+ "PluginTabMediaBrowserClassic": "MB Classic",
+ "PluginTabMediaBrowserTheater": "MB Theater",
+ "LabelEpisodeName": "Episode name",
+ "LabelSeriesName": "Series name",
+ "ValueSeriesNamePeriod": "Series.name",
+ "ValueSeriesNameUnderscore": "Series_name",
+ "ValueEpisodeNamePeriod": "Episode.name",
+ "ValueEpisodeNameUnderscore": "Episode_name",
+ "LabelSeasonNumber": "Season number",
+ "LabelEpisodeNumber": "Episode number",
+ "LabelEndingEpisodeNumber": "Ending episode number",
+ "HeaderTypeText": "Enter Text",
+ "LabelTypeText": "Text",
+ "HeaderSearchForSubtitles": "Search for Subtitles",
+ "MessageNoSubtitleSearchResultsFound": "No search results founds.",
+ "TabDisplay": "Display",
+ "TabLanguages": "Languages",
+ "TabWebClient": "Web Client",
+ "LabelEnableThemeSongs": "Enable theme songs",
+ "LabelEnableBackdrops": "Enable backdrops",
+ "LabelEnableThemeSongsHelp": "If enabled, theme songs will be played in the background while browsing the library.",
+ "LabelEnableBackdropsHelp": "If enabled, backdrops will be displayed in the background of some pages while browsing the library.",
+ "HeaderHomePage": "Home Page",
+ "HeaderSettingsForThisDevice": "Settings for This Device",
+ "OptionAuto": "Auto",
+ "OptionYes": "Yes",
+ "OptionNo": "No",
+ "LabelHomePageSection1": "Home page section one:",
+ "LabelHomePageSection2": "Home page section two:",
+ "LabelHomePageSection3": "Home page section three:",
+ "LabelHomePageSection4": "Home page section four:",
+ "OptionMyViewsButtons": "My views (buttons)",
+ "OptionMyViews": "My views",
+ "OptionMyViewsSmall": "My views (small)",
+ "OptionResumablemedia": "Resume",
+ "OptionLatestMedia": "Latest media",
+ "OptionLatestChannelMedia": "Latest channel items",
+ "HeaderLatestChannelItems": "Latest Channel Items",
+ "OptionNone": "None",
+ "HeaderLiveTv": "Live TV",
+ "HeaderReports": "Reports",
+ "HeaderMetadataManager": "Metadata Manager",
+ "HeaderPreferences": "Preferences",
+ "MessageLoadingChannels": "Loading channel content...",
+ "ButtonMarkRead": "Mark Read",
+ "OptionDefaultSort": "Default",
+ "OptionCommunityMostWatchedSort": "Most Watched",
+ "TabNextUp": "Next Up",
+ "MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
+ "MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
+ "ButtonDismiss": "Dismiss",
+ "MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
+ "ButtonEditOtherUserPreferences": "Edit this user's personal preferences.",
+ "LabelChannelStreamQuality": "Preferred internet stream quality:",
+ "LabelChannelStreamQualityHelp": "In a low bandwidth environment, limiting quality can help ensure a smooth streaming experience.",
+ "OptionBestAvailableStreamQuality": "Best available",
+ "LabelEnableChannelContentDownloadingFor": "Enable channel content downloading for:",
+ "LabelEnableChannelContentDownloadingForHelp": "Some channels support downloading content prior to viewing. Enable this in low bandwidth enviornments to download channel content during off hours. Content is downloaded as part of the channel download scheduled task.",
+ "LabelChannelDownloadPath": "Channel content download path:",
+ "LabelChannelDownloadPathHelp": "Specify a custom download path if desired. Leave empty to download to an internal program data folder.",
+ "LabelChannelDownloadAge": "Delete content after: (days)",
+ "LabelChannelDownloadAgeHelp": "Downloaded content older than this will be deleted. It will remain playable via internet streaming.",
+ "ChannelSettingsFormHelp": "Install channels such as Trailers and Vimeo in the plugin catalog.",
+ "LabelSelectCollection": "Select collection:",
+ "ViewTypeMovies": "Movies",
+ "ViewTypeTvShows": "TV",
+ "ViewTypeGames": "Games",
+ "ViewTypeMusic": "Music",
+ "ViewTypeBoxSets": "Collections",
+ "ViewTypeChannels": "Channels",
+ "ViewTypeLiveTV": "Live TV",
+ "HeaderOtherDisplaySettings": "Display Settings",
+ "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": "Media folders",
+ "TitleRemoteControl": "Remote Control",
+ "OptionLatestTvRecordings": "Latest recordings",
+ "LabelProtocolInfo": "Protocol info:",
+ "LabelProtocolInfoHelp": "The value that will be used when responding to GetProtocolInfo requests from the device.",
+ "TabXbmcMetadata": "Xbmc",
+ "HeaderXbmcMetadataHelp": "Media Browser includes native support for Xbmc Nfo metadata and images. To enable or disable Xbmc metadata, use the Advanced tab to configure options for your media types.",
+ "LabelXbmcMetadataUser": "Add user watch data to nfo's for:",
+ "LabelXbmcMetadataUserHelp": "Enable this to keep watch data in sync between Media Browser and Xbmc.",
+ "LabelXbmcMetadataDateFormat": "Release date format:",
+ "LabelXbmcMetadataDateFormatHelp": "All dates within nfo's will be read and written to using this format.",
+ "LabelXbmcMetadataSaveImagePaths": "Save image paths within nfo files",
+ "LabelXbmcMetadataSaveImagePathsHelp": "This is recommended if you have image file names that don't conform to Xbmc guidelines.",
+ "LabelXbmcMetadataEnablePathSubstitution": "Enable path substitution",
+ "LabelXbmcMetadataEnablePathSubstitutionHelp": "Enables path substitution of image paths using the server's path substitution settings.",
+ "LabelXbmcMetadataEnablePathSubstitutionHelp2": "See path substitution.",
+ "LabelGroupChannelsIntoViews": "Display the following channels directly within my views:",
+ "LabelGroupChannelsIntoViewsHelp": "If enabled, these channels will be displayed directly alongside other views. If disabled, they'll be displayed within a separate Channels view.",
+ "LabelDisplayCollectionsView": "Display a collections view to show movie collections",
+ "LabelXbmcMetadataEnableExtraThumbs": "Copy extrafanart into extrathumbs",
+ "LabelXbmcMetadataEnableExtraThumbsHelp": "When downloading images they can be saved into both extrafanart and extrathumbs for maximum Xbmc skin compatibility.",
+ "TabServices": "Services",
+ "TabLogs": "Logs",
+ "HeaderServerLogFiles": "Server log files:",
+ "TabBranding": "Branding",
+ "HeaderBrandingHelp": "Customize the appearance of Media Browser to fit the needs of your group or organization.",
+ "LabelLoginDisclaimer": "Login disclaimer:",
+ "LabelLoginDisclaimerHelp": "This will be displayed at the bottom of the login page.",
+ "LabelAutomaticallyDonate": "Automatically donate this amount every six months",
+ "LabelAutomaticallyDonateHelp": "You can cancel at any time via your PayPal account.",
+ "OptionList": "List",
+ "TabDashboard": "Dashboard",
+ "TitleServer": "Server",
+ "LabelCache": "Cache:",
+ "LabelLogs": "Logs:",
+ "LabelMetadata": "Metadata:",
+ "LabelImagesByName": "Images by name:",
+ "LabelTranscodingTemporaryFiles": "Transcoding temporary files:",
+ "HeaderLatestMusic": "Latest Music",
+ "HeaderBranding": "Branding",
+ "HeaderApiKeys": "Api Keys",
+ "HeaderApiKeysHelp": "External applications are required to have an Api key in order to communicate with Media Browser. Keys are issued by logging in with a Media Browser account, or by manually granting the application a key.",
+ "HeaderApiKey": "Api Key",
+ "HeaderApp": "App",
+ "HeaderDevice": "Device",
+ "HeaderUser": "User",
+ "HeaderDateIssued": "Date Issued",
+ "LabelChapterName": "Chapter {0}",
+ "HeaderNewApiKey": "New Api Key",
+ "LabelAppName": "App name",
+ "LabelAppNameExample": "Example: Sickbeard, NzbDrone",
+ "HeaderNewApiKeyHelp": "Grant an application permission to communicate with Media Browser.",
+ "ButtonEnterSupporterKey": "Enter supporter key",
+ "HeaderHttpHeaders": "Http Headers",
+ "HeaderIdentificationHeader": "Identification Header",
+ "LabelValue": "Value:",
+ "LabelMatchType": "Match type:",
+ "OptionEquals": "Equals",
+ "OptionRegex": "Regex",
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
+}
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/sv.json b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
index 75e204f68..9988af0fa 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
@@ -199,6 +199,7 @@
"OptionFriday": "Fredag",
"OptionSaturday": "L\u00f6rdag",
"HeaderManagement": "Administration:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "IMDB-ID saknas",
"OptionMissingTvdbId": "TVDB-ID saknas",
"OptionMissingOverview": "Synopsis saknas",
@@ -479,10 +480,10 @@
"HeaderProgram": "Program",
"HeaderClients": "Klienter",
"LabelCompleted": "Klar",
- "LabelFailed": "Misslyckades",
+ "LabelFailed": "Failed",
"LabelSkipped": "Hoppades \u00f6ver",
"HeaderEpisodeOrganization": "Katalogisering av avsnitt",
- "LabelSeries": "Serie:",
+ "LabelSeries": "Series:",
"LabelSeasonNumber": "S\u00e4songsnummer:",
"LabelEpisodeNumber": "Avsnittsnummer:",
"LabelEndingEpisodeNumber": "Avslutande avsnittsnummer:",
@@ -626,12 +627,12 @@
"TabNowPlaying": "Nu spelas",
"TabNavigation": "Navigering",
"TabControls": "Kontroller",
- "ButtonFullscreen": "V\u00e4xla fullsk\u00e4rmsl\u00e4ge",
+ "ButtonFullscreen": "Toggle fullscreen",
"ButtonScenes": "Scener",
"ButtonSubtitles": "Undertexter",
- "ButtonAudioTracks": "Ljudsp\u00e5r",
- "ButtonPreviousTrack": "F\u00f6reg\u00e5ende sp\u00e5r",
- "ButtonNextTrack": "N\u00e4sta sp\u00e5r",
+ "ButtonAudioTracks": "Audio tracks",
+ "ButtonPreviousTrack": "Previous track",
+ "ButtonNextTrack": "Next track",
"ButtonStop": "Stopp",
"ButtonPause": "Paus",
"LabelGroupMoviesIntoCollections": "Gruppera filmer i samlingsboxar",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 cc5a77433..98f108421 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
@@ -190,7 +190,7 @@
"HeaderStatus": "Tr\u1ea1ng th\u00e1i",
"OptionContinuing": "Continuing",
"OptionEnded": "Ended",
- "HeaderAirDays": "Air Days:",
+ "HeaderAirDays": "Air Days",
"OptionSunday": "Ch\u1ee7 Nh\u1eadt",
"OptionMonday": "Th\u1ee9 Hai",
"OptionTuesday": "Tuesday",
@@ -199,6 +199,7 @@
"OptionFriday": "Friday",
"OptionSaturday": "Th\u1ee9 B\u1ea3y",
"HeaderManagement": "Qu\u1ea3n l\u00fd:",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "Thi\u1ebfu IMDb ID",
"OptionMissingTvdbId": "Missing TheTVDB Id",
"OptionMissingOverview": "Missing Overview",
@@ -256,11 +257,11 @@
"ButtonSelectDirectory": "L\u1ef1a ch\u1ecdn tr\u1ef1c ti\u1ebfp",
"LabelCustomPaths": "Specify custom paths where desired. Leave fields empty to use the defaults.",
"LabelCachePath": "Cache path:",
- "LabelCachePathHelp": "This folder contains server cache files, such as images.",
+ "LabelCachePathHelp": "Specify a custom location for server cache files, such as images.",
"LabelImagesByNamePath": "Images by name path:",
- "LabelImagesByNamePathHelp": "This folder contains downloaded actor, artist, genre and studio images.",
+ "LabelImagesByNamePathHelp": "Specify a custom location for downloaded actor, artist, genre and studio images.",
"LabelMetadataPath": "Metadata path:",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "Transcoding temporary path:",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "Basics",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ 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 c2c8f5002..6511dd7d0 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
@@ -199,6 +199,7 @@
"OptionFriday": "\u661f\u671f\u4e94",
"OptionSaturday": "\u661f\u671f\u516d",
"HeaderManagement": "\u7ba1\u7406\uff1a",
+ "LabelManagement": "Management:",
"OptionMissingImdbId": "\u7f3a\u5c11IMDB\u7de8\u865f",
"OptionMissingTvdbId": "\u7f3a\u5c11TheTVDB\u7de8\u865f",
"OptionMissingOverview": "\u7f3a\u5c11\u6982\u8ff0",
@@ -260,7 +261,7 @@
"LabelImagesByNamePath": "\u540d\u7a31\u5716\u50cf\u6587\u4ef6\u593e\u8def\u5f91\uff1a",
"LabelImagesByNamePathHelp": "\u6b64\u6587\u4ef6\u593e\u5305\u542b\u6f14\u54e1\uff0c\u6b4c\u624b\uff0c\u5a92\u9ad4\u7a2e\u985e\u548c\u5de5\u4f5c\u5ba4\u7684\u5716\u50cf\u3002",
"LabelMetadataPath": "\u5a92\u9ad4\u8cc7\u6599\u6587\u4ef6\u593e\u8def\u5f91\uff1a",
- "LabelMetadataPathHelp": "This location contains downloaded artwork and metadata that is not configured to be stored in media folders.",
+ "LabelMetadataPathHelp": "Specify a custom location for downloaded artwork and metadata, if not saving within media folders.",
"LabelTranscodingTempPath": "\u8f49\u78bc\u81e8\u6642\u8def\u5f91\uff1a",
"LabelTranscodingTempPathHelp": "This folder contains working files used by the transcoder. Specify a custom path, or leave empty to use the default within the server's data folder.",
"TabBasics": "\u57fa\u672c",
@@ -396,7 +397,7 @@
"HeaderCastCrew": "\u62cd\u651d\u4eba\u54e1\u53ca\u6f14\u54e1",
"HeaderAdditionalParts": "\u9644\u52a0\u90e8\u4efd",
"ButtonSplitVersionsApart": "Split Versions Apart",
- "ButtonPlayTrailer": "\u9810\u544a",
+ "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.",
@@ -874,5 +875,18 @@
"LabelMatchType": "Match type:",
"OptionEquals": "Equals",
"OptionRegex": "Regex",
- "OptionSubstring": "Substring"
+ "OptionSubstring": "Substring",
+ "TabView": "View",
+ "TabSort": "Sort",
+ "TabFilter": "Filter",
+ "ButtonView": "View",
+ "LabelPageSize": "Item limit:",
+ "LabelView": "View:",
+ "TabUsers": "Users",
+ "HeaderFeatures": "Features",
+ "HeaderAdvanced": "Advanced",
+ "ButtonSync": "Sync",
+ "TabScheduledTasks": "Scheduled Tasks",
+ "HeaderChapters": "Chapters",
+ "HeaderResumeSettings": "Resume Settings"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
index 38600922b..38e82db4f 100644
--- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
+++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
@@ -224,6 +224,7 @@
<Compile Include="ScheduledTasks\ChapterImagesTask.cs" />
<Compile Include="ScheduledTasks\RefreshIntrosTask.cs" />
<Compile Include="ScheduledTasks\RefreshMediaLibraryTask.cs" />
+ <Compile Include="Security\AuthenticationException.cs" />
<Compile Include="Security\AuthenticationRepository.cs" />
<Compile Include="Security\EncryptionManager.cs" />
<Compile Include="ServerApplicationPaths.cs" />
@@ -269,6 +270,8 @@
<Compile Include="Persistence\SqliteUserRepository.cs" />
<Compile Include="Sorting\StudioComparer.cs" />
<Compile Include="Sorting\VideoBitRateComparer.cs" />
+ <Compile Include="Sync\AppSyncProvider.cs" />
+ <Compile Include="Sync\CloudSyncProvider.cs" />
<Compile Include="Sync\SyncManager.cs" />
<Compile Include="Themes\AppThemeManager.cs" />
<Compile Include="Udp\UdpMessageReceivedEventArgs.cs" />
diff --git a/MediaBrowser.Server.Implementations/Security/AuthenticationException.cs b/MediaBrowser.Server.Implementations/Security/AuthenticationException.cs
new file mode 100644
index 000000000..f4ba2fb63
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/Security/AuthenticationException.cs
@@ -0,0 +1,16 @@
+using System;
+
+namespace MediaBrowser.Server.Implementations.Security
+{
+ public class AuthenticationException : Exception
+ {
+ public AuthenticationException(string message)
+ : base(message)
+ {
+ }
+
+ public AuthenticationException()
+ {
+ }
+ }
+}
diff --git a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
index 6f14bb322..a65184f61 100644
--- a/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
+++ b/MediaBrowser.Server.Implementations/ServerManager/ServerManager.cs
@@ -249,13 +249,13 @@ namespace MediaBrowser.Server.Implementations.ServerManager
_logger.Info("Sending web socket message {0}", messageType);
var message = new WebSocketMessage<T> { MessageType = messageType, Data = dataFunction() };
- var bytes = _jsonSerializer.SerializeToBytes(message);
+ var json = _jsonSerializer.SerializeToString(message);
var tasks = connectionsList.Select(s => Task.Run(() =>
{
try
{
- s.SendAsync(bytes, cancellationToken);
+ s.SendAsync(json, cancellationToken);
}
catch (OperationCanceledException)
{
@@ -265,7 +265,8 @@ namespace MediaBrowser.Server.Implementations.ServerManager
{
_logger.ErrorException("Error sending web socket message {0} to {1}", ex, messageType, s.RemoteEndPoint);
}
- }));
+
+ }, cancellationToken));
await Task.WhenAll(tasks).ConfigureAwait(false);
}
diff --git a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
index 2b60f3116..3c3d7740a 100644
--- a/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
+++ b/MediaBrowser.Server.Implementations/ServerManager/WebSocketConnection.cs
@@ -194,9 +194,9 @@ namespace MediaBrowser.Server.Implementations.ServerManager
throw new ArgumentNullException("message");
}
- var bytes = _jsonSerializer.SerializeToBytes(message);
+ var json = _jsonSerializer.SerializeToString(message);
- return SendAsync(bytes, cancellationToken);
+ return SendAsync(json, cancellationToken);
}
/// <summary>
@@ -205,24 +205,46 @@ namespace MediaBrowser.Server.Implementations.ServerManager
/// <param name="buffer">The buffer.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- public Task SendAsync(byte[] buffer, CancellationToken cancellationToken)
+ public async Task SendAsync(byte[] buffer, CancellationToken cancellationToken)
{
- return SendAsync(buffer, WebSocketMessageType.Text, cancellationToken);
+ if (buffer == null)
+ {
+ throw new ArgumentNullException("buffer");
+ }
+
+ cancellationToken.ThrowIfCancellationRequested();
+
+ // Per msdn docs, attempting to send simultaneous messages will result in one failing.
+ // This should help us workaround that and ensure all messages get sent
+ await _sendSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false);
+
+ try
+ {
+ await _socket.SendAsync(buffer, true, cancellationToken);
+ }
+ catch (OperationCanceledException)
+ {
+ _logger.Info("WebSocket message to {0} was cancelled", RemoteEndPoint);
+
+ throw;
+ }
+ catch (Exception ex)
+ {
+ _logger.ErrorException("Error sending WebSocket message {0}", ex, RemoteEndPoint);
+
+ throw;
+ }
+ finally
+ {
+ _sendSemaphore.Release();
+ }
}
- /// <summary>
- /// Sends a message asynchronously.
- /// </summary>
- /// <param name="buffer">The buffer.</param>
- /// <param name="type">The type.</param>
- /// <param name="cancellationToken">The cancellation token.</param>
- /// <returns>Task.</returns>
- /// <exception cref="System.ArgumentNullException">buffer</exception>
- public async Task SendAsync(byte[] buffer, WebSocketMessageType type, CancellationToken cancellationToken)
+ public async Task SendAsync(string text, CancellationToken cancellationToken)
{
- if (buffer == null)
+ if (string.IsNullOrWhiteSpace(text))
{
- throw new ArgumentNullException("buffer");
+ throw new ArgumentNullException("text");
}
cancellationToken.ThrowIfCancellationRequested();
@@ -233,7 +255,7 @@ namespace MediaBrowser.Server.Implementations.ServerManager
try
{
- await _socket.SendAsync(buffer, type, true, cancellationToken);
+ await _socket.SendAsync(text, true, cancellationToken);
}
catch (OperationCanceledException)
{
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index 754f63cbd..168948821 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -27,6 +27,7 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Server.Implementations.Security;
namespace MediaBrowser.Server.Implementations.Session
{
@@ -232,7 +233,7 @@ namespace MediaBrowser.Server.Implementations.Session
if (user != null && user.Configuration.IsDisabled)
{
- throw new UnauthorizedAccessException(string.Format("The {0} account is currently disabled. Please consult with your administrator.", user.Name));
+ throw new AuthenticationException(string.Format("The {0} account is currently disabled. Please consult with your administrator.", user.Name));
}
var activityDate = DateTime.UtcNow;
@@ -1111,12 +1112,7 @@ namespace MediaBrowser.Server.Implementations.Session
{
var session = GetSession(sessionId);
- if (!session.UserId.HasValue)
- {
- throw new UnauthorizedAccessException("Cannot modify additional users without authenticating first.");
- }
-
- if (session.UserId.Value == userId)
+ if (session.UserId.HasValue && session.UserId.Value == userId)
{
throw new ArgumentException("The requested user is already the primary user of the session.");
}
@@ -1144,12 +1140,7 @@ namespace MediaBrowser.Server.Implementations.Session
{
var session = GetSession(sessionId);
- if (!session.UserId.HasValue)
- {
- throw new UnauthorizedAccessException("Cannot modify additional users without authenticating first.");
- }
-
- if (session.UserId.Value == userId)
+ if (session.UserId.HasValue && session.UserId.Value == userId)
{
throw new ArgumentException("The requested user is already the primary user of the session.");
}
@@ -1166,7 +1157,7 @@ namespace MediaBrowser.Server.Implementations.Session
{
if (string.IsNullOrWhiteSpace(token))
{
- throw new UnauthorizedAccessException();
+ throw new AuthenticationException();
}
var result = _authRepo.Get(new AuthenticationInfoQuery
@@ -1178,12 +1169,12 @@ namespace MediaBrowser.Server.Implementations.Session
if (info == null)
{
- throw new UnauthorizedAccessException();
+ throw new AuthenticationException();
}
if (!info.IsActive)
{
- throw new UnauthorizedAccessException("Access token has expired.");
+ throw new AuthenticationException("Access token has expired.");
}
if (!string.IsNullOrWhiteSpace(info.UserId))
@@ -1192,7 +1183,7 @@ namespace MediaBrowser.Server.Implementations.Session
if (user == null || user.Configuration.IsDisabled)
{
- throw new UnauthorizedAccessException("User account has been disabled.");
+ throw new AuthenticationException("User account has been disabled.");
}
}
}
@@ -1225,7 +1216,7 @@ namespace MediaBrowser.Server.Implementations.Session
if (!result)
{
- throw new UnauthorizedAccessException("Invalid user or password entered.");
+ throw new AuthenticationException("Invalid user or password entered.");
}
var user = _userManager.Users
diff --git a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
new file mode 100644
index 000000000..6dec2b717
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs
@@ -0,0 +1,26 @@
+using MediaBrowser.Controller.Sync;
+using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.Sync;
+using System;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Server.Implementations.Sync
+{
+ public class AppSyncProvider : ISyncProvider
+ {
+ public IEnumerable<SyncTarget> GetSyncTargets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public DeviceProfile GetDeviceProfile(SyncTarget target)
+ {
+ throw new NotImplementedException();
+ }
+
+ public string Name
+ {
+ get { return "App Sync"; }
+ }
+ }
+}
diff --git a/MediaBrowser.Server.Implementations/Sync/CloudSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/CloudSyncProvider.cs
new file mode 100644
index 000000000..ec3ac1239
--- /dev/null
+++ b/MediaBrowser.Server.Implementations/Sync/CloudSyncProvider.cs
@@ -0,0 +1,35 @@
+using MediaBrowser.Common;
+using MediaBrowser.Controller.Sync;
+using MediaBrowser.Model.Dlna;
+using MediaBrowser.Model.Sync;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace MediaBrowser.Server.Implementations.Sync
+{
+ public class CloudSyncProvider : ISyncProvider
+ {
+ private ICloudSyncProvider[] _providers = new ICloudSyncProvider[] {};
+
+ public CloudSyncProvider(IApplicationHost appHost)
+ {
+ _providers = appHost.GetExports<ICloudSyncProvider>().ToArray();
+ }
+
+ public IEnumerable<SyncTarget> GetSyncTargets()
+ {
+ throw new NotImplementedException();
+ }
+
+ public DeviceProfile GetDeviceProfile(SyncTarget target)
+ {
+ throw new NotImplementedException();
+ }
+
+ public string Name
+ {
+ get { return "Cloud Sync"; }
+ }
+ }
+}
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
index 373b30a41..508fc188d 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs
@@ -3,12 +3,20 @@ using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Sync;
using System;
using System.Collections.Generic;
+using System.Linq;
using System.Threading.Tasks;
namespace MediaBrowser.Server.Implementations.Sync
{
public class SyncManager : ISyncManager
{
+ private ISyncProvider[] _providers = new ISyncProvider[]{};
+
+ public void AddParts(IEnumerable<ISyncProvider> providers)
+ {
+ _providers = providers.ToArray();
+ }
+
public Task<List<SyncJob>> CreateJob(SyncJobRequest request)
{
throw new NotImplementedException();
@@ -48,5 +56,10 @@ namespace MediaBrowser.Server.Implementations.Sync
{
throw new NotImplementedException();
}
+
+ public IEnumerable<SyncTarget> GetSyncTargets()
+ {
+ return _providers.SelectMany(i => i.GetSyncTargets());
+ }
}
}
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs
index 3d6865f85..2208bc217 100644
--- a/MediaBrowser.ServerApplication/ApplicationHost.cs
+++ b/MediaBrowser.ServerApplication/ApplicationHost.cs
@@ -188,6 +188,7 @@ namespace MediaBrowser.ServerApplication
private IEncodingManager EncodingManager { get; set; }
private IChannelManager ChannelManager { get; set; }
+ private ISyncManager SyncManager { get; set; }
/// <summary>
/// Gets or sets the user data repository.
@@ -208,12 +209,13 @@ namespace MediaBrowser.ServerApplication
private IUserViewManager UserViewManager { get; set; }
private IAuthenticationRepository AuthenticationRepository { get; set; }
-
+
/// <summary>
- /// Initializes a new instance of the <see cref="ApplicationHost"/> class.
+ /// Initializes a new instance of the <see cref="ApplicationHost" /> class.
/// </summary>
/// <param name="applicationPaths">The application paths.</param>
/// <param name="logManager">The log manager.</param>
+ /// <param name="isRunningAsService">if set to <c>true</c> [is running as service].</param>
public ApplicationHost(ServerApplicationPaths applicationPaths, ILogManager logManager, bool isRunningAsService)
: base(applicationPaths, logManager)
{
@@ -284,7 +286,6 @@ namespace MediaBrowser.ServerApplication
await base.Init(progress).ConfigureAwait(false);
MigrateModularConfigurations();
- ApplyDefaultMetadataSettings();
}
private void PerformVersionMigration()
@@ -330,21 +331,6 @@ namespace MediaBrowser.ServerApplication
}
}
- private void ApplyDefaultMetadataSettings()
- {
- if (!ServerConfigurationManager.Configuration.DefaultMetadataSettingsApplied &&
- ServerConfigurationManager.Configuration.IsStartupWizardCompleted)
- {
- // Make sure xbmc metadata is disabled for existing users.
- // New users will be handled by the startup wizard.
-
- ServerConfigurationManager.DisableMetadataService("Xbmc Nfo");
- }
-
- ServerConfigurationManager.Configuration.DefaultMetadataSettingsApplied = true;
- ServerConfigurationManager.SaveConfiguration();
- }
-
private void DeleteDeprecatedModules()
{
try
@@ -628,7 +614,8 @@ namespace MediaBrowser.ServerApplication
MediaEncoder, ChapterManager);
RegisterSingleInstance(EncodingManager);
- RegisterSingleInstance<ISyncManager>(new SyncManager());
+ SyncManager = new SyncManager();
+ RegisterSingleInstance(SyncManager);
var authContext = new AuthorizationContext();
RegisterSingleInstance<IAuthorizationContext>(authContext);
@@ -838,6 +825,7 @@ namespace MediaBrowser.ServerApplication
ChannelManager.AddParts(GetExports<IChannel>(), GetExports<IChannelFactory>());
NotificationManager.AddParts(GetExports<INotificationService>(), GetExports<INotificationTypeFactory>());
+ SyncManager.AddParts(GetExports<ISyncProvider>());
}
/// <summary>
@@ -1111,7 +1099,6 @@ namespace MediaBrowser.ServerApplication
ServerAuthorization.AuthorizeServer(
ServerConfigurationManager.Configuration.HttpServerPortNumber,
HttpServerUrlPrefixes.First(),
- ServerConfigurationManager.Configuration.LegacyWebSocketPortNumber,
UdpServerEntryPoint.PortNumber,
ConfigurationManager.CommonApplicationPaths.TempDirectory);
}
@@ -1155,15 +1142,16 @@ namespace MediaBrowser.ServerApplication
var versionObject = version == null || string.IsNullOrWhiteSpace(version.versionStr) ? null : new Version(version.versionStr);
- HasUpdateAvailable = versionObject != null && versionObject >= ApplicationVersion;
+ var isUpdateAvailable = versionObject != null && versionObject > ApplicationVersion;
+ HasUpdateAvailable = isUpdateAvailable;
- if (versionObject != null && versionObject >= ApplicationVersion)
+ if (isUpdateAvailable)
{
Logger.Info("New application version is available: {0}", versionObject);
}
- return versionObject != null ?
- new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = versionObject > ApplicationVersion, Package = version } :
+ return versionObject != null ?
+ new CheckForUpdateResult { AvailableVersion = versionObject.ToString(), IsUpdateAvailable = isUpdateAvailable, Package = version } :
new CheckForUpdateResult { AvailableVersion = ApplicationVersion.ToString(), IsUpdateAvailable = false };
}
diff --git a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
index 206a04460..eb73966ce 100644
--- a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
+++ b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloadInfo.cs
@@ -35,7 +35,7 @@ namespace MediaBrowser.ServerApplication.FFMpeg
switch (arg)
{
case "Version":
- return "20140612";
+ return "20140721";
case "FFMpegFilename":
return "ffmpeg.exe";
case "FFProbeFilename":
@@ -113,8 +113,8 @@ namespace MediaBrowser.ServerApplication.FFMpeg
case PlatformID.Win32NT:
return new[]
{
- "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20140612-git-3a1c895-win32-static.7z",
- "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/windows/ffmpeg-20140612-git-3a1c895-win32-static.7z"
+ "http://ffmpeg.zeranoe.com/builds/win32/static/ffmpeg-20140721-git-ce385c8-win32-static.7z",
+ "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/ffmpeg/windows/ffmpeg-20140721-git-ce385c8-win32-static.7z"
};
case PlatformID.Unix:
diff --git a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs
index c550cb27f..a93ed9196 100644
--- a/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs
+++ b/MediaBrowser.ServerApplication/FFMpeg/FFMpegDownloader.cs
@@ -26,10 +26,10 @@ namespace MediaBrowser.ServerApplication.FFMpeg
private readonly IZipClient _zipClient;
private readonly IFileSystem _fileSystem;
- private readonly string[] _fontUrls = new[]
- {
- "https://www.dropbox.com/s/pj847twf7riq0j7/ARIALUNI.7z?dl=1"
- };
+ private readonly string[] _fontUrls =
+ {
+ "https://www.dropbox.com/s/pj847twf7riq0j7/ARIALUNI.7z?dl=1"
+ };
public FFMpegDownloader(ILogger logger, IApplicationPaths appPaths, IHttpClient httpClient, IZipClient zipClient, IFileSystem fileSystem)
{
@@ -251,6 +251,7 @@ namespace MediaBrowser.ServerApplication.FFMpeg
Task.Run(async () =>
{
await DownloadFontFile(fontsDirectory, fontFilename, new Progress<double>()).ConfigureAwait(false);
+
await WriteFontConfigFile(fontsDirectory).ConfigureAwait(false);
});
}
diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs
index 4c81716ed..8a7e78749 100644
--- a/MediaBrowser.ServerApplication/MainStartup.cs
+++ b/MediaBrowser.ServerApplication/MainStartup.cs
@@ -224,22 +224,22 @@ namespace MediaBrowser.ServerApplication
// Not crazy about this but it's the only way to suppress ffmpeg crash dialog boxes
SetErrorMode(ErrorModes.SEM_FAILCRITICALERRORS | ErrorModes.SEM_NOALIGNMENTFAULTEXCEPT |
ErrorModes.SEM_NOGPFAULTERRORBOX | ErrorModes.SEM_NOOPENFILEERRORBOX);
- }
-
-
- var task = _appHost.Init(initProgress);
- task = task.ContinueWith(new Action<Task>(a => _appHost.RunStartupTasks()));
+ }
+
+
+ var task = _appHost.Init(initProgress);
+ task = task.ContinueWith(new Action<Task>(a => _appHost.RunStartupTasks()));
if (runService)
- {
+ {
StartService(logManager);
}
else
- {
- Task.WaitAll(task);
-
- SystemEvents.SessionEnding += SystemEvents_SessionEnding;
- SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
+ {
+ Task.WaitAll(task);
+
+ SystemEvents.SessionEnding += SystemEvents_SessionEnding;
+ SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
HideSplashScreen();
diff --git a/MediaBrowser.ServerApplication/Native/RegisterServer.bat b/MediaBrowser.ServerApplication/Native/RegisterServer.bat
index d762dfaf7..350412344 100644
--- a/MediaBrowser.ServerApplication/Native/RegisterServer.bat
+++ b/MediaBrowser.ServerApplication/Native/RegisterServer.bat
@@ -1,7 +1,6 @@
rem %1 = http server port
rem %2 = http server url
rem %3 = udp server port
-rem %4 = tcp server port (web socket)
if [%1]==[] GOTO DONE
@@ -18,11 +17,6 @@ if [%3]==[] GOTO DONE
netsh advfirewall firewall delete rule name="Port %3" protocol=UDP localport=%3
netsh advfirewall firewall add rule name="Port %3" dir=in action=allow protocol=UDP localport=%3
-if [%4]==[] GOTO DONE
-
-netsh advfirewall firewall delete rule name="Port %4" protocol=TCP localport=%4
-netsh advfirewall firewall add rule name="Port %4" dir=in action=allow protocol=TCP localport=%4
-
:DONE
Exit \ No newline at end of file
diff --git a/MediaBrowser.ServerApplication/Native/ServerAuthorization.cs b/MediaBrowser.ServerApplication/Native/ServerAuthorization.cs
index d2e542536..e5989db3b 100644
--- a/MediaBrowser.ServerApplication/Native/ServerAuthorization.cs
+++ b/MediaBrowser.ServerApplication/Native/ServerAuthorization.cs
@@ -15,10 +15,9 @@ namespace MediaBrowser.ServerApplication.Native
/// </summary>
/// <param name="httpServerPort">The HTTP server port.</param>
/// <param name="httpServerUrlPrefix">The HTTP server URL prefix.</param>
- /// <param name="webSocketPort">The web socket port.</param>
/// <param name="udpPort">The UDP port.</param>
/// <param name="tempDirectory">The temp directory.</param>
- public static void AuthorizeServer(int httpServerPort, string httpServerUrlPrefix, int webSocketPort, int udpPort, string tempDirectory)
+ public static void AuthorizeServer(int httpServerPort, string httpServerUrlPrefix, int udpPort, string tempDirectory)
{
Directory.CreateDirectory(tempDirectory);
@@ -38,10 +37,9 @@ namespace MediaBrowser.ServerApplication.Native
{
FileName = tmpFile,
- Arguments = string.Format("{0} {1} {2} {3}", httpServerPort,
+ Arguments = string.Format("{0} {1} {2}", httpServerPort,
httpServerUrlPrefix,
- udpPort,
- webSocketPort),
+ udpPort),
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden,
diff --git a/MediaBrowser.Tests/Providers/MovieDbProviderTests.cs b/MediaBrowser.Tests/Providers/MovieDbProviderTests.cs
index cbd0ce4a1..545894b0d 100644
--- a/MediaBrowser.Tests/Providers/MovieDbProviderTests.cs
+++ b/MediaBrowser.Tests/Providers/MovieDbProviderTests.cs
@@ -1,5 +1,4 @@
using MediaBrowser.Controller.Providers;
-using MediaBrowser.Providers.Movies;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace MediaBrowser.Tests.Providers {
@@ -22,12 +21,6 @@ namespace MediaBrowser.Tests.Providers {
name = string.Empty;
year = null;
- NameParser.ParseName("2013 - My Movie 2", out name, out year);
- Assert.AreEqual(2013, year);
- Assert.AreEqual("My Movie 2", name);
-
- name = string.Empty;
- year = null;
NameParser.ParseName("My Movie 2001 (2013)", out name, out year);
Assert.AreEqual("My Movie 2001", name);
Assert.AreEqual(2013, year);
diff --git a/MediaBrowser.Tests/Resolvers/TvUtilTests.cs b/MediaBrowser.Tests/Resolvers/TvUtilTests.cs
index 725a5edcb..104e63447 100644
--- a/MediaBrowser.Tests/Resolvers/TvUtilTests.cs
+++ b/MediaBrowser.Tests/Resolvers/TvUtilTests.cs
@@ -9,7 +9,7 @@ namespace MediaBrowser.Tests.Resolvers
[TestMethod]
public void TestGetEpisodeNumberFromFile()
{
- Assert.AreEqual(03, TVUtils.GetEpisodeNumberFromFile(@"S02E03 blah.avi", true));
+ Assert.AreEqual(03, TVUtils.GetEpisodeNumberFromFile(@"Season 02\S02E03 blah.avi", true));
Assert.AreEqual(02, TVUtils.GetEpisodeNumberFromFile(@"Season 1\01x02 blah.avi", true));
Assert.AreEqual(02, TVUtils.GetEpisodeNumberFromFile(@"Season 1\S01x02 blah.avi", true));
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index b50cb254f..92487959d 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -446,11 +446,16 @@ namespace MediaBrowser.WebDashboard.Api
var newLineBytes = Encoding.UTF8.GetBytes(Environment.NewLine);
// jQuery + jQuery mobile
- await AppendResource(memoryStream, "thirdparty/jquery-2.0.3.min.js", newLineBytes).ConfigureAwait(false);
+ await AppendResource(memoryStream, "thirdparty/jquery-2.1.1.min.js", newLineBytes).ConfigureAwait(false);
await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.3/jquery.mobile-1.4.3.min.js", newLineBytes).ConfigureAwait(false);
await AppendResource(memoryStream, "thirdparty/jquery.unveil-custom.js", newLineBytes).ConfigureAwait(false);
- await AppendResource(memoryStream, "thirdparty/cast_sender.js", newLineBytes).ConfigureAwait(false);
+
+ // This script produces errors in older versions of safari
+ if ((Request.UserAgent ?? string.Empty).IndexOf("chrome/", StringComparison.OrdinalIgnoreCase) != -1)
+ {
+ await AppendResource(memoryStream, "thirdparty/cast_sender.js", newLineBytes).ConfigureAwait(false);
+ }
await AppendLocalization(memoryStream).ConfigureAwait(false);
await memoryStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false);
@@ -534,10 +539,7 @@ namespace MediaBrowser.WebDashboard.Api
"alphapicker.js",
"addpluginpage.js",
"advancedconfigurationpage.js",
- "advancedpaths.js",
- "advancedserversettings.js",
"metadataadvanced.js",
- "appsplayback.js",
"autoorganizetv.js",
"autoorganizelog.js",
"channels.js",
@@ -593,7 +595,6 @@ namespace MediaBrowser.WebDashboard.Api
"metadataconfigurationpage.js",
"metadataimagespage.js",
"metadatasubtitles.js",
- "metadatachapters.js",
"metadataxbmc.js",
"moviegenres.js",
"moviecollections.js",
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index 176094b75..25cff11cf 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -89,15 +89,6 @@
<EmbeddedResource Include="dashboard-ui\thirdparty\mediabrowser.apiclient.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource>
- <Content Include="dashboard-ui\advancedpaths.html">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="dashboard-ui\advancedserversettings.html">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="dashboard-ui\appsplayback.html">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
<Content Include="dashboard-ui\channelitems.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -329,13 +320,13 @@
<Content Include="dashboard-ui\favorites.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\homelatest.html">
+ <Content Include="dashboard-ui\files\dummy.mp4">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\librarypathmapping.html">
+ <Content Include="dashboard-ui\homelatest.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\metadatachapters.html">
+ <Content Include="dashboard-ui\librarypathmapping.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="dashboard-ui\metadataxbmc.html">
@@ -590,15 +581,6 @@
<Content Include="dashboard-ui\nowplaying.html">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\scripts\advancedpaths.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="dashboard-ui\scripts\advancedserversettings.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
- <Content Include="dashboard-ui\scripts\appsplayback.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
<Content Include="dashboard-ui\scripts\backdrops.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -662,9 +644,6 @@
<Content Include="dashboard-ui\scripts\librarypathmapping.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
- <Content Include="dashboard-ui\scripts\metadatachapters.js">
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
- </Content>
<Content Include="dashboard-ui\scripts\metadataxbmc.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -800,6 +779,9 @@
<Content Include="dashboard-ui\thirdparty\jquery-2.0.3.min.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="dashboard-ui\thirdparty\jquery-2.1.1.min.js">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="dashboard-ui\thirdparty\jquery.unveil-custom.js">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 92f7fa355..0520e4548 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -14,7 +14,7 @@
<dependencies>
<dependency id="MediaBrowser.Common" version="3.0.418" />
<dependency id="NLog" version="2.1.0" />
- <dependency id="SimpleInjector" version="2.5.0" />
+ <dependency id="SimpleInjector" version="2.5.2" />
<dependency id="sharpcompress" version="0.10.2" />
</dependencies>
</metadata>