diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs
index 377decc4ca..906c0d830a 100644
--- a/MediaBrowser.Api/LiveTv/LiveTvService.cs
+++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs
@@ -14,6 +14,9 @@ using System.Threading.Tasks;
namespace MediaBrowser.Api.LiveTv
{
+ ///
+ /// This is insecure right now to avoid windows phone refactoring
+ ///
[Route("/LiveTv/Info", "GET", Summary = "Gets available live tv services.")]
public class GetLiveTvInfo : IReturn
{
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 919e51eccf..dccf459eb8 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -267,9 +267,14 @@ namespace MediaBrowser.Api.Playback
/// Gets the number of threads.
///
/// System.Int32.
- /// Unrecognized MediaEncodingQuality value.
protected int GetNumberOfThreads(StreamState state, bool isWebm)
{
+ if (isWebm)
+ {
+ // Recommended per docs
+ return Math.Max(Environment.ProcessorCount - 1, 2);
+ }
+
// Use more when this is true. -re will keep cpu usage under control
if (state.ReadInputAtNativeFramerate)
{
@@ -907,9 +912,12 @@ namespace MediaBrowser.Api.Playback
/// The state.
/// The output path.
/// The cancellation token source.
+ /// The working directory.
/// Task.
- /// ffmpeg was not found at + MediaEncoder.EncoderPath
- protected async Task StartFfMpeg(StreamState state, string outputPath, CancellationTokenSource cancellationTokenSource)
+ protected async Task StartFfMpeg(StreamState state,
+ string outputPath,
+ CancellationTokenSource cancellationTokenSource,
+ string workingDirectory = null)
{
Directory.CreateDirectory(Path.GetDirectoryName(outputPath));
@@ -945,6 +953,11 @@ namespace MediaBrowser.Api.Playback
EnableRaisingEvents = true
};
+ if (!string.IsNullOrWhiteSpace(workingDirectory))
+ {
+ process.StartInfo.WorkingDirectory = workingDirectory;
+ }
+
var transcodingJob = ApiEntryPoint.Instance.OnTranscodeBeginning(outputPath,
transcodingId,
TranscodingJobType,
@@ -1540,19 +1553,9 @@ namespace MediaBrowser.Api.Playback
state.MediaPath = mediaUrl;
state.InputProtocol = MediaProtocol.Http;
}
- else
- {
- // No media info, so this is probably needed
- state.DeInterlace = true;
- }
-
- if (recording.RecordingInfo.Status == RecordingStatus.InProgress)
- {
- state.ReadInputAtNativeFramerate = true;
- }
state.RunTimeTicks = recording.RunTimeTicks;
-
+ state.DeInterlace = true;
state.OutputAudioSync = "1000";
state.InputVideoSync = "-1";
state.InputAudioSync = "1";
@@ -1566,9 +1569,8 @@ namespace MediaBrowser.Api.Playback
state.IsInputVideo = string.Equals(channel.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
mediaStreams = new List();
- state.ReadInputAtNativeFramerate = true;
- state.OutputAudioSync = "1000";
state.DeInterlace = true;
+ state.OutputAudioSync = "1000";
state.InputVideoSync = "-1";
state.InputAudioSync = "1";
@@ -1626,30 +1628,19 @@ namespace MediaBrowser.Api.Playback
state.RunTimeTicks = mediaSource.RunTimeTicks;
}
- // If it's a wtv and we don't have media info, we will probably need to deinterlace
- if (string.Equals(state.InputContainer, "wtv", StringComparison.OrdinalIgnoreCase) &&
- mediaStreams.Count == 0)
- {
- state.DeInterlace = true;
- }
-
- if (state.InputProtocol == MediaProtocol.Rtmp)
- {
- state.ReadInputAtNativeFramerate = true;
- }
-
var videoRequest = request as VideoStreamRequest;
AttachMediaStreamInfo(state, mediaStreams, videoRequest, url);
- state.SegmentLength = state.ReadInputAtNativeFramerate ? 5 : 6;
- state.HlsListSize = state.ReadInputAtNativeFramerate ? 100 : 1440;
+ state.SegmentLength = 6;
var container = Path.GetExtension(state.RequestedUrl);
if (string.IsNullOrEmpty(container))
{
- container = request.Static ? state.InputContainer : Path.GetExtension(GetOutputFilePath(state));
+ container = request.Static ?
+ state.InputContainer :
+ (Path.GetExtension(GetOutputFilePath(state)) ?? string.Empty).TrimStart('.');
}
state.OutputContainer = (container ?? string.Empty).TrimStart('.');
diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
index 4af94aeeb2..613039d23a 100644
--- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs
@@ -107,7 +107,7 @@ namespace MediaBrowser.Api.Playback.Hls
throw;
}
- var waitCount = isLive ? 1 : GetSegmentWait();
+ var waitCount = isLive ? 3 : 2;
await WaitForMinimumSegmentCount(playlist, waitCount, cancellationTokenSource.Token).ConfigureAwait(false);
}
}
@@ -144,23 +144,6 @@ namespace MediaBrowser.Api.Playback.Hls
return ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary());
}
- ///
- /// Gets the segment wait.
- ///
- /// System.Int32.
- protected int GetSegmentWait()
- {
- var minimumSegmentCount = 2;
- var quality = GetQualitySetting();
-
- if (quality == EncodingQuality.HighSpeed || quality == EncodingQuality.HighQuality)
- {
- minimumSegmentCount = 2;
- }
-
- return minimumSegmentCount;
- }
-
private string GetMasterPlaylistFileText(string firstPlaylist, int bitrate, bool includeBaselineStream, int baselineStreamBitrate)
{
var builder = new StringBuilder();
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index aa28ee90ac..b41686cb6c 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -114,11 +114,13 @@ namespace MediaBrowser.Api.Playback.Hls
var segmentPath = GetSegmentPath(playlistPath, index);
var segmentLength = state.SegmentLength;
+ var segmentExtension = GetSegmentFileExtension(state);
+
TranscodingJob job = null;
if (File.Exists(segmentPath))
{
- job = ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType.Hls);
+ job = ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType);
return await GetSegmentResult(playlistPath, segmentPath, index, segmentLength, job, cancellationToken).ConfigureAwait(false);
}
@@ -127,23 +129,23 @@ namespace MediaBrowser.Api.Playback.Hls
{
if (File.Exists(segmentPath))
{
- job = ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType.Hls);
+ job = ApiEntryPoint.Instance.OnTranscodeBeginRequest(playlistPath, TranscodingJobType);
return await GetSegmentResult(playlistPath, segmentPath, index, segmentLength, job, cancellationToken).ConfigureAwait(false);
}
else
{
- var currentTranscodingIndex = GetCurrentTranscodingIndex(playlistPath);
+ var currentTranscodingIndex = GetCurrentTranscodingIndex(playlistPath, segmentExtension);
if (currentTranscodingIndex == null || index < currentTranscodingIndex.Value || (index - currentTranscodingIndex.Value) > 4)
{
// If the playlist doesn't already exist, startup ffmpeg
try
{
- ApiEntryPoint.Instance.KillTranscodingJobs(j => j.Type == TranscodingJobType.Hls && string.Equals(j.DeviceId, request.DeviceId, StringComparison.OrdinalIgnoreCase), p => !string.Equals(p, playlistPath, StringComparison.OrdinalIgnoreCase));
+ ApiEntryPoint.Instance.KillTranscodingJobs(j => j.Type == TranscodingJobType && string.Equals(j.DeviceId, request.DeviceId, StringComparison.OrdinalIgnoreCase), p => !string.Equals(p, playlistPath, StringComparison.OrdinalIgnoreCase));
if (currentTranscodingIndex.HasValue)
{
- DeleteLastFile(playlistPath, 0);
+ DeleteLastFile(playlistPath, segmentExtension, 0);
}
var startSeconds = index * state.SegmentLength;
@@ -173,13 +175,13 @@ namespace MediaBrowser.Api.Playback.Hls
}
Logger.Info("returning {0}", segmentPath);
- job = job ?? ApiEntryPoint.Instance.GetTranscodingJob(playlistPath, TranscodingJobType.Hls);
+ job = job ?? ApiEntryPoint.Instance.GetTranscodingJob(playlistPath, TranscodingJobType);
return await GetSegmentResult(playlistPath, segmentPath, index, segmentLength, job, cancellationToken).ConfigureAwait(false);
}
- public int? GetCurrentTranscodingIndex(string playlist)
+ public int? GetCurrentTranscodingIndex(string playlist, string segmentExtension)
{
- var file = GetLastTranscodingFile(playlist, FileSystem);
+ var file = GetLastTranscodingFile(playlist, segmentExtension, FileSystem);
if (file == null)
{
@@ -193,14 +195,14 @@ namespace MediaBrowser.Api.Playback.Hls
return int.Parse(indexString, NumberStyles.Integer, UsCulture);
}
- private void DeleteLastFile(string path, int retryCount)
+ private void DeleteLastFile(string path, string segmentExtension, int retryCount)
{
if (retryCount >= 5)
{
return;
}
- var file = GetLastTranscodingFile(path, FileSystem);
+ var file = GetLastTranscodingFile(path, segmentExtension, FileSystem);
if (file != null)
{
@@ -213,7 +215,7 @@ namespace MediaBrowser.Api.Playback.Hls
Logger.ErrorException("Error deleting partial stream file(s) {0}", ex, file.FullName);
Thread.Sleep(100);
- DeleteLastFile(path, retryCount + 1);
+ DeleteLastFile(path, segmentExtension, retryCount + 1);
}
catch (Exception ex)
{
@@ -222,7 +224,7 @@ namespace MediaBrowser.Api.Playback.Hls
}
}
- private static FileInfo GetLastTranscodingFile(string playlist, IFileSystem fileSystem)
+ private static FileInfo GetLastTranscodingFile(string playlist, string segmentExtension, IFileSystem fileSystem)
{
var folder = Path.GetDirectoryName(playlist);
@@ -230,7 +232,7 @@ namespace MediaBrowser.Api.Playback.Hls
{
return new DirectoryInfo(folder)
.EnumerateFiles("*", SearchOption.TopDirectoryOnly)
- .Where(i => string.Equals(i.Extension, ".ts", StringComparison.OrdinalIgnoreCase))
+ .Where(i => string.Equals(i.Extension, segmentExtension, StringComparison.OrdinalIgnoreCase))
.OrderByDescending(fileSystem.GetLastWriteTimeUtc)
.FirstOrDefault();
}
diff --git a/MediaBrowser.Api/Playback/Hls/MpegDashService.cs b/MediaBrowser.Api/Playback/Hls/MpegDashService.cs
index baa6233809..7135d9b84b 100644
--- a/MediaBrowser.Api/Playback/Hls/MpegDashService.cs
+++ b/MediaBrowser.Api/Playback/Hls/MpegDashService.cs
@@ -1,5 +1,4 @@
-using System.Security;
-using MediaBrowser.Common.IO;
+using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Configuration;
@@ -7,11 +6,15 @@ using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.MediaEncoding;
+using MediaBrowser.Controller.Net;
using MediaBrowser.Model.IO;
using ServiceStack;
using System;
using System.Collections.Generic;
using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Security;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -34,6 +37,7 @@ namespace MediaBrowser.Api.Playback.Hls
}
[Route("/Videos/{Id}/dash/{SegmentId}.ts", "GET")]
+ [Route("/Videos/{Id}/dash/{SegmentId}.mp4", "GET")]
public class GetDashSegment : VideoStreamRequest
{
///
@@ -98,9 +102,6 @@ namespace MediaBrowser.Api.Playback.Hls
private string GetManifestText(StreamState state)
{
- var audioBitrate = state.OutputAudioBitrate ?? 0;
- var videoBitrate = state.OutputVideoBitrate ?? 0;
-
var builder = new StringBuilder();
var time = TimeSpan.FromTicks(state.RunTimeTicks.Value);
@@ -108,8 +109,13 @@ namespace MediaBrowser.Api.Playback.Hls
var duration = "PT" + time.Hours.ToString("00", UsCulture) + "H" + time.Minutes.ToString("00", UsCulture) + "M" + time.Seconds.ToString("00", UsCulture) + ".00S";
builder.Append("");
+
+ var profile = string.Equals(GetSegmentFileExtension(state), ".ts", StringComparison.OrdinalIgnoreCase)
+ ? "urn:mpeg:dash:profile:mp2t-simple:2011"
+ : "urn:mpeg:dash:profile:mp2t-simple:2011";
+
builder.AppendFormat(
- "",
+ "",
duration,
state.SegmentLength.ToString(CultureInfo.InvariantCulture));
@@ -143,7 +149,11 @@ namespace MediaBrowser.Api.Playback.Hls
{
var codecs = GetVideoCodecDescriptor(state) + "," + GetAudioCodecDescriptor(state);
- var xml = "");
+
while (seconds > 0)
{
- var segmentUrl = string.Format("{0}.ts{1}", index.ToString(UsCulture), SecurityElement.Escape(queryString));
+ var segmentUrl = string.Format("dash/{0}{1}{2}",
+ index.ToString(UsCulture),
+ extension,
+ SecurityElement.Escape(queryString));
- builder.AppendFormat("", segmentUrl);
+ if (index == 0)
+ {
+ builder.AppendFormat("", segmentUrl);
+ }
+ else
+ {
+ builder.AppendFormat("", segmentUrl);
+ }
seconds -= state.SegmentLength;
index++;
@@ -259,6 +283,274 @@ namespace MediaBrowser.Api.Playback.Hls
builder.Append("");
}
+ private async Task
/// The day of week.
- public DayOfWeek DayOfWeek { get; set; }
+ public DynamicDayOfWeek DayOfWeek { get; set; }
///
/// Gets or sets the start hour.
///
diff --git a/MediaBrowser.Model/Configuration/DynamicDayOfWeek.cs b/MediaBrowser.Model/Configuration/DynamicDayOfWeek.cs
new file mode 100644
index 0000000000..1c7de11fd8
--- /dev/null
+++ b/MediaBrowser.Model/Configuration/DynamicDayOfWeek.cs
@@ -0,0 +1,17 @@
+
+namespace MediaBrowser.Model.Configuration
+{
+ public enum DynamicDayOfWeek
+ {
+ Sunday = 0,
+ Monday = 1,
+ Tuesday = 2,
+ Wednesday = 3,
+ Thursday = 4,
+ Friday = 5,
+ Saturday = 6,
+ Everyday = 7,
+ Weekday = 8,
+ Weekend = 9
+ }
+}
diff --git a/MediaBrowser.Model/Connect/ConnectUserServer.cs b/MediaBrowser.Model/Connect/ConnectUserServer.cs
new file mode 100644
index 0000000000..6214633d8c
--- /dev/null
+++ b/MediaBrowser.Model/Connect/ConnectUserServer.cs
@@ -0,0 +1,12 @@
+
+namespace MediaBrowser.Model.Connect
+{
+ public class ConnectUserServer
+ {
+ public string Id { get; set; }
+ public string Url { get; set; }
+ public string Name { get; set; }
+ public string AccessKey { get; set; }
+ public string SystemId { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 470b1dcaf5..80c1259330 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -101,6 +101,7 @@
+
@@ -121,6 +122,7 @@
+
diff --git a/MediaBrowser.Providers/Movies/MovieMetadataService.cs b/MediaBrowser.Providers/Movies/MovieMetadataService.cs
index abddb5f165..af9970b699 100644
--- a/MediaBrowser.Providers/Movies/MovieMetadataService.cs
+++ b/MediaBrowser.Providers/Movies/MovieMetadataService.cs
@@ -7,8 +7,6 @@ using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Manager;
using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
namespace MediaBrowser.Providers.Movies
{
@@ -29,6 +27,11 @@ namespace MediaBrowser.Providers.Movies
protected override void MergeData(Movie source, Movie target, List lockedFields, bool replaceData, bool mergeMetadataSettings)
{
ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
+
+ if (replaceData || string.IsNullOrEmpty(target.TmdbCollectionName))
+ {
+ target.TmdbCollectionName = source.TmdbCollectionName;
+ }
}
}
}
diff --git a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs
index 2a006b677e..e3d4b600ca 100644
--- a/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs
+++ b/MediaBrowser.Server.Implementations/Connect/ConnectManager.cs
@@ -427,13 +427,19 @@ namespace MediaBrowser.Server.Implementations.Connect
var accessToken = Guid.NewGuid().ToString("N");
var sendingUser = GetUser(sendingUserId);
+ var requesterUserName = sendingUser.ConnectUserName;
+ if (string.IsNullOrWhiteSpace(requesterUserName))
+ {
+ requesterUserName = sendingUser.Name;
+ }
+
var postData = new Dictionary
{
{"serverId", ConnectServerId},
{"userId", connectUser.Id},
{"userType", "Guest"},
{"accessToken", accessToken},
- {"requesterUserName", sendingUser.ConnectUserName}
+ {"requesterUserName", requesterUserName}
};
options.SetPostData(postData);
@@ -608,8 +614,6 @@ namespace MediaBrowser.Server.Implementations.Connect
}
}
- users = _userManager.Users.ToList();
-
var pending = new List();
foreach (var connectEntry in list)
@@ -618,7 +622,8 @@ namespace MediaBrowser.Server.Implementations.Connect
{
if (string.Equals(connectEntry.AcceptStatus, "accepted", StringComparison.OrdinalIgnoreCase))
{
- var user = users.FirstOrDefault(i => string.Equals(i.ConnectUserId, connectEntry.UserId, StringComparison.OrdinalIgnoreCase));
+ var user = _userManager.Users
+ .FirstOrDefault(i => string.Equals(i.ConnectUserId, connectEntry.UserId, StringComparison.OrdinalIgnoreCase));
if (user == null)
{
@@ -635,6 +640,8 @@ namespace MediaBrowser.Server.Implementations.Connect
user.Configuration.SyncConnectImage = true;
user.Configuration.SyncConnectName = true;
user.Configuration.IsHidden = true;
+ user.Configuration.EnableLiveTvManagement = false;
+ user.Configuration.IsAdministrator = false;
_userManager.UpdateConfiguration(user, user.Configuration);
}
diff --git a/MediaBrowser.Server.Implementations/Library/UserManager.cs b/MediaBrowser.Server.Implementations/Library/UserManager.cs
index bb52fe35e7..163ad943e8 100644
--- a/MediaBrowser.Server.Implementations/Library/UserManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/UserManager.cs
@@ -10,6 +10,7 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events;
@@ -225,7 +226,7 @@ namespace MediaBrowser.Server.Implementations.Library
{
var name = Environment.UserName;
- var user = InstantiateNewUser(name);
+ var user = InstantiateNewUser(name, false);
user.DateLastSaved = DateTime.UtcNow;
@@ -403,7 +404,7 @@ namespace MediaBrowser.Server.Implementations.Library
try
{
- var user = InstantiateNewUser(name);
+ var user = InstantiateNewUser(name, true);
var list = Users.ToList();
list.Add(user);
@@ -509,6 +510,11 @@ namespace MediaBrowser.Server.Implementations.Library
throw new ArgumentNullException("user");
}
+ if (user.ConnectLinkType.HasValue && user.ConnectLinkType.Value == UserLinkType.Guest)
+ {
+ throw new ArgumentException("Passwords for guests cannot be changed.");
+ }
+
user.Password = string.IsNullOrEmpty(newPassword) ? GetSha1String(string.Empty) : GetSha1String(newPassword);
await UpdateUser(user).ConfigureAwait(false);
@@ -520,15 +526,21 @@ namespace MediaBrowser.Server.Implementations.Library
/// Instantiates the new user.
///
/// The name.
+ /// if set to true [check identifier].
/// User.
- private User InstantiateNewUser(string name)
+ private User InstantiateNewUser(string name, bool checkId)
{
- var idSalt = ("MBUser" + name);
+ var id = ("MBUser" + name).GetMD5();
+
+ if (checkId && Users.Select(i => i.Id).Contains(id))
+ {
+ id = Guid.NewGuid();
+ }
return new User
{
Name = name,
- Id = idSalt.GetMD5(),
+ Id = id,
DateCreated = DateTime.UtcNow,
DateModified = DateTime.UtcNow,
UsesIdForConfigurationPath = true
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
index a94b7166f6..f612bfd744 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 9476331c95..99518b1ca3 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 cdbc0bceeb..71a26ba3cb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 a278ca45ee..8a19230cac 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 c0abc5a559..5fbb82a4de 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 f8d1bb7b56..aac19bcf7e 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 9e9bee689d..9696ada9b9 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 6cfaee2acc..d63cfa1fe4 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 a612e763f2..085fe13159 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 3572246985..e0e75beca2 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "\u00bfEsta seguro de querer eliminar este dispositivo? Volver\u00e1 a aparecer la siguiente vez que un usuario inicie sesi\u00f3n en \u00e9l.",
"LabelEnableCameraUploadFor": "Habilitar subida desde la c\u00e1mara para:",
"HeaderSelectUploadPath": "Seleccionar trayectoria de subida",
- "LabelEnableCameraUploadForHelp": "La subida ocurrir\u00e1 autom\u00e1ticamente en segundo plano al iniciar sesi\u00f3n en Media Browser."
+ "LabelEnableCameraUploadForHelp": "La subida ocurrir\u00e1 autom\u00e1ticamente en segundo plano al iniciar sesi\u00f3n en Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "El tiempo de fin debe ser mayor al tiempo de inicio"
}
\ 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 b992a74655..ecbe009047 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "\u00cates-vous s\u00fbr de vouloir supprimer ce p\u00e9riph\u00e9rique? La prochaine fois qu'un utilisateur se connecte au p\u00e9riph\u00e9rique, il sera ajout\u00e9 de nouveau.",
"LabelEnableCameraUploadFor": "Autoriser l'upload de la cam\u00e9ra pour:",
"HeaderSelectUploadPath": "S\u00e9lectionner le r\u00e9pertoire d'upload",
- "LabelEnableCameraUploadForHelp": "Les uploads se lanceront automatiquement en arri\u00e8re plan apr\u00e8s l'authentification dans Media Browser."
+ "LabelEnableCameraUploadForHelp": "Les uploads se lanceront automatiquement en arri\u00e8re plan apr\u00e8s l'authentification dans Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 c583962823..5deeb6bb16 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json
index c454b254a5..adb1263640 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 3dab6c4745..4c58055a2e 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
index 70f8fd0f25..78be468eb7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 b378e6b871..b65ab37001 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 1047bc38af..83a18459f3 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 e18a3475c2..4d01b890bc 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
@@ -595,11 +595,12 @@
"DashboardTourScheduledTasks": "Beheer eenvoudig langlopende transacties met geplande taken. Beslis zelf wanneer ze worden uitgevoerd en hoe vaak.",
"DashboardTourMobile": "Het dashboard van Media Browser werkt geweldig op smartphones en tablets. Uw server beheren vanuit de palm van uw hand, overal en altijd.",
"MessageRefreshQueued": "Vernieuwen wachtrij",
- "TabDevices": "Devices",
- "DeviceLastUsedByUserName": "Last used by {0}",
- "HeaderDeleteDevice": "Delete Device",
+ "TabDevices": "Apparaten",
+ "DeviceLastUsedByUserName": "Het laatste gebruikt door {0}",
+ "HeaderDeleteDevice": "Verwijder apparaat",
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 2055dd0a58..cb449c3c63 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 e50f69c565..1dd5ee0749 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
@@ -594,12 +594,13 @@
"DashboardTourNotifications": "Envie, automaticamente, notifica\u00e7\u00f5es de eventos do servidor para seus dispositivos m\u00f3veis, email e mais.",
"DashboardTourScheduledTasks": "Gerencie facilmente opera\u00e7\u00f5es longas com tarefas agendadas. Decida quando executar e com que frequ\u00eancia.",
"DashboardTourMobile": "O painel do M\u00e9dia Browser funciona perfeitamente em smartphones e tablets. Gerencie seu servidor da palma de sua m\u00e3o, a qualquer hora e em qualquer lugar.",
- "MessageRefreshQueued": "Refresh queued",
- "TabDevices": "Devices",
- "DeviceLastUsedByUserName": "Last used by {0}",
- "HeaderDeleteDevice": "Delete Device",
- "DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
- "LabelEnableCameraUploadFor": "Enable camera upload for:",
- "HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "MessageRefreshQueued": "Atualiza\u00e7\u00e3o iniciada",
+ "TabDevices": "Dispositivos",
+ "DeviceLastUsedByUserName": "Utilizado por \u00faltimo por {0}",
+ "HeaderDeleteDevice": "Excluir Dispositivo",
+ "DeleteDeviceConfirmation": "Tem certeza de que deseja excluir este dispositivo? Ele reaparecer\u00e1 a pr\u00f3xima vez que um usu\u00e1rio utiliz\u00e1-lo.",
+ "LabelEnableCameraUploadFor": "Habilitar envio atrav\u00e9s de c\u00e2mera para:",
+ "HeaderSelectUploadPath": "Selecione o caminho para carga",
+ "LabelEnableCameraUploadForHelp": "Cargas ser\u00e3o executadas automaticamente em retaguarda quando logar no Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 68ef481e19..0f234b0883 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 8cdc61cc98..36789f57d2 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 f5d2dc62d6..fa63530695 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
index ec43032bd7..cc987bcada 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 643f7140ca..fafdcf33ca 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 6994beb1f9..ace114c8d8 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
@@ -601,5 +601,6 @@
"DeleteDeviceConfirmation": "Are you sure you wish to delete this device? It will reappear the next time a user signs in with it.",
"LabelEnableCameraUploadFor": "Enable camera upload for:",
"HeaderSelectUploadPath": "Select Upload Path",
- "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser."
+ "LabelEnableCameraUploadForHelp": "Uploads will occur automatically in the background when signed into Media Browser.",
+ "ErrorMessageStartHourGreaterThanEnd": "End time must be greater than the start time."
}
\ 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 74854f0757..a0094c5b27 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ar.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ca.json b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
index 49a93e00be..2efa7c4619 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/cs.json b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
index 19ad31c6d5..ae340a34cb 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Nav\u0161t\u00edvit str\u00e1nku programu Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Nav\u0161tivte str\u00e1nku programu Media Browser pro zji\u0161t\u011bn\u00ed posledn\u00edch novinek a informac\u00ed od v\u00fdvoj\u00e1\u0159\u016f.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Skr\u00fdt tohoto u\u017eivatele z p\u0159ihla\u0161ovac\u00edch obrazovek",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Zablokovat tohoto u\u017eivatele",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Pokud je zablokov\u00e1n, server nepovol\u00ed tomuto u\u017eivateli \u017e\u00e1dn\u00e9 p\u0159ipojen\u00ed. Existuj\u00edc\u00ed p\u0159ipojen\u00ed bude okam\u017eit\u011b p\u0159eru\u0161eno.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Pokro\u010dil\u00e9 nastaven\u00ed",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Jm\u00e9no:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Povolit tomuto u\u017eivateli spr\u00e1vu serveru",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "P\u0159\u00edstup k funkc\u00edm",
"OptionAllowMediaPlayback": "Povolit p\u0159ehr\u00e1v\u00e1n\u00ed medi\u00ed",
"OptionAllowBrowsingLiveTv": "Provolit \u017eiv\u00e9 vys\u00edl\u00e1n\u00ed",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/da.json b/MediaBrowser.Server.Implementations/Localization/Server/da.json
index 74f2e050be..174ef2c635 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/da.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Bes\u00f8g Media Browsers Webside",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Vis ikke denne bruger p\u00e5 logind siden",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Deaktiver denne bruger",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Hvis deaktiveret vil serveren ikke tillade forbindelser fra denne bruger. Eksisterende forbindelser vil blive afbrudt.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Avanceret Kontrol",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Navn:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Tillad denne bruger at administrere serveren",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Funktion Adgang",
"OptionAllowMediaPlayback": "Tillad medie afspilning",
"OptionAllowBrowsingLiveTv": "Tillad gennemsyn af direkte tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/de.json b/MediaBrowser.Server.Implementations/Localization/Server/de.json
index 728f7acc9d..2daba2c55e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/de.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Besuche die Media Browser Website",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Besuche die Media Browser Website um die aktuellsten Neuigkeiten zu erfahren und halte dich auf dem Laufenden mit dem Entwicklerblog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Verberge diesen Benutzer in den Anmeldebildschirmen",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Sperre diesen Benutzer",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Wenn deaktiviert,wird der Server keine Verbindung von diesem Benutzer erlauben. Bestehenden Verbindungen werden sofort beendet.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Erweiterte Kontrolle",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Dieser Benutzer kann den Server managen",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Funktionszugriff",
"OptionAllowMediaPlayback": "Erlaube das Abspielen von Medien",
"OptionAllowBrowsingLiveTv": "Erlaube das durchsuchen von Live-TV",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/el.json b/MediaBrowser.Server.Implementations/Localization/Server/el.json
index 130b9f3b23..6815f46af1 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/el.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
index 0a2d7c3e62..363f7b7ed9 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
index 88ef2b80e8..a7640ef00b 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/es.json b/MediaBrowser.Server.Implementations/Localization/Server/es.json
index 5dc9cab69c..4bbd3ebb9e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visitar la web de Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visita la web de Media Browser para estar informado de las \u00faltimas not\u00edcias y mantenerte al d\u00eda con el blog de desarrolladores.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Ocultar este usuario en las pantallas de inicio de sesi\u00f3n",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Deshabilitar este usuario",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Si est\u00e1 deshabilitado, el servidor no aceptar\u00e1 conexiones de este usuario. Si existen conexiones de este usuario, finalizar\u00e1n inmediatamente.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Control avanzado",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Nombre:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Permite a este usuario administrar el servidor",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Permisos de acceso",
"OptionAllowMediaPlayback": "Permitir reproducci\u00f3n de medios",
"OptionAllowBrowsingLiveTv": "Acceso a TV en vivo",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
index 879b2ff774..1cb870fb81 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visitar el Sitio Web de Media Browser",
"HeaderPendingInvitations": "Invitaciones Pendientes",
"VisitMediaBrowserWebsiteLong": "Visite el Sitio Web de Media Browser para estar conocer las \u00faltimas not\u00edcias y mantenerse al d\u00eda con el blog de los desarrolladores.",
+ "TabParentalControl": "Control Parental",
"OptionHideUser": "Ocultar este usuario en las pantallas de inicio de sesi\u00f3n",
+ "HeaderAccessSchedule": "Acceder Programaci\u00f3n",
"OptionDisableUser": "Desactivar este usuario",
+ "HeaderAccessScheduleHelp": "Crear programaci\u00f3n de acceso para limitar el acceso a ciertos horarios.",
"OptionDisableUserHelp": "Si est\u00e1 desactivado, el servidor no aceptar\u00e1 conexiones de este usuario. Las conexiones existentes ser\u00e1n finalizadas abruptamente.",
+ "ButtonAddSchedule": "Agregar Programaci\u00f3n",
"HeaderAdvancedControl": "Control Avanzado",
+ "LabelAccessDay": "D\u00eda de la semana:",
"LabelName": "Nombre:",
+ "LabelAccessStart": "Hora de inicio:",
"OptionAllowUserToManageServer": "Permitir a este usuario administrar el servidor",
+ "LabelAccessEnd": "Hora de fin:",
"HeaderFeatureAccess": "Permisos de acceso",
"OptionAllowMediaPlayback": "Permitir reproducci\u00f3n de medios",
"OptionAllowBrowsingLiveTv": "Permitir acceder a TV en vivo",
@@ -532,7 +539,7 @@
"OptionPrePaddingRequired": "Prtecci\u00f3n previa es requerida para grabar.",
"LabelPostPaddingMinutes": "Minutos de protecci\u00f3n posterior:",
"OptionPostPaddingRequired": "Protecci\u00f3n posterior es requerida para grabar.",
- "HeaderWhatsOnTV": "\u00bfQu\u00e9 se V\u00e9?",
+ "HeaderWhatsOnTV": "\u00bfQu\u00e9 hay?",
"HeaderUpcomingTV": "Pr\u00f3ximos Programas",
"TabStatus": "Estado",
"TabSettings": "Configuraci\u00f3n",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/fr.json b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
index 9520ca45fd..13c6822334 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visiter le site Web de Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visiter le site Web de Media Browser pour lire les derni\u00e8res nouvelles et parcourir le journal des d\u00e9veloppeurs.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Ne pas afficher cet utilisateur dans les \u00e9crans de connexion",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "D\u00e9sactiver cet utilisateur",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Si d\u00e9sactiv\u00e9, le serveur n'autorisera pas de connexion de cet utilisateur. Les connexions existantes seront interrompues.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Contr\u00f4le avanc\u00e9",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Nom :",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Autoriser la gestion du serveur \u00e0 cet utilisateur",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Acc\u00e8s aux caract\u00e9ristiques",
"OptionAllowMediaPlayback": "Autoriser la lecture du m\u00e9dia",
"OptionAllowBrowsingLiveTv": "Autoriser la TV en direct",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/he.json b/MediaBrowser.Server.Implementations/Localization/Server/he.json
index 2a01876b7f..e949d74ae4 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/he.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "\u05d1\u05e7\u05e8 \u05d1\u05d0\u05ea\u05e8 \u05e9\u05dc Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "\u05d1\u05e7\u05e8 \u05d1\u05d0\u05ea\u05e8 \u05e9\u05dc Media Browser \u05db\u05d3\u05d9 \u05dc\u05d4\u05ea\u05e2\u05d3\u05db\u05df \u05d1\u05d7\u05e9\u05d3\u05d5\u05ea \u05d4\u05d0\u05d7\u05e8\u05d5\u05e0\u05d5\u05ea \u05d5\u05d1\u05d1\u05dc\u05d5\u05d2 \u05d4\u05de\u05e4\u05ea\u05d7\u05d9\u05dd.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "\u05d4\u05e1\u05ea\u05e8 \u05de\u05e9\u05ea\u05de\u05e9 \u05d6\u05d4 \u05d1\u05d7\u05dc\u05d5\u05df \u05d4\u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "\u05d1\u05d8\u05dc \u05de\u05e9\u05ea\u05de\u05e9 \u05d6\u05d4",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "\u05d0\u05dd \u05de\u05d1\u05d5\u05d8\u05dc, \u05d4\u05e9\u05e8\u05ea \u05e9\u05dc\u05d0 \u05d9\u05d0\u05e4\u05e9\u05e8 \u05d7\u05d9\u05d1\u05d5\u05e8\u05d9\u05dd \u05de\u05de\u05e9\u05ea\u05de\u05e9 \u05d6\u05d4. \u05d7\u05d9\u05d1\u05d5\u05e8\u05d9\u05dd \u05e4\u05e2\u05d9\u05dc\u05d9\u05dd \u05d9\u05d1\u05d5\u05d8\u05dc\u05d5 \u05de\u05d9\u05d9\u05d3.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "\u05e9\u05dc\u05d9\u05d8\u05d4 \u05de\u05ea\u05e7\u05d3\u05de\u05d5\u05ea",
+ "LabelAccessDay": "Day of week:",
"LabelName": "\u05e9\u05dd:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "\u05d0\u05e4\u05e9\u05e8 \u05dc\u05de\u05e9\u05ea\u05de\u05e9 \u05d6\u05d4 \u05dc\u05e0\u05d4\u05dc \u05d0\u05ea \u05d4\u05e9\u05e8\u05ea",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "\u05d2\u05d9\u05e9\u05d4 \u05dc\u05de\u05d0\u05e4\u05d9\u05d9\u05e0\u05d9\u05dd",
"OptionAllowMediaPlayback": "\u05d0\u05e4\u05e9\u05e8 \u05e0\u05d9\u05d2\u05d5\u05df \u05de\u05d3\u05d9\u05d4",
"OptionAllowBrowsingLiveTv": "\u05d0\u05e4\u05e9\u05e8 \u05d3\u05e4\u05d3\u05d5\u05e3 \u05d1\u05d8\u05dc\u05d5\u05d5\u05d9\u05d6\u05d9\u05d4 \u05d7\u05d9\u05d4",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/hr.json b/MediaBrowser.Server.Implementations/Localization/Server/hr.json
index c76c3cf4e3..23142b377e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/hr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/hr.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Posjeti Media Browser web stranicu",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Posjeti Media Browser web stranicu kako bi vidjeli najnovije vijesti i bili u toku sa programerskim blogom",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Sakrij korisnika sa prozora prijave",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Onemogu\u0107i ovog korisnika",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Ako je onemogu\u0107en server ne\u0107e dopustiti nikakve veze od ovog korisnika. Postoje\u0107e veze \u0107e odmah biti prekinute.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Napredna kontrola",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Ime:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Dopusti ovom korisniku da upravlja serverom",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Pristup opcijama",
"OptionAllowMediaPlayback": "Dopusti reprodukciju medijskog sadr\u017eaja",
"OptionAllowBrowsingLiveTv": "Omogu\u0107i pregled TV programa",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/it.json b/MediaBrowser.Server.Implementations/Localization/Server/it.json
index 30eaa6c4f6..ce26873074 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/it.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visita il sito di Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Vuoi saperne di pi\u00f9 sulle ultime novit\u00e0?",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Nascondi questo utente dalla schermata di Accesso",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disabilita utente",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Se disabilitato, il server non sar\u00e0 disponibile per questo utente.La connessione corrente verr\u00e0 TERMINATA",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Controlli avanzati",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Nome:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Consenti a questo utente di accedere alla configurazione del SERVER",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Caratteristiche di accesso",
"OptionAllowMediaPlayback": "Consenti la riproduzione",
"OptionAllowBrowsingLiveTv": "Consenti la navigazione sulla Tv indiretta",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/kk.json b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
index e9eaafc58d..2237c9292b 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Media Browser \u0441\u0430\u0439\u0442\u044b\u043d\u0430 \u0431\u0430\u0440\u0443",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "\u0421\u043e\u04a3\u0493\u044b \u0436\u0430\u04a3\u0430\u043b\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u0431\u0456\u043b\u0456\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u0436\u04d9\u043d\u0435 \u0436\u0430\u0441\u0430\u049b\u0442\u0430\u0443\u0448\u044b\u043b\u0430\u0440 \u0431\u043b\u043e\u0433\u0456\u043c\u0435\u043d \u0442\u0430\u043d\u044b\u0441\u044b\u043f \u0442\u04b1\u0440\u0443 \u04af\u0448\u0456\u043d Media Browser \u0441\u0430\u0439\u0442\u044b\u043d\u0430 \u0431\u0430\u0440\u044b\u04a3\u044b\u0437.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "\u0411\u04b1\u043b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043d\u044b \u043a\u0456\u0440\u0443 \u044d\u043a\u0440\u0430\u043d\u0434\u0430\u0440\u044b\u043d\u0430\u043d \u0436\u0430\u0441\u044b\u0440\u0443",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "\u0411\u04b1\u043b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u0493\u0430 \u0442\u044b\u0439\u044b\u043c \u0441\u0430\u043b\u0443",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "\u0415\u0433\u0435\u0440 \u0442\u044b\u0439\u044b\u043c \u0441\u0430\u043b\u044b\u043d\u0441\u0430, \u0441\u0435\u0440\u0432\u0435\u0440 \u0431\u04b1\u043b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u0434\u0430\u043d \u0435\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u049b\u043e\u0441\u044b\u043b\u044b\u043c\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u043f\u0435\u0439\u0434\u0456. \u0411\u0430\u0440 \u049b\u043e\u0441\u044b\u043b\u044b\u043c\u0434\u0430\u0440 \u043a\u0435\u043d\u0435\u0442 \u04af\u0437\u0456\u043b\u0435\u0434\u0456.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "\u041a\u0435\u04a3\u0435\u0439\u0442\u0456\u043b\u0433\u0435\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443",
+ "LabelAccessDay": "Day of week:",
"LabelName": "\u0410\u0442\u044b:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "\u0411\u0443\u043b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u0493\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u0431\u0430\u0441\u049b\u0430\u0440\u0443 \u04af\u0448\u0456\u043d \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "\u041c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a\u0442\u0435\u0440\u0433\u0435 \u049b\u0430\u0442\u044b\u043d\u0430\u0441",
"OptionAllowMediaPlayback": "\u0422\u0430\u0441\u0443\u0448\u044b\u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0434\u0456 \u043e\u0439\u043d\u0430\u0442\u0443\u044b\u043d\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
"OptionAllowBrowsingLiveTv": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0414 \u0448\u043e\u043b\u0443\u044b\u043d\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0443",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ko.json b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
index cf7cb0795d..2e94e5014e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ko.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ms.json b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
index d04dd58aab..783928c6c6 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/nb.json b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
index aa8a1fd042..3eb8bca504 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Bes\u00f8k Media Browsers nettside",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Bes\u00f8k Media Browser sin side for \u00e5 f\u00e5 de siste nyhetene og for \u00e5 f\u00f8lge med p\u00e5 utviklerbloggen.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Skjul brukere fra logginn-skjermen",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Deaktiver denne brukeren",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Hvis avsl\u00e5tt, serveren vil ikke godta noen forbindelser fra denne brukeren. eksisterende forbindelser vil bli br\u00e5tt avsluttet.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Avansert Kontroll",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Navn",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "TIllatt denne brukeren \u00e5 administrere serveren",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Funksjon Tilgang",
"OptionAllowMediaPlayback": "Tillatt medieavspilling",
"OptionAllowBrowsingLiveTv": "Tillat surfing av Live TV",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/nl.json b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
index 1472371371..335cb790bc 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
@@ -394,21 +394,21 @@
"OptionSunday": "Zondag",
"HeaderWelcomeToMediaBrowserServerDashboard": "Welkom bij de Media Browser Dashboard",
"OptionMonday": "Maandag",
- "LabelDateAddedBehavior": "Date added behavior for new content:",
+ "LabelDateAddedBehavior": "Datum toegevoegd gedrag voor nieuwe content:",
"OptionTuesday": "Dinsdag",
- "OptionDateAddedImportTime": "Use date scanned into the library",
+ "OptionDateAddedImportTime": "Gebruik scan datum",
"OptionWednesday": "Woensdag",
- "OptionDateAddedFileTime": "Use file creation date",
+ "OptionDateAddedFileTime": "Gebruik aanmaak datum bestand",
"OptionThursday": "Donderdag",
- "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.",
+ "LabelDateAddedBehaviorHelp": "Als er metadata gegevens zijn hebben deze voorrang op deze opties.",
"OptionFriday": "Vrijdag",
- "LabelNumberTrailerToPlay": "Number of trailers to play:",
+ "LabelNumberTrailerToPlay": "Aantal af te spelen trailers:",
"OptionSaturday": "Zaterdag",
"TitleDevices": "Devices",
"HeaderManagement": "Beheer",
"TabCameraUpload": "Camera Upload",
"LabelManagement": "Management:",
- "TabDevices": "Devices",
+ "TabDevices": "Apparaten",
"OptionMissingImdbId": "IMDb Id ontbreekt",
"HeaderCameraUploadHelp": "Automatically upload photos and videos taken from your mobile devices into Media Browser.",
"OptionMissingTvdbId": "TheTVDB Id ontbreekt",
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Bezoek de Media Browser Website",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Bezoek de Media Browser-website voor het laatste nieuws en blijf op de hoogte via de ontwikkelaars blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Verberg deze gebruiker op de aanmeldschermen",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Deze account uitschakelen",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Indien uitgeschakeld zal de server geen verbindingen van deze gebruiker toe staan. Bestaande verbindingen zullen abrupt worden be\u00ebindigd.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Geavanceerd Beheer",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Naam:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Deze gebruiker kan de server te beheren",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Functie toegang",
"OptionAllowMediaPlayback": "Afspelen van media toestaan",
"OptionAllowBrowsingLiveTv": "Bladeren door live tv toestaan",
@@ -682,13 +689,13 @@
"NewCollectionNameExample": "Voorbeeld: Star Wars Collectie",
"OptionSearchForInternetMetadata": "Zoeken op het internet voor afbeeldingen en metadata",
"ButtonCreate": "Cre\u00ebren",
- "LabelLocalHttpServerPortNumber": "Local port number:",
- "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Media Browser's http server should bind to.",
- "LabelPublicPort": "Public port number:",
- "LabelPublicPortHelp": "The public port number that should be mapped to the local port.",
+ "LabelLocalHttpServerPortNumber": "Lokaal poort nummer:",
+ "LabelLocalHttpServerPortNumberHelp": "De TCP poort waarop de Media Browser Server beschikbaar is.",
+ "LabelPublicPort": "Publieke poort nummer:",
+ "LabelPublicPortHelp": "Het poortnummer op het internet waarop Media Browser beschikbaar is.",
"LabelWebSocketPortNumber": "Web socket poortnummer:",
- "LabelEnableAutomaticPortMap": "Enable automatic port mapping",
- "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.",
+ "LabelEnableAutomaticPortMap": "Schakel automatisch poort vertalen in",
+ "LabelEnableAutomaticPortMapHelp": "Probeer om de publieke poort automatisch te vertalen naar de lokale poort via UPnP. Dit werk niet op alle routers.",
"LabelExternalDDNS": "Externe DDNS:",
"LabelExternalDDNSHelp": "Als u een dynamische DNS heeft kun u die hier invoeren. Media Browser apps zullen het gebruiken om op afstand verbinding te maken.",
"TabResume": "Hervatten",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pl.json b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
index 752185288c..cbd5fca36e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Odwied\u017a stron\u0119 Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Disable this user",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Name:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
index 32148cd7f1..f129aaa261 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
@@ -70,7 +70,7 @@
"ButtonOk": "Ok",
"LabelChannelDownloadSizeLimit": "Limite do tamanho para download (GB):",
"ButtonCancel": "Cancelar",
- "LabelChannelDownloadSizeLimitHelpText": "Limit the size of the channel download folder.",
+ "LabelChannelDownloadSizeLimitHelpText": "Limitar o tamanho da pasta de download do canal.",
"HeaderRecentActivity": "Atividade Recente",
"ButtonNew": "Novo",
"HeaderPeople": "Pessoas",
@@ -152,7 +152,7 @@
"LabelWebsite": "Website:",
"ButtonAddLocalUser": "Adicionar Usu\u00e1rio Local",
"LabelTagline": "Slogan:",
- "ButtonInviteUser": "Invite User",
+ "ButtonInviteUser": "Convidar Usu\u00e1rio",
"ButtonSave": "Salvar",
"LabelOverview": "Sinopse:",
"ButtonResetPassword": "Redefinir Senha",
@@ -394,58 +394,65 @@
"OptionSunday": "Domingo",
"HeaderWelcomeToMediaBrowserServerDashboard": "Bem Vindo ao Painel do Media Browser",
"OptionMonday": "Segunda-feira",
- "LabelDateAddedBehavior": "Date added behavior for new content:",
+ "LabelDateAddedBehavior": "Data de adi\u00e7\u00e3o de comportamento para o novo conte\u00fado:",
"OptionTuesday": "Ter\u00e7a-feira",
- "OptionDateAddedImportTime": "Use date scanned into the library",
+ "OptionDateAddedImportTime": "Use a data obtida na biblioteca",
"OptionWednesday": "Quarta-feira",
- "OptionDateAddedFileTime": "Use file creation date",
+ "OptionDateAddedFileTime": "Use a data de cria\u00e7\u00e3o do arquivo",
"OptionThursday": "Quinta-feira",
- "LabelDateAddedBehaviorHelp": "If a metadata value is present it will always be used before either of these options.",
+ "LabelDateAddedBehaviorHelp": "Se um valor de metadata estiver presente, ele sempre ser\u00e1 utilizado antes destas op\u00e7\u00f5es.",
"OptionFriday": "Sexta-feira",
- "LabelNumberTrailerToPlay": "Number of trailers to play:",
+ "LabelNumberTrailerToPlay": "N\u00famero de trailers a serem apresentados:",
"OptionSaturday": "S\u00e1bado",
- "TitleDevices": "Devices",
+ "TitleDevices": "Dispositivos",
"HeaderManagement": "Gerenciamento",
- "TabCameraUpload": "Camera Upload",
+ "TabCameraUpload": "Carga atrav\u00e9s de c\u00e2mera",
"LabelManagement": "Administra\u00e7\u00e3o:",
- "TabDevices": "Devices",
+ "TabDevices": "Dispositivos",
"OptionMissingImdbId": "Faltando Id IMDb",
- "HeaderCameraUploadHelp": "Automatically upload photos and videos taken from your mobile devices into Media Browser.",
+ "HeaderCameraUploadHelp": "Carga autom\u00e1tica de fotos e v\u00eddeos de seus dispositivos m\u00f3veis para o Media Browser.",
"OptionMissingTvdbId": "Faltando Id TheTVDB",
- "MessageNoDevicesSupportCameraUpload": "You currently don't have any devices that support camera upload.",
+ "MessageNoDevicesSupportCameraUpload": "Atualmente voc\u00ea n\u00e3o tem nenhum dispositivo que suporte carga atrav\u00e9s da c\u00e2mera.",
"OptionMissingOverview": "Faltando Sinopse",
- "LabelCameraUploadPath": "Camera upload path:",
+ "LabelCameraUploadPath": "Caminho para carga atrav\u00e9s da c\u00e2mera:",
"OptionFileMetadataYearMismatch": "Anos do Arquivo e Metadados n\u00e3o conferem",
- "LabelCameraUploadPathHelp": "Select a custom upload path, if desired. If unspecified a default folder will be used.",
+ "LabelCameraUploadPathHelp": "Selecione o caminho, caso desejado. Se n\u00e3o for especificado um caminho, ser\u00e1 usada uma pasta padr\u00e3o.",
"TabGeneral": "Geral",
- "LabelCreateCameraUploadSubfolder": "Create a subfolder for each device",
+ "LabelCreateCameraUploadSubfolder": "Criar uma subpasta para cada dispositivo",
"TitleSupport": "Suporte",
- "LabelCreateCameraUploadSubfolderHelp": "Specific folders can be assigned to a device by clicking on it from the Devices page.",
+ "LabelCreateCameraUploadSubfolderHelp": "Pastas espec\u00edficas podem ser atribu\u00eddas a um dispositivo clicando-as na p\u00e1gina de Dispositivos.",
"TabLog": "Log",
- "LabelCustomDeviceDisplayName": "Display name:",
+ "LabelCustomDeviceDisplayName": "Nome para exibi\u00e7\u00e3o:",
"TabAbout": "Sobre",
- "LabelCustomDeviceDisplayNameHelp": "Supply a custom display name or leave empty to use the name reported by the device.",
+ "LabelCustomDeviceDisplayNameHelp": "Forne\u00e7a um nome para exibi\u00e7\u00e3o ou deixe vazio para usar o nome informado pelo dispositivo.",
"TabSupporterKey": "Chave de Colaborador",
- "HeaderInviteUser": "Invite User",
+ "HeaderInviteUser": "Convidar usu\u00e1rio",
"TabBecomeSupporter": "Torne-se um Colaborador",
- "LabelConnectInviteUserHelp": "This is the username or email that your friend uses to sign in to the Media Browser website.",
+ "LabelConnectInviteUserHelp": "Este \u00e9 o nome do usu\u00e1rio ou email que seu amigo usa para o website do Media Browser",
"MediaBrowserHasCommunity": "Media Browser tem uma comunidade que cresce em usu\u00e1rios e colaboradores.",
- "HeaderInviteUserHelp": "Sharing your media with friends is easier than ever before with Media Browser Connect.",
+ "HeaderInviteUserHelp": "Compartilhar suas m\u00eddias com seus amigos \u00e9 muito mais facil com o Media Browser Connect",
"CheckoutKnowledgeBase": "Verifique nossa base de conhecimento para ajud\u00e1-lo a obter o m\u00e1ximo do Media Browser.",
- "ButtonSendInvitation": "Send Invitation",
+ "ButtonSendInvitation": "Enviar convite",
"SearchKnowledgeBase": "Pesquisar na Base de Conhecimento",
- "HeaderGuests": "Guests",
+ "HeaderGuests": "Convidados",
"VisitTheCommunity": "Visitar a Comunidade",
- "HeaderLocalUsers": "Local Users",
+ "HeaderLocalUsers": "Usu\u00e1rios Locais",
"VisitMediaBrowserWebsite": "Visitar o Web Site do Media Browser",
- "HeaderPendingInvitations": "Pending Invitations",
+ "HeaderPendingInvitations": "Convites pendentes",
"VisitMediaBrowserWebsiteLong": "Visite o Web Site do Media Browser para obter as \u00faltimas novidades e atualizar-se com o blog de desenvolvedores.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Ocultar este usu\u00e1rio das telas de login",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Desativar este usu\u00e1rio",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Se estiver desativado o servidor n\u00e3o permitir\u00e1 nenhuma conex\u00e3o deste usu\u00e1rio. Conex\u00f5es existentes ser\u00e3o abruptamente terminadas.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Controle Avan\u00e7ado",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Nome:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Permitir a este usu\u00e1rio administrar o servidor",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Acesso aos Recursos",
"OptionAllowMediaPlayback": "Permitir reprodu\u00e7\u00e3o de m\u00eddia",
"OptionAllowBrowsingLiveTv": "Permitir navega\u00e7\u00e3o na tv ao vivo",
@@ -682,13 +689,13 @@
"NewCollectionNameExample": "Exemplo: Cole\u00e7\u00e3o Star Wars",
"OptionSearchForInternetMetadata": "Buscar artwork e metadados na internet",
"ButtonCreate": "Criar",
- "LabelLocalHttpServerPortNumber": "Local port number:",
- "LabelLocalHttpServerPortNumberHelp": "The tcp port number that Media Browser's http server should bind to.",
- "LabelPublicPort": "Public port number:",
- "LabelPublicPortHelp": "The public port number that should be mapped to the local port.",
+ "LabelLocalHttpServerPortNumber": "N\u00famero da porta local:",
+ "LabelLocalHttpServerPortNumberHelp": "O n\u00famero da porta tcp que o servidor http do Media Browser utilizar\u00e1.",
+ "LabelPublicPort": "N\u00famero da porta p\u00fablica:",
+ "LabelPublicPortHelp": "O n\u00famero da porta p\u00fablica que deve ser mapeado para a porta local.",
"LabelWebSocketPortNumber": "N\u00famero da porta do web socket:",
- "LabelEnableAutomaticPortMap": "Enable automatic port mapping",
- "LabelEnableAutomaticPortMapHelp": "Attempt to automatically map the public port to the local port via UPnP. This may not work with some router models.",
+ "LabelEnableAutomaticPortMap": "Habilitar mapeamento autom\u00e1tico de portas",
+ "LabelEnableAutomaticPortMapHelp": "Tentativa de mapear automaticamente a porta p\u00fablica para a local atrav\u00e9s de uPnP. Isto poder\u00e1 n\u00e3o funcionar em alguns modelos de roteadores.",
"LabelExternalDDNS": "DDNS Externo:",
"LabelExternalDDNSHelp": "Se voc\u00ea tem um DNS din\u00e2mico digite aqui. O Media Browser o usar\u00e1 quando conectar remotamente.",
"TabResume": "Retomar",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
index 723c3b9840..e0f5e1eb95 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visite a p\u00e1gina web do Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visite a p\u00e1gina do Media Browser para ficar a par das \u00faltimas novidades e para acompanhar o blog do programador.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Ocultar este utilizador dos formul\u00e1rios de in\u00edcio de sess\u00e3o",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Desativar este utilizador",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Se desativado, o servidor n\u00e3o permite nenhuma conex\u00e3o deste utilizador. Conex\u00f5es existentes ser\u00e3o terminadas.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Controlo Avan\u00e7ado",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Nome:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Permitir a este utilizador gerir o servidor",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Acesso a Caracter\u00edsticas",
"OptionAllowMediaPlayback": "Permitir reprodu\u00e7\u00e3o de multim\u00e9dia",
"OptionAllowBrowsingLiveTv": "Permitir navega\u00e7\u00e3o da tv ao vivo",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ru.json b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
index 64b166124a..039f057f98 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "\u041f\u043e\u0441\u0435\u0442\u0438\u0442\u044c \u0441\u0430\u0439\u0442 Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"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 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c\u0438 \u043d\u043e\u0432\u043e\u0441\u0442\u044f\u043c\u0438 \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0441\u0432\u0435\u0434\u043e\u043c\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u0431\u043b\u043e\u0433\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432.",
+ "TabParentalControl": "Parental Control",
"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",
+ "HeaderAccessSchedule": "Access Schedule",
"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",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "\u041f\u0440\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u044b\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.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435",
+ "LabelAccessDay": "Day of week:",
"LabelName": "\u0418\u043c\u044f (\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435):",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "\u042d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438",
"OptionAllowMediaPlayback": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0445",
"OptionAllowBrowsingLiveTv": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u044d\u0444\u0438\u0440\u043d\u043e\u0433\u043e \u0442\u0432",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index 2a56037b3f..07faaf884e 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -830,7 +830,7 @@
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"ButtonTakeTheTour": "Take the tour",
- "ButtonEditOtherUserPreferences": "Edit this user's personal preferences.",
+ "ButtonEditOtherUserPreferences": "Edit this user's profile and 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",
@@ -1242,5 +1242,8 @@
"LabelAccessDay": "Day of week:",
"LabelAccessStart": "Start time:",
"LabelAccessEnd": "End time:",
- "HeaderSchedule": "Schedule"
+ "HeaderSchedule": "Schedule",
+ "OptionEveryday": "Every day",
+ "OptionWeekdays": "Weekdays",
+ "OptionWeekends": "Weekends"
}
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/sv.json b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
index 53874af25c..206a54b332 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "G\u00e5 till Media Browsers hemsida",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "G\u00e5 till Media Browsers hemsida och l\u00e4s de senaste nyheterna och utvecklarbloggen",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Visa inte den h\u00e4r anv\u00e4ndaren p\u00e5 inloggningssidorna",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Sp\u00e4rra den h\u00e4r anv\u00e4ndaren",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "Sp\u00e4rrade anv\u00e4ndare till\u00e5ts ej kontakta servern. Eventuella p\u00e5g\u00e5ende anslutningar avbryts omedelbart.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Avancerade anv\u00e4ndarinst\u00e4llningar",
+ "LabelAccessDay": "Day of week:",
"LabelName": "Namn:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Till\u00e5t denna anv\u00e4ndare att administrera servern",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Tillg\u00e5ng till funktioner",
"OptionAllowMediaPlayback": "Till\u00e5t mediauppspelning",
"OptionAllowBrowsingLiveTv": "Till\u00e5t bl\u00e4ddring i live-TV",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/tr.json b/MediaBrowser.Server.Implementations/Localization/Server/tr.json
index de67f6957e..5fa3a8b926 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/tr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/tr.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Visit the Media Browser Web Site",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "Hide this user from login screens",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "Kullan\u0131c\u0131 Devre D\u0131\u015f\u0131 B\u0131rak",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Geli\u015fmi\u015f Kontrol",
+ "LabelAccessDay": "Day of week:",
"LabelName": "\u0130sim",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Allow this user to manage the server",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Feature Access",
"OptionAllowMediaPlayback": "Allow media playback",
"OptionAllowBrowsingLiveTv": "Allow browsing of live tv",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/vi.json b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
index e55b66bedc..f8cb6828ce 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "Gh\u00e9 th\u0103m web site Media Browser",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "Visit the Media Browser Web site to catch the latest news and keep up with the developer blog.",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "\u1ea8n ng\u01b0\u1eddi d\u00f9ng n\u00e0y t\u1eeb m\u00e0n h\u00ecnh \u0111\u0103ng nh\u1eadp",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "V\u00f4 hi\u1ec7u h\u00f3a ng\u01b0\u1eddi d\u00f9ng n\u00e0y",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "If disabled the server will not allow any connections from this user. Existing connections will be abruptly terminated.",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "Advanced Control",
+ "LabelAccessDay": "Day of week:",
"LabelName": "T\u00ean:",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "Cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng n\u00e0y qu\u1ea3n l\u00fd m\u00e1y ch\u1ee7",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "Truy c\u1eadp t\u00ednh n\u0103ng",
"OptionAllowMediaPlayback": "Cho ph\u00e9p ch\u1ea1y media",
"OptionAllowBrowsingLiveTv": "Cho ph\u00e9p duy\u1ec7t ch\u01b0\u01a1ng tr\u00ecnh truy\u1ec1n h\u00ecnh tr\u1ef1c ti\u1ebfp",
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
index 57cebb71fa..d6200fc0d8 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
@@ -440,12 +440,19 @@
"VisitMediaBrowserWebsite": "\u8a2a\u554fMedia Browser\u7db2\u7ad9",
"HeaderPendingInvitations": "Pending Invitations",
"VisitMediaBrowserWebsiteLong": "\u8a2a\u554fMedia Browser\u7684\u7db2\u7ad9\uff0c\u4ee5\u7dca\u8cbc\u6700\u65b0\u7684\u6d88\u606f\u548c\u8ddf\u4e0a\u958b\u767c\u8005\u535a\u5ba2\u3002",
+ "TabParentalControl": "Parental Control",
"OptionHideUser": "\u5f9e\u767b\u9304\u9801\u9762\u96b1\u85cf\u6b64\u7528\u6236",
+ "HeaderAccessSchedule": "Access Schedule",
"OptionDisableUser": "\u7981\u7528\u6b64\u7528\u6236",
+ "HeaderAccessScheduleHelp": "Create an access schedule to limit access to certain hours.",
"OptionDisableUserHelp": "\u88ab\u7981\u7528\u7684\u7528\u6236\u5c07\u4e0d\u5141\u8a31\u9023\u63a5\u4f3a\u670d\u5668\u3002\u73fe\u6709\u7684\u9023\u63a5\u5c07\u88ab\u5373\u6642\u7d42\u6b62\u3002",
+ "ButtonAddSchedule": "Add Schedule",
"HeaderAdvancedControl": "\u9ad8\u7d1a\u63a7\u5236",
+ "LabelAccessDay": "Day of week:",
"LabelName": "\u540d\u5b57\uff1a",
+ "LabelAccessStart": "Start hour:",
"OptionAllowUserToManageServer": "\u5141\u8a31\u9019\u7528\u6236\u7ba1\u7406\u4f3a\u670d\u5668",
+ "LabelAccessEnd": "End hour:",
"HeaderFeatureAccess": "\u53ef\u4ee5\u4f7f\u7528\u7684\u529f\u80fd",
"OptionAllowMediaPlayback": "\u5141\u8a31\u5a92\u9ad4\u64ad\u653e",
"OptionAllowBrowsingLiveTv": "\u5141\u8a31\u4f7f\u7528\u96fb\u8996\u529f\u80fd",
diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
index 21467ccda9..9f77f52949 100644
--- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs
+++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs
@@ -14,6 +14,7 @@ using MediaBrowser.Controller.LiveTv;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Security;
using MediaBrowser.Controller.Session;
+using MediaBrowser.Model.Connect;
using MediaBrowser.Model.Devices;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Events;
@@ -1243,7 +1244,14 @@ namespace MediaBrowser.Server.Implementations.Session
public async Task AuthenticateNewSession(AuthenticationRequest request,
bool isLocal)
{
- var result = (isLocal && string.Equals(request.App, "Dashboard", StringComparison.OrdinalIgnoreCase)) ||
+ var user = _userManager.Users
+ .FirstOrDefault(i => string.Equals(request.Username, i.Name, StringComparison.OrdinalIgnoreCase));
+
+ var allowWithoutPassword = isLocal &&
+ string.Equals(request.App, "Dashboard", StringComparison.OrdinalIgnoreCase)
+ && !(user != null && user.ConnectLinkType.HasValue && user.ConnectLinkType.Value == UserLinkType.Guest);
+
+ var result = allowWithoutPassword ||
await _userManager.AuthenticateUser(request.Username, request.Password, request.RemoteEndPoint).ConfigureAwait(false);
if (!result)
@@ -1253,9 +1261,6 @@ namespace MediaBrowser.Server.Implementations.Session
throw new AuthenticationException("Invalid user or password entered.");
}
- var user = _userManager.Users
- .First(i => string.Equals(request.Username, i.Name, StringComparison.OrdinalIgnoreCase));
-
var token = await GetAuthorizationToken(user.Id.ToString("N"), request.DeviceId, request.App, request.DeviceName).ConfigureAwait(false);
EventHelper.FireEventIfNotNull(AuthenticationSucceeded, this, new GenericEventArgs(request), _logger);
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 69bf1a0f38..1b8e21e201 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -483,13 +483,21 @@ namespace MediaBrowser.WebDashboard.Api
var builder = new StringBuilder();
- using (var fs = _fileSystem.GetFileStream(GetDashboardResourcePath("thirdparty/mediabrowser.apiclient.js"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true))
+ foreach (var file in new[]
{
- using (var streamReader = new StreamReader(fs))
+ "thirdparty/apiclient/sha1.js",
+ "thirdparty/apiclient/mediabrowser.apiclient.js",
+ "thirdparty/apiclient/connectionmanager.js"
+ })
+ {
+ using (var fs = _fileSystem.GetFileStream(GetDashboardResourcePath(file), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true))
{
- var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
- builder.Append(text);
- builder.Append(Environment.NewLine);
+ using (var streamReader = new StreamReader(fs))
+ {
+ var text = await streamReader.ReadToEndAsync().ConfigureAwait(false);
+ builder.Append(text);
+ builder.Append(Environment.NewLine);
+ }
}
}
@@ -668,7 +676,7 @@ namespace MediaBrowser.WebDashboard.Api
"tvupcoming.js",
"useredit.js",
"userpassword.js",
- "userimagepage.js",
+ "myprofile.js",
"userprofilespage.js",
"userparentalcontrol.js",
"userlibraryaccess.js",
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index 5eb8a200e5..3f9ef8db7d 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -85,7 +85,7 @@
-
+
PreserveNewest
@@ -898,6 +898,12 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
PreserveNewest
@@ -1896,7 +1902,7 @@
-
+
PreserveNewest
@@ -1952,7 +1958,7 @@
PreserveNewest
-
+
PreserveNewest
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index a776cd0599..7591687ed3 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Common.Internal
- 3.0.486
+ 3.0.487
MediaBrowser.Common.Internal
Luke
ebr,Luke,scottisafool
@@ -12,7 +12,7 @@
Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.
Copyright © Media Browser 2013
-
+
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index faeb5b0cf1..c130fa9936 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Common
- 3.0.486
+ 3.0.487
MediaBrowser.Common
Media Browser Team
ebr,Luke,scottisafool
diff --git a/Nuget/MediaBrowser.Model.Signed.nuspec b/Nuget/MediaBrowser.Model.Signed.nuspec
index b73d4a80f7..9e4971e1f7 100644
--- a/Nuget/MediaBrowser.Model.Signed.nuspec
+++ b/Nuget/MediaBrowser.Model.Signed.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Model.Signed
- 3.0.486
+ 3.0.487
MediaBrowser.Model - Signed Edition
Media Browser Team
ebr,Luke,scottisafool
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index fa1a9aa62e..d9cbadb18a 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
MediaBrowser.Server.Core
- 3.0.486
+ 3.0.487
Media Browser.Server.Core
Media Browser Team
ebr,Luke,scottisafool
@@ -12,7 +12,7 @@
Contains core components required to build plugins for Media Browser Server.
Copyright © Media Browser 2013
-
+