Luke Pulverenti пре 10 година
родитељ
комит
1b06e05cf6
81 измењених фајлова са 694 додато и 263 уклоњено
  1. 1 1
      MediaBrowser.Api/ApiEntryPoint.cs
  2. 1 1
      MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs
  3. 9 11
      MediaBrowser.Common.Implementations/BaseApplicationHost.cs
  4. 4 4
      MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
  5. 5 1
      MediaBrowser.Model/ApiClient/ServerCredentials.cs
  6. 4 2
      MediaBrowser.Model/ApiClient/ServerInfo.cs
  7. 3 3
      MediaBrowser.Server.Implementations/Library/LibraryManager.cs
  8. 2 2
      MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs
  9. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
  10. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
  11. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
  12. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
  13. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
  14. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
  15. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
  16. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
  17. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
  18. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
  19. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/fi.json
  20. 10 3
      MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
  21. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
  22. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json
  23. 15 8
      MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
  24. 11 4
      MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
  25. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
  26. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
  27. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
  28. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
  29. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
  30. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
  31. 9 2
      MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
  32. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
  33. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
  34. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
  35. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/zh_CN.json
  36. 8 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
  37. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/ar.json
  38. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/ca.json
  39. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/cs.json
  40. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/da.json
  41. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/de.json
  42. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/el.json
  43. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
  44. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/en_US.json
  45. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/es.json
  46. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
  47. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/fi.json
  48. 18 9
      MediaBrowser.Server.Implementations/Localization/Server/fr.json
  49. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/he.json
  50. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/hr.json
  51. 39 30
      MediaBrowser.Server.Implementations/Localization/Server/it.json
  52. 12 3
      MediaBrowser.Server.Implementations/Localization/Server/kk.json
  53. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/ko.json
  54. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/ms.json
  55. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/nb.json
  56. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/nl.json
  57. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/pl.json
  58. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
  59. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
  60. 23 14
      MediaBrowser.Server.Implementations/Localization/Server/ru.json
  61. 1 0
      MediaBrowser.Server.Implementations/Localization/Server/server.json
  62. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/sv.json
  63. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/tr.json
  64. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/vi.json
  65. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/zh_CN.json
  66. 10 1
      MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
  67. 0 3
      MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj
  68. 2 2
      MediaBrowser.Server.Mono/Native/NativeApp.cs
  69. 2 2
      MediaBrowser.Server.Mono/Networking/NetworkManager.cs
  70. 7 60
      MediaBrowser.Server.Mono/Program.cs
  71. 0 2
      MediaBrowser.Server.Mono/mediabrowser.sh
  72. 14 0
      MediaBrowser.Server.Startup.Common/ApplicationHost.cs
  73. 2 1
      MediaBrowser.Server.Startup.Common/INativeApp.cs
  74. 2 1
      MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj
  75. 32 0
      MediaBrowser.Server.Startup.Common/Migrations/DeprecatePlugins.cs
  76. 14 35
      MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj
  77. 4 4
      MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
  78. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  79. 1 1
      Nuget/MediaBrowser.Common.nuspec
  80. 1 1
      Nuget/MediaBrowser.Model.Signed.nuspec
  81. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 1 - 1
MediaBrowser.Api/ApiEntryPoint.cs

@@ -273,7 +273,7 @@ namespace MediaBrowser.Api
             {
             {
                 if (job.Type == TranscodingJobType.Progressive)
                 if (job.Type == TranscodingJobType.Progressive)
                 {
                 {
-                    const int timerDuration = 1000;
+                    const int timerDuration = 1500;
 
 
                     if (job.KillTimer == null)
                     if (job.KillTimer == null)
                     {
                     {

+ 1 - 1
MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs

@@ -130,7 +130,7 @@ namespace MediaBrowser.Api.Playback.Progressive
 
 
         private void CopyToInternal(Stream source, Stream destination, int bufferSize)
         private void CopyToInternal(Stream source, Stream destination, int bufferSize)
         {
         {
-            byte[] array = new byte[bufferSize];
+            var array = new byte[bufferSize];
             int count;
             int count;
             while ((count = source.Read(array, 0, array.Length)) != 0)
             while ((count = source.Read(array, 0, array.Length)) != 0)
             {
             {

+ 9 - 11
MediaBrowser.Common.Implementations/BaseApplicationHost.cs

@@ -266,7 +266,7 @@ namespace MediaBrowser.Common.Implementations
 
 
             if (!isFirstLoad)
             if (!isFirstLoad)
             {
             {
-                LogEnvironmentInfo(Logger, ApplicationPaths);
+                LogEnvironmentInfo(Logger, ApplicationPaths, false);
             }
             }
 
 
             // Put the app config in the log for troubleshooting purposes
             // Put the app config in the log for troubleshooting purposes
@@ -285,8 +285,13 @@ namespace MediaBrowser.Common.Implementations
             }
             }
         }
         }
 
 
-        public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths)
+        public static void LogEnvironmentInfo(ILogger logger, IApplicationPaths appPaths, bool isStartup)
         {
         {
+            if (isStartup)
+            {
+                logger.Info("Media Browser Server started");
+            }
+
             logger.Info("Command line: {0}", string.Join(" ", Environment.GetCommandLineArgs()));
             logger.Info("Command line: {0}", string.Join(" ", Environment.GetCommandLineArgs()));
 
 
             logger.Info("Server: {0}", Environment.MachineName);
             logger.Info("Server: {0}", Environment.MachineName);
@@ -692,18 +697,11 @@ namespace MediaBrowser.Common.Implementations
             return parts;
             return parts;
         }
         }
 
 
-        private Version _version;
         /// <summary>
         /// <summary>
-        /// Gets the current application version
+        /// Gets the application version.
         /// </summary>
         /// </summary>
         /// <value>The application version.</value>
         /// <value>The application version.</value>
-        public Version ApplicationVersion
-        {
-            get
-            {
-                return _version ?? (_version = GetType().Assembly.GetName().Version);
-            }
-        }
+        public abstract Version ApplicationVersion { get; }
 
 
         /// <summary>
         /// <summary>
         /// Handles the ConfigurationUpdated event of the ConfigurationManager control.
         /// Handles the ConfigurationUpdated event of the ConfigurationManager control.

+ 4 - 4
MediaBrowser.Controller/Providers/BaseItemXmlParser.cs

@@ -827,19 +827,19 @@ namespace MediaBrowser.Controller.Providers
                         {
                         {
                             var val = reader.ReadElementContentAsString();
                             var val = reader.ReadElementContentAsString();
 
 
-                            if (string.Equals("HSBS", val, StringComparison.CurrentCulture))
+                            if (string.Equals("HSBS", val, StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 video.Video3DFormat = Video3DFormat.HalfSideBySide;
                                 video.Video3DFormat = Video3DFormat.HalfSideBySide;
                             }
                             }
-                            else if (string.Equals("HTAB", val, StringComparison.CurrentCulture))
+                            else if (string.Equals("HTAB", val, StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 video.Video3DFormat = Video3DFormat.HalfTopAndBottom;
                                 video.Video3DFormat = Video3DFormat.HalfTopAndBottom;
                             }
                             }
-                            else if (string.Equals("FTAB", val, StringComparison.CurrentCulture))
+                            else if (string.Equals("FTAB", val, StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 video.Video3DFormat = Video3DFormat.FullTopAndBottom;
                                 video.Video3DFormat = Video3DFormat.FullTopAndBottom;
                             }
                             }
-                            else if (string.Equals("FSBS", val, StringComparison.CurrentCulture))
+                            else if (string.Equals("FSBS", val, StringComparison.OrdinalIgnoreCase))
                             {
                             {
                                 video.Video3DFormat = Video3DFormat.FullSideBySide;
                                 video.Video3DFormat = Video3DFormat.FullSideBySide;
                             }
                             }

+ 5 - 1
MediaBrowser.Model/ApiClient/ServerCredentials.cs

@@ -50,7 +50,7 @@ namespace MediaBrowser.Model.ApiClient
                 {
                 {
                     existing.RemoteAddress = server.RemoteAddress;
                     existing.RemoteAddress = server.RemoteAddress;
                 }
                 }
-                if (!string.IsNullOrEmpty(server.LocalAddress))
+                if (!existing.IsLocalAddressFixed && !string.IsNullOrEmpty(server.LocalAddress))
                 {
                 {
                     existing.LocalAddress = server.LocalAddress;
                     existing.LocalAddress = server.LocalAddress;
                 }
                 }
@@ -62,6 +62,10 @@ namespace MediaBrowser.Model.ApiClient
                 {
                 {
                     existing.WakeOnLanInfos = server.WakeOnLanInfos.ToList();
                     existing.WakeOnLanInfos = server.WakeOnLanInfos.ToList();
                 }
                 }
+                if (server.IsLocalAddressFixed)
+                {
+                    existing.IsLocalAddressFixed = true;
+                }
             }
             }
             else
             else
             {
             {

+ 4 - 2
MediaBrowser.Model/ApiClient/ServerInfo.cs

@@ -18,6 +18,8 @@ namespace MediaBrowser.Model.ApiClient
         public String ExchangeToken { get; set; }
         public String ExchangeToken { get; set; }
         public UserLinkType? UserLinkType { get; set; }
         public UserLinkType? UserLinkType { get; set; }
 
 
+        public bool IsLocalAddressFixed { get; set; }
+
         public ServerInfo()
         public ServerInfo()
         {
         {
             WakeOnLanInfos = new List<WakeOnLanInfo>();
             WakeOnLanInfos = new List<WakeOnLanInfo>();
@@ -28,10 +30,11 @@ namespace MediaBrowser.Model.ApiClient
             Name = systemInfo.ServerName;
             Name = systemInfo.ServerName;
             Id = systemInfo.Id;
             Id = systemInfo.Id;
 
 
-            if (!string.IsNullOrEmpty(systemInfo.LocalAddress))
+            if (!IsLocalAddressFixed && !string.IsNullOrEmpty(systemInfo.LocalAddress))
             {
             {
                 LocalAddress = systemInfo.LocalAddress;
                 LocalAddress = systemInfo.LocalAddress;
             }
             }
+
             if (!string.IsNullOrEmpty(systemInfo.WanAddress))
             if (!string.IsNullOrEmpty(systemInfo.WanAddress))
             {
             {
                 RemoteAddress = systemInfo.WanAddress;
                 RemoteAddress = systemInfo.WanAddress;
@@ -52,6 +55,5 @@ namespace MediaBrowser.Model.ApiClient
                 }
                 }
             }
             }
         }
         }
-
     }
     }
 }
 }

+ 3 - 3
MediaBrowser.Server.Implementations/Library/LibraryManager.cs

@@ -268,7 +268,7 @@ namespace MediaBrowser.Server.Implementations.Library
         {
         {
             var config = ConfigurationManager.Configuration;
             var config = ConfigurationManager.Configuration;
 
 
-            var ibnPathChanged = !string.Equals(_itemsByNamePath, ConfigurationManager.ApplicationPaths.ItemsByNamePath, StringComparison.CurrentCulture);
+            var ibnPathChanged = !string.Equals(_itemsByNamePath, ConfigurationManager.ApplicationPaths.ItemsByNamePath, StringComparison.Ordinal);
 
 
             if (ibnPathChanged)
             if (ibnPathChanged)
             {
             {
@@ -276,7 +276,7 @@ namespace MediaBrowser.Server.Implementations.Library
             }
             }
 
 
             var newSeasonZeroName = ConfigurationManager.Configuration.SeasonZeroDisplayName;
             var newSeasonZeroName = ConfigurationManager.Configuration.SeasonZeroDisplayName;
-            var seasonZeroNameChanged = !string.Equals(_seasonZeroDisplayName, newSeasonZeroName, StringComparison.CurrentCulture);
+            var seasonZeroNameChanged = !string.Equals(_seasonZeroDisplayName, newSeasonZeroName, StringComparison.Ordinal);
             var wizardChanged = config.IsStartupWizardCompleted != _wizardCompleted;
             var wizardChanged = config.IsStartupWizardCompleted != _wizardCompleted;
 
 
             RecordConfigurationValues(config);
             RecordConfigurationValues(config);
@@ -331,7 +331,7 @@ namespace MediaBrowser.Server.Implementations.Library
         {
         {
             var seasons = RootFolder.RecursiveChildren
             var seasons = RootFolder.RecursiveChildren
                 .OfType<Season>()
                 .OfType<Season>()
-                .Where(i => i.IndexNumber.HasValue && i.IndexNumber.Value == 0 && !string.Equals(i.Name, newName, StringComparison.CurrentCulture))
+                .Where(i => i.IndexNumber.HasValue && i.IndexNumber.Value == 0 && !string.Equals(i.Name, newName, StringComparison.Ordinal))
                 .ToList();
                 .ToList();
 
 
             foreach (var season in seasons)
             foreach (var season in seasons)

+ 2 - 2
MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs

@@ -1366,14 +1366,14 @@ namespace MediaBrowser.Server.Implementations.LiveTv
         {
         {
             var results = await GetTimers(new TimerQuery(), cancellationToken).ConfigureAwait(false);
             var results = await GetTimers(new TimerQuery(), cancellationToken).ConfigureAwait(false);
 
 
-            return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.CurrentCulture));
+            return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase));
         }
         }
 
 
         public async Task<SeriesTimerInfoDto> GetSeriesTimer(string id, CancellationToken cancellationToken)
         public async Task<SeriesTimerInfoDto> GetSeriesTimer(string id, CancellationToken cancellationToken)
         {
         {
             var results = await GetSeriesTimers(new SeriesTimerQuery(), cancellationToken).ConfigureAwait(false);
             var results = await GetSeriesTimers(new SeriesTimerQuery(), cancellationToken).ConfigureAwait(false);
 
 
-            return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.CurrentCulture));
+            return results.Items.FirstOrDefault(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase));
         }
         }
 
 
         public async Task<QueryResult<SeriesTimerInfoDto>> GetSeriesTimers(SeriesTimerQuery query, CancellationToken cancellationToken)
         public async Task<QueryResult<SeriesTimerInfoDto>> GetSeriesTimers(SeriesTimerQuery query, CancellationToken cancellationToken)

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/da.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/de.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Der Zugriff ist derzeit eingeschr\u00e4nkt. Bitte versuche es sp\u00e4ter erneut.",
     "MessageLoggedOutParentalControl": "Der Zugriff ist derzeit eingeschr\u00e4nkt. Bitte versuche es sp\u00e4ter erneut.",
     "DefaultErrorMessage": "Es gab einen Fehler beim verarbeiten der Anfrage. Bitte versuche es sp\u00e4ter erneut.",
     "DefaultErrorMessage": "Es gab einen Fehler beim verarbeiten der Anfrage. Bitte versuche es sp\u00e4ter erneut.",
     "ButtonAccept": "Akzeptieren",
     "ButtonAccept": "Akzeptieren",
-    "ButtonReject": "Ablehnen"
+    "ButtonReject": "Ablehnen",
+    "HeaderForgotPassword": "Passwort vergessen",
+    "MessageContactAdminToResetPassword": "Bitte kontaktiere deinen Systemadministrator, um dein Passwort zur\u00fccksetzen zu lassen.",
+    "MessageForgotPasswordInNetworkRequired": "Bitte versuche es erneut innerhalb deines Heimnetzwerks, um die Passwort Zur\u00fccksetzung zu starten.",
+    "MessageForgotPasswordFileCreated": "Die folgende Datei wurde auf deinem Server erstellt und enth\u00e4lt eine Anleitung, wie fortgefahren werden muss:",
+    "MessageForgotPasswordFileExpiration": "Der Zur\u00fccksetzungs-PIN wird am {0} auslaufen.",
+    "MessageInvalidForgotPasswordPin": "Ein ung\u00fcltiger oder abgelaufener PIN wurde eingegeben. Bitte versuche es noch einmal.",
+    "MessagePasswordResetForUsers": "Passw\u00f6rter wurden f\u00fcr die folgenden Benutzer zur\u00fcckgesetzt:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/el.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/es.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "El acceso se encuentra restringido en este momento. Por favor int\u00e9ntelo de nuevo mas tarde.",
     "MessageLoggedOutParentalControl": "El acceso se encuentra restringido en este momento. Por favor int\u00e9ntelo de nuevo mas tarde.",
     "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor int\u00e9ntelo de nuevo mas tarde.",
     "DefaultErrorMessage": "Ha ocurrido un error al procesar la solicitud. Por favor int\u00e9ntelo de nuevo mas tarde.",
     "ButtonAccept": "Aceptar",
     "ButtonAccept": "Aceptar",
-    "ButtonReject": "Rechazar"
+    "ButtonReject": "Rechazar",
+    "HeaderForgotPassword": "Contrase\u00f1a Olvidada",
+    "MessageContactAdminToResetPassword": "Por favor contacte a su administrador para restablecer su contrase\u00f1a.",
+    "MessageForgotPasswordInNetworkRequired": "Por favor intente de nuevo dentro de su red de hogar para iniciar el proceso de restablecimiento de contrase\u00f1a.",
+    "MessageForgotPasswordFileCreated": "El siguiente archivo fue creado en tu servidor y contiene instrucciones de como proceder.",
+    "MessageForgotPasswordFileExpiration": "El pin de restablecimiento expirara en {0}.",
+    "MessageInvalidForgotPasswordPin": "Se introdujo un pin expirado o invalido. Por favor intente de nuevo.",
+    "MessagePasswordResetForUsers": "Las contrase\u00f1as se han restablecido para los siguientes usuarios:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/fi.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 10 - 3
MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json

@@ -614,7 +614,14 @@
     "ButtonSelectServer": "S\u00e9lectionner le serveur",
     "ButtonSelectServer": "S\u00e9lectionner le serveur",
     "MessagePluginConfigurationRequiresLocalAccess": "Pour configurer ce plugin, S.v.p. connecter vous \u00e0 votre serveur local directement.",
     "MessagePluginConfigurationRequiresLocalAccess": "Pour configurer ce plugin, S.v.p. connecter vous \u00e0 votre serveur local directement.",
     "MessageLoggedOutParentalControl": "L'acc\u00e8s est actuellement limit\u00e9. S.v.p. r\u00e9essayez plus tard",
     "MessageLoggedOutParentalControl": "L'acc\u00e8s est actuellement limit\u00e9. S.v.p. r\u00e9essayez plus tard",
-    "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
-    "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "DefaultErrorMessage": "Il y a eu une erreur lors de l'ex\u00e9cution de la requ\u00eate. S.v.p. r\u00e9essayez plus tard.",
+    "ButtonAccept": "Accepter",
+    "ButtonReject": "Rejeter",
+    "HeaderForgotPassword": "Mot de passe oubli\u00e9",
+    "MessageContactAdminToResetPassword": "S.v.p. contactez votre administrateur de syst\u00e8me pour r\u00e9initialiser votre mot de passe.",
+    "MessageForgotPasswordInNetworkRequired": "S.v.p. r\u00e9essayez encore \u00e0 partir de votre r\u00e9seau local pour d\u00e9marrer la proc\u00e9dure de r\u00e9initialisation du mot de passe.",
+    "MessageForgotPasswordFileCreated": "Le fichier suivant a \u00e9t\u00e9 cr\u00e9e sur votre serveur et contient les instructions sur comment proc\u00e9der.",
+    "MessageForgotPasswordFileExpiration": "Le NIP de r\u00e9initialisation va expir\u00e9 dans {0}.",
+    "MessageInvalidForgotPasswordPin": "Un NIP invalide ou expir\u00e9 a \u00e9t\u00e9 entr\u00e9. S.v.p. r\u00e9essayez encore.",
+    "MessagePasswordResetForUsers": "Les mot de passes ont \u00e9t\u00e9 r\u00e9initialis\u00e9s pour les utilisateurs suivants:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/he.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/hr.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 15 - 8
MediaBrowser.Server.Implementations/Localization/JavaScript/it.json

@@ -607,14 +607,21 @@
     "ButtonLibraryAccess": "Accesso biblioteca",
     "ButtonLibraryAccess": "Accesso biblioteca",
     "ButtonParentalControl": "Controllo parentale",
     "ButtonParentalControl": "Controllo parentale",
     "HeaderInvitationSent": "Invito inviato",
     "HeaderInvitationSent": "Invito inviato",
-    "MessageInvitationSentToUser": "An email has been sent to {0}, inviting them to accept your sharing invitation.",
-    "MessageInvitationSentToNewUser": "An email has been sent to {0} inviting them to sign up with Media Browser.",
+    "MessageInvitationSentToUser": "Una e-mail \u00e8 stata inviata a {0}, invitandoli ad accettare l'invito di condivisione.",
+    "MessageInvitationSentToNewUser": "Una e-mail \u00e8 stata inviata a {0} invitandoli a firmare con Media Browser.",
     "HeaderConnectionFailure": "Errore di connessione",
     "HeaderConnectionFailure": "Errore di connessione",
-    "MessageUnableToConnectToServer": "We're unable to connect to the selected right now. Please try again later.",
+    "MessageUnableToConnectToServer": "Non siamo in grado di connettersi al selezionata in questo momento. Si prega di riprovare pi\u00f9 tardi.",
     "ButtonSelectServer": "Selezionare il server",
     "ButtonSelectServer": "Selezionare il server",
-    "MessagePluginConfigurationRequiresLocalAccess": "To configure this plugin please sign in to your local server directly.",
-    "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
-    "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
-    "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "MessagePluginConfigurationRequiresLocalAccess": "Per configurare questo plugin si prega di accedere al proprio server locale direttamente.",
+    "MessageLoggedOutParentalControl": "L'accesso \u00e8 attualmente limitato. Si prega di riprovare pi\u00f9 tardi.",
+    "DefaultErrorMessage": "Si \u00e8 verificato un errore durante l'elaborazione della richiesta. Si prega di riprovare pi\u00f9 tardi.",
+    "ButtonAccept": "Accetta",
+    "ButtonReject": "Rifiuta",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 11 - 4
MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json

@@ -437,13 +437,13 @@
     "MessageAlreadyInstalled": "\u041e\u0441\u044b \u043d\u04b1\u0441\u049b\u0430 \u0431\u04b1\u0440\u044b\u043d\u043d\u0430\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d.",
     "MessageAlreadyInstalled": "\u041e\u0441\u044b \u043d\u04b1\u0441\u049b\u0430 \u0431\u04b1\u0440\u044b\u043d\u043d\u0430\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d.",
     "ValueReviewCount": "{0} \u043f\u0456\u043a\u0456\u0440",
     "ValueReviewCount": "{0} \u043f\u0456\u043a\u0456\u0440",
     "MessageYouHaveVersionInstalled": "\u049a\u0430\u0437\u0456\u0440 {0} \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d",
     "MessageYouHaveVersionInstalled": "\u049a\u0430\u0437\u0456\u0440 {0} \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d",
-    "MessageTrialExpired": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0430\u043d\u044b\u0441\u0442\u044b\u0440\u0443 \u043a\u0435\u0437\u0435\u04a3\u0456\u043d\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 \u04e9\u0442\u0442\u0456",
-    "MessageTrialWillExpireIn": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0430\u043d\u044b\u0441\u0442\u044b\u0440\u0443 \u043a\u0435\u0437\u0435\u04a3\u0456\u043d\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 {0} \u043a\u04af\u043d\u0434\u0435 \u04e9\u0442\u0435\u0434\u0456",
+    "MessageTrialExpired": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0430\u043d\u044b\u0441\u0442\u044b\u0440\u0443 \u043a\u0435\u0437\u0435\u04a3\u0456\u043d\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 \u0431\u0456\u0442\u0442\u0456",
+    "MessageTrialWillExpireIn": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0430\u043d\u044b\u0441\u0442\u044b\u0440\u0443 \u043a\u0435\u0437\u0435\u04a3\u0456\u043d\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 {0} \u043a\u04af\u043d\u0434\u0435 \u0431\u0456\u0442\u0435\u0434\u0456",
     "MessageInstallPluginFromApp": "\u0411\u04b1\u043b \u043f\u043b\u0430\u0433\u0438\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0493\u0430 \u043c\u0430\u049b\u0441\u0430\u0442\u0442\u0430\u043b\u0493\u0430\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430 \u0431\u0430\u0440 \u0431\u043e\u043b\u0493\u0430\u043d\u0434\u0430 \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0443\u044b \u0442\u0438\u0456\u0441\u0442\u0456.",
     "MessageInstallPluginFromApp": "\u0411\u04b1\u043b \u043f\u043b\u0430\u0433\u0438\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0493\u0430 \u043c\u0430\u049b\u0441\u0430\u0442\u0442\u0430\u043b\u0493\u0430\u043d \u049b\u043e\u043b\u0434\u0430\u043d\u0431\u0430 \u0431\u0430\u0440 \u0431\u043e\u043b\u0493\u0430\u043d\u0434\u0430 \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0443\u044b \u0442\u0438\u0456\u0441\u0442\u0456.",
     "ValuePriceUSD": "\u0411\u0430\u0493\u0430\u0441\u044b: {0} USD",
     "ValuePriceUSD": "\u0411\u0430\u0493\u0430\u0441\u044b: {0} USD",
     "MessageFeatureIncludedWithSupporter": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0435\u043d\u0441\u0456\u0437, \u0436\u04d9\u043d\u0435 \u043e\u043d\u044b \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0434\u044b \u0436\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0430 \u0430\u043b\u0430\u0441\u044b\u0437.",
     "MessageFeatureIncludedWithSupporter": "\u041e\u0441\u044b \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u04af\u0448\u0456\u043d \u0442\u0456\u0440\u043a\u0435\u043b\u0433\u0435\u043d\u0441\u0456\u0437, \u0436\u04d9\u043d\u0435 \u043e\u043d\u044b \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0434\u044b \u0436\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0430 \u0430\u043b\u0430\u0441\u044b\u0437.",
     "MessageChangeRecurringPlanConfirm": "\u041e\u0441\u044b \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043d\u044b \u0430\u044f\u049b\u0442\u0430\u0493\u0430\u043d\u043d\u0430\u043d \u043a\u0435\u0439\u0456\u043d PayPal \u0435\u0441\u0435\u043f \u0448\u043e\u0442\u044b\u04a3\u044b\u0437 \u0430\u0440\u049b\u044b\u043b\u044b \u0430\u043b\u0434\u044b\u04a3\u0493\u044b \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043c\u0430 \u049b\u0430\u0439\u044b\u0440\u043c\u0430\u043b\u0434\u044b\u049b\u0442\u044b \u0431\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443\u044b\u04a3\u044b\u0437 \u049b\u0430\u0436\u0435\u0442. Media Browser \u0436\u043e\u0431\u0430\u0441\u044b\u043d \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u04a3\u044b\u0437\u0493\u0430 \u0430\u043b\u0493\u044b\u0441 \u0430\u0439\u0442\u0430\u043c\u044b\u0437!",
     "MessageChangeRecurringPlanConfirm": "\u041e\u0441\u044b \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043d\u044b \u0430\u044f\u049b\u0442\u0430\u0493\u0430\u043d\u043d\u0430\u043d \u043a\u0435\u0439\u0456\u043d PayPal \u0435\u0441\u0435\u043f \u0448\u043e\u0442\u044b\u04a3\u044b\u0437 \u0430\u0440\u049b\u044b\u043b\u044b \u0430\u043b\u0434\u044b\u04a3\u0493\u044b \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043c\u0430 \u049b\u0430\u0439\u044b\u0440\u043c\u0430\u043b\u0434\u044b\u049b\u0442\u044b \u0431\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443\u044b\u04a3\u044b\u0437 \u049b\u0430\u0436\u0435\u0442. Media Browser \u0436\u043e\u0431\u0430\u0441\u044b\u043d \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u04a3\u044b\u0437\u0493\u0430 \u0430\u043b\u0493\u044b\u0441 \u0430\u0439\u0442\u0430\u043c\u044b\u0437!",
-    "MessageSupporterMembershipExpiredOn": "\u049a\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u04a3\u0456\u0437\u0434\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 {0} \u0431\u0456\u0442\u0435\u0434\u0456.",
+    "MessageSupporterMembershipExpiredOn": "\u049a\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u04a3\u0456\u0437\u0434\u0456\u04a3 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 {0} \u0431\u0456\u0442\u0442\u0456.",
     "MessageYouHaveALifetimeMembership": "\u0492\u04b1\u043c\u044b\u0440\u043b\u044b\u049b \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u043d\u0435 \u0442\u0438\u0435\u0441\u043b\u0456\u0441\u0456\u0437. \u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043d\u04b1\u0441\u049b\u0430\u043b\u0430\u0440\u0434\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0431\u0456\u0440 \u0436\u043e\u043b\u0493\u044b \u043d\u0435\u043c\u0435\u0441\u0435 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043c\u0430 \u043d\u0435\u0433\u0456\u0437\u0456\u043d\u0434\u0435 \u049b\u043e\u0441\u044b\u043c\u0448\u0430 \u049b\u0430\u0439\u044b\u0440\u043c\u0430\u043b\u0434\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u049b\u0430\u043c\u0442\u0430\u043c\u0430\u0441\u044b\u0437 \u0435\u0442\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u04a3\u0456\u0437 \u0431\u0430\u0440. Media Browser \u0436\u043e\u0431\u0430\u0441\u044b\u043d \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u04a3\u044b\u0437\u0493\u0430 \u0430\u043b\u0493\u044b\u0441 \u0430\u0439\u0442\u0430\u043c\u044b\u0437!",
     "MessageYouHaveALifetimeMembership": "\u0492\u04b1\u043c\u044b\u0440\u043b\u044b\u049b \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u043d\u0435 \u0442\u0438\u0435\u0441\u043b\u0456\u0441\u0456\u0437. \u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043d\u04b1\u0441\u049b\u0430\u043b\u0430\u0440\u0434\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0431\u0456\u0440 \u0436\u043e\u043b\u0493\u044b \u043d\u0435\u043c\u0435\u0441\u0435 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u043c\u0430 \u043d\u0435\u0433\u0456\u0437\u0456\u043d\u0434\u0435 \u049b\u043e\u0441\u044b\u043c\u0448\u0430 \u049b\u0430\u0439\u044b\u0440\u043c\u0430\u043b\u0434\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u049b\u0430\u043c\u0442\u0430\u043c\u0430\u0441\u044b\u0437 \u0435\u0442\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u04a3\u0456\u0437 \u0431\u0430\u0440. Media Browser \u0436\u043e\u0431\u0430\u0441\u044b\u043d \u049b\u043e\u043b\u0434\u0430\u0443\u044b\u04a3\u044b\u0437\u0493\u0430 \u0430\u043b\u0493\u044b\u0441 \u0430\u0439\u0442\u0430\u043c\u044b\u0437!",
     "MessageYouHaveAnActiveRecurringMembership": "\u0411\u0435\u043b\u0441\u0435\u043d\u0434\u0456 {0} \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u043d\u0435 \u0442\u0438\u0435\u0441\u043b\u0456\u0441\u0456\u0437. \u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043d\u04b1\u0441\u049b\u0430\u043b\u0430\u0440\u0434\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0436\u043e\u0441\u043f\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u044b \u043a\u04e9\u0442\u0435\u0440\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u04a3\u0456\u0437 \u0431\u0430\u0440",
     "MessageYouHaveAnActiveRecurringMembership": "\u0411\u0435\u043b\u0441\u0435\u043d\u0434\u0456 {0} \u043c\u04af\u0448\u0435\u043b\u0456\u0433\u0456\u043d\u0435 \u0442\u0438\u0435\u0441\u043b\u0456\u0441\u0456\u0437. \u0422\u04e9\u043c\u0435\u043d\u0434\u0435\u0433\u0456 \u043d\u04b1\u0441\u049b\u0430\u043b\u0430\u0440\u0434\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043f \u0436\u043e\u0441\u043f\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u044b \u043a\u04e9\u0442\u0435\u0440\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u04a3\u0456\u0437 \u0431\u0430\u0440",
     "ButtonDelete": "\u0416\u043e\u044e",
     "ButtonDelete": "\u0416\u043e\u044e",
@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "\u0410\u0493\u044b\u043c\u0434\u0430 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u0448\u0435\u043a\u0442\u0435\u043b\u0433\u0435\u043d. \u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u043a\u0435\u0439\u0456\u043d \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
     "MessageLoggedOutParentalControl": "\u0410\u0493\u044b\u043c\u0434\u0430 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443 \u0448\u0435\u043a\u0442\u0435\u043b\u0433\u0435\u043d. \u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u043a\u0435\u0439\u0456\u043d \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
     "DefaultErrorMessage": "\u0421\u0430\u0443\u0430\u043b\u0434\u044b \u04e9\u04a3\u0434\u0435\u0442\u0443 \u043a\u0435\u0437\u0456\u043d\u0434\u0435 \u049b\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u043a\u0435\u0439\u0456\u043d \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
     "DefaultErrorMessage": "\u0421\u0430\u0443\u0430\u043b\u0434\u044b \u04e9\u04a3\u0434\u0435\u0442\u0443 \u043a\u0435\u0437\u0456\u043d\u0434\u0435 \u049b\u0430\u0442\u0435 \u043e\u0440\u044b\u043d \u0430\u043b\u0434\u044b. \u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u043a\u0435\u0439\u0456\u043d \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
     "ButtonAccept": "\u049a\u0430\u0431\u044b\u043b\u0434\u0430\u0443",
     "ButtonAccept": "\u049a\u0430\u0431\u044b\u043b\u0434\u0430\u0443",
-    "ButtonReject": "\u049a\u0430\u0431\u044b\u043b\u0434\u0430\u043c\u0430\u0443"
+    "ButtonReject": "\u049a\u0430\u0431\u044b\u043b\u0434\u0430\u043c\u0430\u0443",
+    "HeaderForgotPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u04b1\u043c\u044b\u0442\u044b\u04a3\u044b\u0437 \u0431\u0430?",
+    "MessageContactAdminToResetPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0456\u04a3\u0456\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u0436\u04af\u0439\u0435\u043b\u0456\u043a \u04d9\u043a\u0456\u043c\u0448\u0456\u04a3\u0456\u0437\u0433\u0435 \u0431\u0430\u0439\u043b\u0430\u043d\u044b\u0441\u044b\u04a3\u044b\u0437.",
+    "MessageForgotPasswordInNetworkRequired": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443 \u04af\u0434\u0435\u0440\u0456\u0441\u0456 \u04af\u0448\u0456\u043d \u04d9\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u04af\u0439\u043b\u0456\u043a \u0436\u0435\u043b\u0456\u04a3\u0456\u0437\u0434\u0456\u04a3 \u0456\u0448\u0456\u043d\u0434\u0435 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
+    "MessageForgotPasswordFileCreated": "\u041a\u0435\u043b\u0435\u0441\u0456 \u0444\u0430\u0439\u043b \u0441\u0435\u0440\u0432\u0435\u0440\u0456\u04a3\u0456\u0437\u0434\u0435 \u0436\u0430\u0441\u0430\u043b\u0434\u044b \u0436\u04d9\u043d\u0435 \u049b\u0430\u043b\u0430\u0439 \u0436\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443 \u0442\u0443\u0440\u0430\u043b\u044b \u043d\u04b1\u0441\u049b\u0430\u0443\u043b\u0430\u0440 \u0456\u0448\u0456\u043d\u0434\u0435 \u0431\u0430\u0440:",
+    "MessageForgotPasswordFileExpiration": "PIN \u044b\u0441\u044b\u0440\u0443\u044b {0} \u0431\u0456\u0442\u0435\u0434\u0456.",
+    "MessageInvalidForgotPasswordPin": "\u0416\u0430\u0440\u0430\u043c\u0441\u044b\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u043c\u0435\u0440\u0437\u0456\u043c\u0456 \u0431\u0456\u0442\u043a\u0435\u043d PIN \u0435\u043d\u0433\u0456\u0437\u0456\u043b\u0434\u0456. \u04d8\u0440\u0435\u043a\u0435\u0442\u0442\u0456 \u049b\u0430\u0439\u0442\u0430\u043b\u0430\u04a3\u044b\u0437.",
+    "MessagePasswordResetForUsers": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0435\u0440 \u043a\u0435\u043b\u0435\u0441\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440 \u04af\u0448\u0456\u043d \u044b\u0441\u044b\u0440\u044b\u043b\u0434\u044b:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Toegang is momenteel bepertk, probeer later opnieuw.",
     "MessageLoggedOutParentalControl": "Toegang is momenteel bepertk, probeer later opnieuw.",
     "DefaultErrorMessage": "Er is een fout opgetreden. Probeer later opnieuw.",
     "DefaultErrorMessage": "Er is een fout opgetreden. Probeer later opnieuw.",
     "ButtonAccept": "Accepteren",
     "ButtonAccept": "Accepteren",
-    "ButtonReject": "Weigeren"
+    "ButtonReject": "Weigeren",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "O acesso est\u00e1 atualmente restrito. Por favor, tente mais tarde.",
     "MessageLoggedOutParentalControl": "O acesso est\u00e1 atualmente restrito. Por favor, tente mais tarde.",
     "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.",
     "DefaultErrorMessage": "Ocorreu um erro ao processar o pedido. Por favor, tente novamente mais tarde.",
     "ButtonAccept": "Aceitar",
     "ButtonAccept": "Aceitar",
-    "ButtonReject": "Rejeitar"
+    "ButtonReject": "Rejeitar",
+    "HeaderForgotPassword": "Esqueci a Senha",
+    "MessageContactAdminToResetPassword": "Por favor, contate o administrador do sistema para redefinir sua senha.",
+    "MessageForgotPasswordInNetworkRequired": "Por favor, tente novamente dentro da rede de sua casa para iniciar o processo para redefinir a senha.",
+    "MessageForgotPasswordFileCreated": "O seguinte arquivo foi criado no seu servidor e cont\u00e9m instru\u00e7\u00f5es de como proceder:",
+    "MessageForgotPasswordFileExpiration": "O c\u00f3digo para redefini\u00e7\u00e3o expirar\u00e1 \u00e0s {0}.",
+    "MessageInvalidForgotPasswordPin": "Foi digitado um c\u00f3digo inv\u00e1lido ou expirado. Por favor, tente novamente.",
+    "MessagePasswordResetForUsers": "Foram redefinidas as senhas dos seguintes usu\u00e1rios:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 9 - 2
MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json

@@ -140,7 +140,7 @@
     "HeaderSelectServerCachePathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u0435\u0448\u0430. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectServerCachePathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043a\u0435\u0448\u0430. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectTranscodingPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectTranscodingPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectImagesByNamePathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u044f. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectImagesByNamePathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u043f\u0430\u043f\u043a\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u044f. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
-    "HeaderSelectMetadataPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
+    "HeaderSelectMetadataPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0435. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectChannelDownloadPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
     "HeaderSelectChannelDownloadPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
     "HeaderSelectChannelDownloadPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0435\u0448\u0430 \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "HeaderSelectChannelDownloadPathHelp": "\u041d\u0430\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u0435\u0448\u0430 \u043a\u0430\u043d\u0430\u043b\u043e\u0432. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
     "OptionNewCollection": "\u041d\u043e\u0432\u0430\u044f...",
     "OptionNewCollection": "\u041d\u043e\u0432\u0430\u044f...",
@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
     "MessageLoggedOutParentalControl": "\u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0443\u043f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
     "DefaultErrorMessage": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
     "DefaultErrorMessage": "\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u043e\u0437\u0436\u0435.",
     "ButtonAccept": "\u041f\u0440\u0438\u043d\u044f\u0442\u044c",
     "ButtonAccept": "\u041f\u0440\u0438\u043d\u044f\u0442\u044c",
-    "ButtonReject": "\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c"
+    "ButtonReject": "\u041e\u0442\u043a\u043b\u043e\u043d\u0438\u0442\u044c",
+    "HeaderForgotPassword": "\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?",
+    "MessageContactAdminToResetPassword": "\u0421\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u0441\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c.",
+    "MessageForgotPasswordInNetworkRequired": "\u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0432\u0430\u0448\u0435\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f.",
+    "MessageForgotPasswordFileCreated": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0431\u044b\u043b \u0441\u043e\u0437\u0434\u0430\u043d \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c:",
+    "MessageForgotPasswordFileExpiration": "\u0421\u0431\u0440\u043e\u0441 PIN-\u043a\u043e\u0434\u0430 \u0438\u0441\u0442\u0435\u043a\u0430\u0435\u0442 {0}.",
+    "MessageInvalidForgotPasswordPin": "\u0411\u044b\u043b \u0432\u0432\u0435\u0434\u0451\u043d \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u0438\u043b\u0438 \u0438\u0441\u0442\u0451\u043a\u0448\u0438\u0439 PIN-\u043a\u043e\u0434. \u041f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443.",
+    "MessagePasswordResetForUsers": "\u041f\u0430\u0440\u043e\u043b\u0438 \u0431\u044b\u043b\u0438 \u0441\u0431\u0440\u043e\u0448\u0435\u043d\u044b \u0434\u043b\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/zh_CN.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 8 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json

@@ -616,5 +616,12 @@
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "MessageLoggedOutParentalControl": "Access is currently restricted. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "DefaultErrorMessage": "There was an error processing the request. Please try again later.",
     "ButtonAccept": "Accept",
     "ButtonAccept": "Accept",
-    "ButtonReject": "Reject"
+    "ButtonReject": "Reject",
+    "HeaderForgotPassword": "Forgot Password",
+    "MessageContactAdminToResetPassword": "Please contact your system administrator to reset your password.",
+    "MessageForgotPasswordInNetworkRequired": "Please try again within your home network to initiate the password reset process.",
+    "MessageForgotPasswordFileCreated": "The following file has been created on your server and contains instructions on how to proceed:",
+    "MessageForgotPasswordFileExpiration": "The reset pin will expire at {0}.",
+    "MessageInvalidForgotPasswordPin": "An invalid or expired pin was entered. Please try again.",
+    "MessagePasswordResetForUsers": "Passwords have been reset for the following users:"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/ar.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/ca.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/cs.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/da.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/de.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Beziehe Medien aus folgenden Sektionen in \"Neueste Medien\" mit ein",
     "LabelSelectLastestItemsFolders": "Beziehe Medien aus folgenden Sektionen in \"Neueste Medien\" mit ein",
     "HeaderShareMediaFolders": "Teile Medienverzeichnisse",
     "HeaderShareMediaFolders": "Teile Medienverzeichnisse",
     "MessageGuestSharingPermissionsHelp": "Die meisten Funktionen sind f\u00fcr G\u00e4ste zun\u00e4chst nicht verf\u00fcgbar, k\u00f6nnen aber je nach Bedarf aktiviert werden.",
     "MessageGuestSharingPermissionsHelp": "Die meisten Funktionen sind f\u00fcr G\u00e4ste zun\u00e4chst nicht verf\u00fcgbar, k\u00f6nnen aber je nach Bedarf aktiviert werden.",
-    "HeaderInvitations": "Einladungen"
+    "HeaderInvitations": "Einladungen",
+    "LabelForgotPasswordUsernameHelp": "Bitte gib deinen Benutzernamen ein, falls du dich daran erinnerst.",
+    "HeaderForgotPassword": "Passwort vergessen",
+    "TitleForgotPassword": "Passwort vergessen",
+    "TitlePasswordReset": "Passwort zur\u00fccksetzen",
+    "LabelPasswordRecoveryPinCode": "PIN-Code:",
+    "HeaderPasswordReset": "Passwort zur\u00fccksetzen",
+    "HeaderParentalRatings": "Altersbeschr\u00e4nkung",
+    "HeaderVideoTypes": "Videotypen",
+    "HeaderYears": "Jahre"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/el.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/en_GB.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/en_US.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/es.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/es_MX.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Incluir medios de las siguientes secciones en Elementos Recientes",
     "LabelSelectLastestItemsFolders": "Incluir medios de las siguientes secciones en Elementos Recientes",
     "HeaderShareMediaFolders": "Compartir Carpetas de Medios",
     "HeaderShareMediaFolders": "Compartir Carpetas de Medios",
     "MessageGuestSharingPermissionsHelp": "Muchas de las caracter\u00edsticas no est\u00e1n disponibles inicialmente para invitados pero pueden ser activadas conforme se necesiten.",
     "MessageGuestSharingPermissionsHelp": "Muchas de las caracter\u00edsticas no est\u00e1n disponibles inicialmente para invitados pero pueden ser activadas conforme se necesiten.",
-    "HeaderInvitations": "Invitaciones"
+    "HeaderInvitations": "Invitaciones",
+    "LabelForgotPasswordUsernameHelp": "Ingresa tu nombre de usuario, si lo recuerdas.",
+    "HeaderForgotPassword": "Contrase\u00f1a Olvidada",
+    "TitleForgotPassword": "Contrase\u00f1a Olvidada",
+    "TitlePasswordReset": "Restablecer Contrase\u00f1a",
+    "LabelPasswordRecoveryPinCode": "C\u00f3digo pin:",
+    "HeaderPasswordReset": "Restablecer Contrase\u00f1a",
+    "HeaderParentalRatings": "Clasificaci\u00f3n Parental",
+    "HeaderVideoTypes": "Tipos de Video",
+    "HeaderYears": "A\u00f1os"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/fi.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 18 - 9
MediaBrowser.Server.Implementations/Localization/Server/fr.json

@@ -546,11 +546,11 @@
     "MessagePleaseRestartServerToFinishUpdating": "Merci de red\u00e9marrer le serveur pour appliquer les mises \u00e0 jour.",
     "MessagePleaseRestartServerToFinishUpdating": "Merci de red\u00e9marrer le serveur pour appliquer les mises \u00e0 jour.",
     "LabelDownMixAudioScale": "Boost audio lors de downmix:",
     "LabelDownMixAudioScale": "Boost audio lors de downmix:",
     "LabelDownMixAudioScaleHelp": "Boost audio lors de downmix. Mettre \u00e0 1 pour pr\u00e9server la valeur originale du volume.",
     "LabelDownMixAudioScaleHelp": "Boost audio lors de downmix. Mettre \u00e0 1 pour pr\u00e9server la valeur originale du volume.",
-    "ButtonLinkKeys": "Transfer Key",
+    "ButtonLinkKeys": "Cl\u00e9 de transfert",
     "LabelOldSupporterKey": "Ancienne cl\u00e9 de supporteur",
     "LabelOldSupporterKey": "Ancienne cl\u00e9 de supporteur",
     "LabelNewSupporterKey": "Nouvelle cl\u00e9 de supporteur",
     "LabelNewSupporterKey": "Nouvelle cl\u00e9 de supporteur",
-    "HeaderMultipleKeyLinking": "Transfer to New Key",
-    "MultipleKeyLinkingHelp": "If you received a new supporter key, use this form to transfer the old key's registrations to your new one.",
+    "HeaderMultipleKeyLinking": "Transf\u00e9rer \u00e0 une nouvelle cl\u00e9",
+    "MultipleKeyLinkingHelp": "Si vous avez re\u00e7u une nouvelle cl\u00e9 de supporteur, utilisez ce formulaire pour transf\u00e9rer votre anciennce cl\u00e9 d'enregistrement \u00e0 votre nouvelle cl\u00e9.",
     "LabelCurrentEmailAddress": "Adresse courriel actuelle",
     "LabelCurrentEmailAddress": "Adresse courriel actuelle",
     "LabelCurrentEmailAddressHelp": "L'adresse courriel actuelle \u00e0 laquelle votre nouvelle cl\u00e9 a \u00e9t\u00e9 envoy\u00e9e.",
     "LabelCurrentEmailAddressHelp": "L'adresse courriel actuelle \u00e0 laquelle votre nouvelle cl\u00e9 a \u00e9t\u00e9 envoy\u00e9e.",
     "HeaderForgotKey": "Oubli\u00e9 cl\u00e9",
     "HeaderForgotKey": "Oubli\u00e9 cl\u00e9",
@@ -821,7 +821,7 @@
     "HeaderWelcomeToMediaBrowserWebClient": "Bienvenue au client Web Media Browser",
     "HeaderWelcomeToMediaBrowserWebClient": "Bienvenue au client Web Media Browser",
     "ButtonDismiss": "Annuler",
     "ButtonDismiss": "Annuler",
     "ButtonTakeTheTour": "Visite guid\u00e9e",
     "ButtonTakeTheTour": "Visite guid\u00e9e",
-    "ButtonEditOtherUserPreferences": "Edit this user's profile, password and personal preferences.",
+    "ButtonEditOtherUserPreferences": "Modifier ce profil utilisateur, mot de passe et pr\u00e9f\u00e9rences personnelles.",
     "LabelChannelStreamQuality": "Qualit\u00e9 de diffusion internet pr\u00e9f\u00e9r\u00e9e :",
     "LabelChannelStreamQuality": "Qualit\u00e9 de diffusion internet pr\u00e9f\u00e9r\u00e9e :",
     "LabelChannelStreamQualityHelp": "Avec une bande passante faible, limiter la qualit\u00e9 garantit un confort d'utilisation du streaming.",
     "LabelChannelStreamQualityHelp": "Avec une bande passante faible, limiter la qualit\u00e9 garantit un confort d'utilisation du streaming.",
     "OptionBestAvailableStreamQuality": "Meilleur disponible",
     "OptionBestAvailableStreamQuality": "Meilleur disponible",
@@ -1250,9 +1250,18 @@
     "HeaderDashboardUserPassword": "Les mots de passes utilisateurs sont g\u00e9r\u00e9 dans les param\u00e8tres du profil personnel de chaque utilisateurs.",
     "HeaderDashboardUserPassword": "Les mots de passes utilisateurs sont g\u00e9r\u00e9 dans les param\u00e8tres du profil personnel de chaque utilisateurs.",
     "HeaderLibraryAccess": "Acc\u00e8s \u00e0 la librairie",
     "HeaderLibraryAccess": "Acc\u00e8s \u00e0 la librairie",
     "HeaderChannelAccess": "Acc\u00e8s Cha\u00eene",
     "HeaderChannelAccess": "Acc\u00e8s Cha\u00eene",
-    "HeaderLatestItems": "Latest Items",
-    "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
-    "HeaderShareMediaFolders": "Share Media Folders",
-    "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderLatestItems": "Derniers items",
+    "LabelSelectLastestItemsFolders": "Inclure les m\u00e9dias provenant des sections suivantes dans les Derniers Items",
+    "HeaderShareMediaFolders": "Partager les r\u00e9pertoires de m\u00e9dias",
+    "MessageGuestSharingPermissionsHelp": "La plupart des fonctions sont initialement non disponible aux invit\u00e9s mais peuvent \u00eatre activ\u00e9es au besoin.",
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Entrez votre nom d'utilisateur, si vous vous en rappelez.",
+    "HeaderForgotPassword": "Mot de passe oubli\u00e9",
+    "TitleForgotPassword": "Mot de passe oubli\u00e9",
+    "TitlePasswordReset": "Mot de passe r\u00e9initialis\u00e9",
+    "LabelPasswordRecoveryPinCode": "Code NIP:",
+    "HeaderPasswordReset": "Mot de passe r\u00e9initialis\u00e9",
+    "HeaderParentalRatings": "Note parentale",
+    "HeaderVideoTypes": "Types de vid\u00e9o",
+    "HeaderYears": "Ann\u00e9es"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/he.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/hr.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 39 - 30
MediaBrowser.Server.Implementations/Localization/Server/it.json

@@ -546,11 +546,11 @@
     "MessagePleaseRestartServerToFinishUpdating": "Si prega di riavviare il server per completare l'applicazione degli aggiornamenti.",
     "MessagePleaseRestartServerToFinishUpdating": "Si prega di riavviare il server per completare l'applicazione degli aggiornamenti.",
     "LabelDownMixAudioScale": "Audio Boost Mix Scala :",
     "LabelDownMixAudioScale": "Audio Boost Mix Scala :",
     "LabelDownMixAudioScaleHelp": "Audio Mix: Valore originale 1",
     "LabelDownMixAudioScaleHelp": "Audio Mix: Valore originale 1",
-    "ButtonLinkKeys": "Transfer Key",
+    "ButtonLinkKeys": "trasferimento chiavi",
     "LabelOldSupporterKey": "Vecchie Chiavi dl donatore",
     "LabelOldSupporterKey": "Vecchie Chiavi dl donatore",
     "LabelNewSupporterKey": "Nuova Chiave del donatore:",
     "LabelNewSupporterKey": "Nuova Chiave del donatore:",
-    "HeaderMultipleKeyLinking": "Transfer to New Key",
-    "MultipleKeyLinkingHelp": "If you received a new supporter key, use this form to transfer the old key's registrations to your new one.",
+    "HeaderMultipleKeyLinking": "trasferimento nuova chiave",
+    "MultipleKeyLinkingHelp": "Se hai ricevuto una nuova chiave sostenitore, utilizzare questo modulo per trasferire le registrazioni della vecchia chiave a quello nuovo.",
     "LabelCurrentEmailAddress": "Indirizzo mail",
     "LabelCurrentEmailAddress": "Indirizzo mail",
     "LabelCurrentEmailAddressHelp": "L'indirizzo email attuale a cui la nuova chiave \u00e8 stata inviata.",
     "LabelCurrentEmailAddressHelp": "L'indirizzo email attuale a cui la nuova chiave \u00e8 stata inviata.",
     "HeaderForgotKey": "Chiave dimenticata",
     "HeaderForgotKey": "Chiave dimenticata",
@@ -821,7 +821,7 @@
     "HeaderWelcomeToMediaBrowserWebClient": "Benvenuti nel Media Browser Web client",
     "HeaderWelcomeToMediaBrowserWebClient": "Benvenuti nel Media Browser Web client",
     "ButtonDismiss": "Dismetti",
     "ButtonDismiss": "Dismetti",
     "ButtonTakeTheTour": "Fai il tour",
     "ButtonTakeTheTour": "Fai il tour",
-    "ButtonEditOtherUserPreferences": "Edit this user's profile, password and personal preferences.",
+    "ButtonEditOtherUserPreferences": "Modifica questo profilo di utente, la password e le preferenze personali.",
     "LabelChannelStreamQuality": "Preferenziale qualit\u00e0 del flusso internet:",
     "LabelChannelStreamQuality": "Preferenziale qualit\u00e0 del flusso internet:",
     "LabelChannelStreamQualityHelp": "In un ambiente a bassa larghezza di banda, limitando la qualit\u00e0 pu\u00f2 contribuire a garantire un'esperienza di Smooth Streaming.",
     "LabelChannelStreamQualityHelp": "In un ambiente a bassa larghezza di banda, limitando la qualit\u00e0 pu\u00f2 contribuire a garantire un'esperienza di Smooth Streaming.",
     "OptionBestAvailableStreamQuality": "Migliore disponibile",
     "OptionBestAvailableStreamQuality": "Migliore disponibile",
@@ -835,7 +835,7 @@
     "LabelSelectCollection": "Seleziona Collezione:",
     "LabelSelectCollection": "Seleziona Collezione:",
     "ButtonOptions": "Opzioni",
     "ButtonOptions": "Opzioni",
     "ViewTypeMovies": "Film",
     "ViewTypeMovies": "Film",
-    "ViewTypeTvShows": "Tv",
+    "ViewTypeTvShows": "Serie Tv",
     "ViewTypeGames": "Giochi",
     "ViewTypeGames": "Giochi",
     "ViewTypeMusic": "Musica",
     "ViewTypeMusic": "Musica",
     "ViewTypeBoxSets": "Collezioni",
     "ViewTypeBoxSets": "Collezioni",
@@ -880,7 +880,7 @@
     "LabelProtocolInfoHelp": "Il valore che verr\u00e0 utilizzato quando si risponde a GetProtocolInfo richieste dal dispositivo.",
     "LabelProtocolInfoHelp": "Il valore che verr\u00e0 utilizzato quando si risponde a GetProtocolInfo richieste dal dispositivo.",
     "TabKodiMetadata": "Kodi",
     "TabKodiMetadata": "Kodi",
     "HeaderKodiMetadataHelp": "Media Browser include il supporto nativo per i metadati Kodi Nfo e immagini. Per attivare o disattivare i metadati Kodi, utilizzare la scheda Avanzate per configurare le opzioni per i tipi di media.",
     "HeaderKodiMetadataHelp": "Media Browser include il supporto nativo per i metadati Kodi Nfo e immagini. Per attivare o disattivare i metadati Kodi, utilizzare la scheda Avanzate per configurare le opzioni per i tipi di media.",
-    "LabelKodiMetadataUser": "Add user watch data to nfo's for:",
+    "LabelKodiMetadataUser": "Sincronizza i dati utente a nfo di per:",
     "LabelKodiMetadataUserHelp": "Attivare questa opzione per mantenere i dati di orologi sincronizzati tra il Media Browser e Kodi.",
     "LabelKodiMetadataUserHelp": "Attivare questa opzione per mantenere i dati di orologi sincronizzati tra il Media Browser e Kodi.",
     "LabelKodiMetadataDateFormat": "Data di uscita Formato:",
     "LabelKodiMetadataDateFormat": "Data di uscita Formato:",
     "LabelKodiMetadataDateFormatHelp": "Tutte le date all'interno del nfo verranno letti e scritti utilizzando questo formato.",
     "LabelKodiMetadataDateFormatHelp": "Tutte le date all'interno del nfo verranno letti e scritti utilizzando questo formato.",
@@ -1151,7 +1151,7 @@
     "OptionSaveMetadataAsHidden": "Salvare i metadati e le immagini come file nascosti",
     "OptionSaveMetadataAsHidden": "Salvare i metadati e le immagini come file nascosti",
     "LabelExtractChaptersDuringLibraryScan": "Estrarre immagini capitolo durante la scansione biblioteca",
     "LabelExtractChaptersDuringLibraryScan": "Estrarre immagini capitolo durante la scansione biblioteca",
     "LabelExtractChaptersDuringLibraryScanHelp": "Se abilitata, le immagini capitolo verranno estratti quando i video vengono importati durante la scansione della libreria. Se disabilitata verranno estratti durante le immagini dei capitoli programmati compito, permettendo la scansione biblioteca regolare per completare pi\u00f9 velocemente.",
     "LabelExtractChaptersDuringLibraryScanHelp": "Se abilitata, le immagini capitolo verranno estratti quando i video vengono importati durante la scansione della libreria. Se disabilitata verranno estratti durante le immagini dei capitoli programmati compito, permettendo la scansione biblioteca regolare per completare pi\u00f9 velocemente.",
-    "LabelConnectGuestUserName": "Their Media Browser username or email address:",
+    "LabelConnectGuestUserName": "I loro Utente o email di Media Browser",
     "LabelConnectUserName": "Media Browser username\/email:",
     "LabelConnectUserName": "Media Browser username\/email:",
     "LabelConnectUserNameHelp": "Collega questo utente a un conto Media Browser per abilitare acceso rapido da Media Browser con qualsiasi applicazione senza dovere conoscere il indirrzo IP.",
     "LabelConnectUserNameHelp": "Collega questo utente a un conto Media Browser per abilitare acceso rapido da Media Browser con qualsiasi applicazione senza dovere conoscere il indirrzo IP.",
     "ButtonLearnMoreAboutMediaBrowserConnect": "Scopri di pi\u00f9 su Media Browser Connect",
     "ButtonLearnMoreAboutMediaBrowserConnect": "Scopri di pi\u00f9 su Media Browser Connect",
@@ -1214,7 +1214,7 @@
     "LabelCustomDeviceDisplayName": "Nome da visualizzare:",
     "LabelCustomDeviceDisplayName": "Nome da visualizzare:",
     "LabelCustomDeviceDisplayNameHelp": "Fornire un nome di visualizzazione personalizzato o lasciare vuoto per utilizzare il nome riportato dal dispositivo.",
     "LabelCustomDeviceDisplayNameHelp": "Fornire un nome di visualizzazione personalizzato o lasciare vuoto per utilizzare il nome riportato dal dispositivo.",
     "HeaderInviteUser": "Invita utente",
     "HeaderInviteUser": "Invita utente",
-    "LabelConnectGuestUserNameHelp": "This is the username that your friend uses to sign in to the Media Browser website, or their email address.",
+    "LabelConnectGuestUserNameHelp": "Questo \u00e8 il nome utente che il tuo amico utilizza per accedere al sito Web Media Browser, o il loro indirizzo e-mail.",
     "HeaderInviteUserHelp": "Condividere i tuoi contenuti multimediali con gli amici \u00e8 pi\u00f9 facile che mai con il Browser Media Connect.",
     "HeaderInviteUserHelp": "Condividere i tuoi contenuti multimediali con gli amici \u00e8 pi\u00f9 facile che mai con il Browser Media Connect.",
     "ButtonSendInvitation": "Invia Invito",
     "ButtonSendInvitation": "Invia Invito",
     "HeaderGuests": "ospiti",
     "HeaderGuests": "ospiti",
@@ -1231,28 +1231,37 @@
     "OptionEveryday": "Tutti i giorni",
     "OptionEveryday": "Tutti i giorni",
     "OptionWeekdays": "Feriali",
     "OptionWeekdays": "Feriali",
     "OptionWeekends": "Il Weekend",
     "OptionWeekends": "Il Weekend",
-    "MessageProfileInfoSynced": "User profile information synced with Media Browser Connect.",
-    "HeaderOptionalLinkMediaBrowserAccount": "Optional: Link your Media Browser account",
-    "ButtonTrailerReel": "Trailer reel",
-    "HeaderTrailerReel": "Trailer Reel",
-    "OptionPlayUnwatchedTrailersOnly": "Play only unwatched trailers",
-    "HeaderTrailerReelHelp": "Start a trailer reel to play a long running playlist of trailers.",
-    "MessageNoTrailersFound": "No trailers found. Install the Trailer channel plugin to import a library of internet trailers.",
-    "HeaderNewUsers": "New Users",
-    "ButtonSignUp": "Sign up",
+    "MessageProfileInfoSynced": "Informazioni del profilo utente sincronizzato con Browser Media Connect.",
+    "HeaderOptionalLinkMediaBrowserAccount": "Opzionale: Collega il tuo account Media Browser",
+    "ButtonTrailerReel": "Trailer b.",
+    "HeaderTrailerReel": "Trailer b.",
+    "OptionPlayUnwatchedTrailersOnly": "Riproduci solo i trailer non visti",
+    "HeaderTrailerReelHelp": "Inizia a riprodurre una lunga playlist di trailer",
+    "MessageNoTrailersFound": "Nessun Trailer trovato.Installa Il plug in dei traler per importare la libreria dei trailer da internet",
+    "HeaderNewUsers": "Nuovo Utente",
+    "ButtonSignUp": "Iscriviti",
     "ButtonForgotPassword": "Dimenticato la password?",
     "ButtonForgotPassword": "Dimenticato la password?",
-    "OptionDisableUserPreferences": "Disable access to user preferences",
-    "OptionDisableUserPreferencesHelp": "If enabled, only administrators will be able to configure user profile images, passwords, and language preferences.",
+    "OptionDisableUserPreferences": "Disabilitare l'accesso alle preferenze dell'utente",
+    "OptionDisableUserPreferencesHelp": "Se abilitato, solo gli amministratori saranno in grado di configurare le immagini del profilo utente, password e preferenze di lingua.",
     "HeaderSelectServer": "Selezionare il server",
     "HeaderSelectServer": "Selezionare il server",
-    "MessageNoServersAvailableToConnect": "No servers are available to connect to. If you've been invited to share a server, make sure to accept it below or by clicking the link in the email.",
-    "TitleNewUser": "New User",
-    "ButtonConfigurePassword": "Configure Password",
-    "HeaderDashboardUserPassword": "User passwords are managed within each user's personal profile settings.",
-    "HeaderLibraryAccess": "Library Access",
-    "HeaderChannelAccess": "Channel Access",
-    "HeaderLatestItems": "Latest Items",
-    "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
-    "HeaderShareMediaFolders": "Share Media Folders",
-    "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "MessageNoServersAvailableToConnect": "Nessun server sono disponibili per la connessione a. Se siete stati invitati a condividere un server, assicurarsi di accettarla sotto o facendo clic sul collegamento nell'e-mail.",
+    "TitleNewUser": "Nuovo Utente",
+    "ButtonConfigurePassword": "Configura Password",
+    "HeaderDashboardUserPassword": "Le password degli utenti sono gestiti all'interno delle impostazioni del profilo personale di ogni utente.",
+    "HeaderLibraryAccess": "Accesso libreria",
+    "HeaderChannelAccess": "Accesso canali",
+    "HeaderLatestItems": "Ultimi elementi aggiunti",
+    "LabelSelectLastestItemsFolders": "Includere supporti dalle seguenti sezioni Ultimi Articoli",
+    "HeaderShareMediaFolders": "Condividi Cartelle dei media",
+    "MessageGuestSharingPermissionsHelp": "a maggior parte delle caratteristiche sono inizialmente disponibili per gli ospiti, ma possono essere attivate in base alle esigenze.",
+    "HeaderInvitations": "Inviti",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 12 - 3
MediaBrowser.Server.Implementations/Localization/Server/kk.json

@@ -553,7 +553,7 @@
     "MultipleKeyLinkingHelp": "\u0415\u0433\u0435\u0440 \u0436\u0430\u04a3\u0430 \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043a\u0456\u043b\u0442\u0456 \u049b\u0430\u0431\u044b\u043b\u0434\u0430\u043d\u0441\u0430, \u0435\u0441\u043a\u0456 \u043a\u0456\u043b\u0442 \u0442\u0456\u0440\u043a\u0435\u043c\u0435\u043b\u0435\u0440\u0456\u043d \u0436\u0430\u04a3\u0430\u0441\u044b\u043d\u0430 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043b \u043f\u0456\u0448\u0456\u043d\u0434\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u04a3\u044b\u0437.",
     "MultipleKeyLinkingHelp": "\u0415\u0433\u0435\u0440 \u0436\u0430\u04a3\u0430 \u049b\u043e\u043b\u0434\u0430\u0443\u0448\u044b \u043a\u0456\u043b\u0442\u0456 \u049b\u0430\u0431\u044b\u043b\u0434\u0430\u043d\u0441\u0430, \u0435\u0441\u043a\u0456 \u043a\u0456\u043b\u0442 \u0442\u0456\u0440\u043a\u0435\u043c\u0435\u043b\u0435\u0440\u0456\u043d \u0436\u0430\u04a3\u0430\u0441\u044b\u043d\u0430 \u0430\u0443\u044b\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u0431\u04b1\u043b \u043f\u0456\u0448\u0456\u043d\u0434\u0456 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u04a3\u044b\u0437.",
     "LabelCurrentEmailAddress": "\u042d-\u043f\u043e\u0448\u0442\u0430\u043d\u044b\u04a3 \u0430\u0493\u044b\u043c\u0434\u044b\u049b \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b",
     "LabelCurrentEmailAddress": "\u042d-\u043f\u043e\u0448\u0442\u0430\u043d\u044b\u04a3 \u0430\u0493\u044b\u043c\u0434\u044b\u049b \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b",
     "LabelCurrentEmailAddressHelp": "\u0416\u0430\u04a3\u0430 \u043a\u0456\u043b\u0442 \u0436\u0456\u0431\u0435\u0440\u0456\u043b\u0433\u0435\u043d \u0430\u0493\u044b\u043c\u0434\u044b\u049b \u044d-\u043f\u043e\u0448\u0442\u0430 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b.",
     "LabelCurrentEmailAddressHelp": "\u0416\u0430\u04a3\u0430 \u043a\u0456\u043b\u0442 \u0436\u0456\u0431\u0435\u0440\u0456\u043b\u0433\u0435\u043d \u0430\u0493\u044b\u043c\u0434\u044b\u049b \u044d-\u043f\u043e\u0448\u0442\u0430 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b.",
-    "HeaderForgotKey": "\u041a\u0456\u043b\u0442 \u04b1\u043c\u044b\u0442 \u0431\u043e\u043b\u0434\u044b",
+    "HeaderForgotKey": "\u041a\u0456\u043b\u0442\u0442\u0456 \u04b1\u043c\u044b\u0442\u044b\u04a3\u044b\u0437 \u0431\u0430?",
     "LabelEmailAddress": "\u042d-\u043f\u043e\u0448\u0442\u0430\u043d\u044b\u04a3 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b",
     "LabelEmailAddress": "\u042d-\u043f\u043e\u0448\u0442\u0430\u043d\u044b\u04a3 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b",
     "LabelSupporterEmailAddress": "\u041a\u0456\u043b\u0442\u0442\u0456 \u0441\u0430\u0442\u044b\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0493\u0430\u043d \u044d-\u043f\u043e\u0448\u0442\u0430 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b.",
     "LabelSupporterEmailAddress": "\u041a\u0456\u043b\u0442\u0442\u0456 \u0441\u0430\u0442\u044b\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0493\u0430\u043d \u044d-\u043f\u043e\u0448\u0442\u0430 \u043c\u0435\u043a\u0435\u043d\u0436\u0430\u0439\u044b.",
     "ButtonRetrieveKey": "\u041a\u0456\u043b\u0442\u0442\u0456 \u049b\u0430\u0439\u0442\u0430 \u0430\u043b\u0443",
     "ButtonRetrieveKey": "\u041a\u0456\u043b\u0442\u0442\u0456 \u049b\u0430\u0439\u0442\u0430 \u0430\u043b\u0443",
@@ -1240,7 +1240,7 @@
     "MessageNoTrailersFound": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b. \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u049b\u043e\u0440\u044b\u043d \u0438\u043c\u043f\u043e\u0440\u0442\u0442\u0430\u0443 \u04af\u0448\u0456\u043d \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u0430\u0440\u043d\u0430\u0441\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0456\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
     "MessageNoTrailersFound": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b. \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u049b\u043e\u0440\u044b\u043d \u0438\u043c\u043f\u043e\u0440\u0442\u0442\u0430\u0443 \u04af\u0448\u0456\u043d \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u0430\u0440\u043d\u0430\u0441\u044b \u043f\u043b\u0430\u0433\u0438\u043d\u0456\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
     "HeaderNewUsers": "\u0416\u0430\u04a3\u0430 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440",
     "HeaderNewUsers": "\u0416\u0430\u04a3\u0430 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440",
     "ButtonSignUp": "\u0422\u0456\u0440\u043a\u0435\u043b\u0443",
     "ButtonSignUp": "\u0422\u0456\u0440\u043a\u0435\u043b\u0443",
-    "ButtonForgotPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437 \u04b1\u043c\u044b\u0442\u044b\u043b\u0434\u044b \u043c\u0430?",
+    "ButtonForgotPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u04b1\u043c\u044b\u0442\u044b\u04a3\u044b\u0437 \u0431\u0430?",
     "OptionDisableUserPreferences": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u0442\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d\u0435 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443\u0434\u044b \u0430\u0436\u044b\u0440\u0430\u0442\u0443",
     "OptionDisableUserPreferences": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u0442\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d\u0435 \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443\u0434\u044b \u0430\u0436\u044b\u0440\u0430\u0442\u0443",
     "OptionDisableUserPreferencesHelp": "\u0415\u0433\u0435\u0440 \u049b\u043e\u0441\u044b\u043b\u0441\u0430, \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u044b\u043d, \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d, \u049b\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0435\u0440\u0456\u043d \u0436\u04d9\u043d\u0435 \u0442\u0456\u043b\u0434\u0456\u043a \u0442\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u04d9\u043a\u0456\u043c\u0448\u0456\u043b\u0435\u0440 \u0442\u0435\u04a3\u0448\u0435\u0443\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
     "OptionDisableUserPreferencesHelp": "\u0415\u0433\u0435\u0440 \u049b\u043e\u0441\u044b\u043b\u0441\u0430, \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u043f\u0440\u043e\u0444\u0430\u0439\u043b\u044b\u043d, \u0441\u0443\u0440\u0435\u0442\u0442\u0435\u0440\u0456\u043d, \u049b\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0435\u0440\u0456\u043d \u0436\u04d9\u043d\u0435 \u0442\u0456\u043b\u0434\u0456\u043a \u0442\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u04d9\u043a\u0456\u043c\u0448\u0456\u043b\u0435\u0440 \u0442\u0435\u04a3\u0448\u0435\u0443\u0456 \u043c\u04af\u043c\u043a\u0456\u043d.",
     "HeaderSelectServer": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u0442\u0430\u04a3\u0434\u0430\u0443",
     "HeaderSelectServer": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u0442\u0430\u04a3\u0434\u0430\u0443",
@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0435\u0440\u0434\u0456\u04a3 \u043a\u0435\u043b\u0435\u0441\u0456 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d\u0435\u043d \u0442\u0430\u0441\u0443\u0448\u044b \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u043c\u0435\u043d \u049b\u0430\u043c\u0442\u0443",
     "LabelSelectLastestItemsFolders": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0435\u0440\u0434\u0456\u04a3 \u043a\u0435\u043b\u0435\u0441\u0456 \u0431\u04e9\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u043d\u0435\u043d \u0442\u0430\u0441\u0443\u0448\u044b \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u043c\u0435\u043d \u049b\u0430\u043c\u0442\u0443",
     "HeaderShareMediaFolders": "\u0422\u0430\u0441\u0443\u0448\u044b \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u043c\u0435\u043d \u043e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
     "HeaderShareMediaFolders": "\u0422\u0430\u0441\u0443\u0448\u044b \u049b\u0430\u043b\u0442\u0430\u043b\u0430\u0440\u043c\u0435\u043d \u043e\u0440\u0442\u0430\u049b\u0442\u0430\u0441\u0443",
     "MessageGuestSharingPermissionsHelp": "\u041c\u04d9\u043b\u043c\u0435\u0442\u0442\u0435\u0440\u0434\u0456\u04a3 \u043a\u04e9\u0431\u0456 \u04d9\u0434\u0435\u043f\u043a\u0456\u0434\u0435 \u049b\u043e\u043d\u0430\u049b\u0442\u0430\u0440\u0493\u0430 \u049b\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0435\u043c\u0435\u0441, \u0431\u0456\u0440\u0430\u049b \u043a\u0435\u0440\u0435\u043a \u0431\u043e\u043b\u0441\u0430 \u049b\u043e\u0441\u044b\u043b\u0430\u0434\u044b.",
     "MessageGuestSharingPermissionsHelp": "\u041c\u04d9\u043b\u043c\u0435\u0442\u0442\u0435\u0440\u0434\u0456\u04a3 \u043a\u04e9\u0431\u0456 \u04d9\u0434\u0435\u043f\u043a\u0456\u0434\u0435 \u049b\u043e\u043d\u0430\u049b\u0442\u0430\u0440\u0493\u0430 \u049b\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0435\u043c\u0435\u0441, \u0431\u0456\u0440\u0430\u049b \u043a\u0435\u0440\u0435\u043a \u0431\u043e\u043b\u0441\u0430 \u049b\u043e\u0441\u044b\u043b\u0430\u0434\u044b.",
-    "HeaderInvitations": "\u0428\u0430\u049b\u044b\u0440\u0443\u043b\u0430\u0440"
+    "HeaderInvitations": "\u0428\u0430\u049b\u044b\u0440\u0443\u043b\u0430\u0440",
+    "LabelForgotPasswordUsernameHelp": "\u0415\u0441\u043a\u0435 \u0441\u0430\u043b\u0441\u0430\u04a3\u044b\u0437, \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b \u0430\u0442\u044b\u04a3\u044b\u0437\u0434\u044b \u0435\u043d\u0433\u0456\u0437\u0456\u04a3\u0456\u0437.",
+    "HeaderForgotPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u04b1\u043c\u044b\u0442\u044b\u04a3\u044b\u0437 \u0431\u0430?",
+    "TitleForgotPassword": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u04b1\u043c\u044b\u0442\u044b\u04a3\u044b\u0437 \u0431\u0430?",
+    "TitlePasswordReset": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443",
+    "LabelPasswordRecoveryPinCode": "PIN \u043a\u043e\u0434\u044b:",
+    "HeaderPasswordReset": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443",
+    "HeaderParentalRatings": "\u0416\u0430\u0441\u0442\u0430\u0441 \u0441\u0430\u043d\u0430\u0442\u0442\u0430\u0440",
+    "HeaderVideoTypes": "\u0411\u0435\u0439\u043d\u0435 \u0442\u04af\u0440\u043b\u0435\u0440\u0456",
+    "HeaderYears": "\u0416\u044b\u043b\u0434\u0430\u0440"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/ko.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/ms.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/nb.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/nl.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Voeg media van de volgende secties toe aan Nieuwste items",
     "LabelSelectLastestItemsFolders": "Voeg media van de volgende secties toe aan Nieuwste items",
     "HeaderShareMediaFolders": "Deel media mappen",
     "HeaderShareMediaFolders": "Deel media mappen",
     "MessageGuestSharingPermissionsHelp": "De meeste features zijn niet direct beschikbaar voor gasten maar kunnen aangezet worden waar gewenst.",
     "MessageGuestSharingPermissionsHelp": "De meeste features zijn niet direct beschikbaar voor gasten maar kunnen aangezet worden waar gewenst.",
-    "HeaderInvitations": "Uitnodigingen"
+    "HeaderInvitations": "Uitnodigingen",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/pl.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Incluir m\u00eddia das seguintes se\u00e7\u00f5es nos Itens Recentes",
     "LabelSelectLastestItemsFolders": "Incluir m\u00eddia das seguintes se\u00e7\u00f5es nos Itens Recentes",
     "HeaderShareMediaFolders": "Compartilhar Pastas de M\u00eddia",
     "HeaderShareMediaFolders": "Compartilhar Pastas de M\u00eddia",
     "MessageGuestSharingPermissionsHelp": "A maioria dos recursos est\u00e3o inicialmente indispon\u00edveis para convidados, mas podem ser ativados conforme necess\u00e1rio.",
     "MessageGuestSharingPermissionsHelp": "A maioria dos recursos est\u00e3o inicialmente indispon\u00edveis para convidados, mas podem ser ativados conforme necess\u00e1rio.",
-    "HeaderInvitations": "Convites"
+    "HeaderInvitations": "Convites",
+    "LabelForgotPasswordUsernameHelp": "Digite o nome de seu usu\u00e1rio, se lembrar.",
+    "HeaderForgotPassword": "Esqueci a Senha",
+    "TitleForgotPassword": "Esqueci a Senha",
+    "TitlePasswordReset": "Redefini\u00e7\u00e3o de Senha",
+    "LabelPasswordRecoveryPinCode": "C\u00f3digo:",
+    "HeaderPasswordReset": "Redefini\u00e7\u00e3o de Senha",
+    "HeaderParentalRatings": "Classifica\u00e7\u00f5es Parentais",
+    "HeaderVideoTypes": "Tipos de V\u00eddeo",
+    "HeaderYears": "Anos"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 23 - 14
MediaBrowser.Server.Implementations/Localization/Server/ru.json

@@ -57,8 +57,8 @@
     "TabImages": "\u0420\u0438\u0441\u0443\u043d\u043a\u0438",
     "TabImages": "\u0420\u0438\u0441\u0443\u043d\u043a\u0438",
     "TabNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
     "TabNotifications": "\u0423\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f",
     "TabCollectionTitles": "\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
     "TabCollectionTitles": "\u041f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
-    "LabelDisplayMissingEpisodesWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0437\u043e\u043d\u043e\u0432",
-    "LabelUnairedMissingEpisodesWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0437\u043e\u043d\u043e\u0432",
+    "LabelDisplayMissingEpisodesWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432",
+    "LabelUnairedMissingEpisodesWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432",
     "HeaderVideoPlaybackSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e",
     "HeaderVideoPlaybackSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e",
     "HeaderPlaybackSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
     "HeaderPlaybackSettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
     "LabelAudioLanguagePreference": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u0430\u0443\u0434\u0438\u043e:",
     "LabelAudioLanguagePreference": "\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u044f\u0437\u044b\u043a\u0430 \u0430\u0443\u0434\u0438\u043e:",
@@ -264,7 +264,7 @@
     "LabelImagesByNamePath": "\u041f\u0443\u0442\u044c \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u044f:",
     "LabelImagesByNamePath": "\u041f\u0443\u0442\u044c \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0447\u0435\u0440\u0435\u0437 \u0438\u043c\u044f:",
     "LabelImagesByNamePathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0430\u043a\u0442\u0451\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439, \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u0441\u0442\u0443\u0434\u0438\u0439.",
     "LabelImagesByNamePathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0430\u043a\u0442\u0451\u0440\u043e\u0432, \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435\u0439, \u0436\u0430\u043d\u0440\u043e\u0432 \u0438 \u0441\u0442\u0443\u0434\u0438\u0439.",
     "LabelMetadataPath": "\u041f\u0443\u0442\u044c \u043a \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c:",
     "LabelMetadataPath": "\u041f\u0443\u0442\u044c \u043a \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u043c:",
-    "LabelMetadataPathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043e\u043a.",
+    "LabelMetadataPathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c\u044b\u0445 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0435 \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043e\u043a.",
     "LabelTranscodingTempPath": "\u041f\u0443\u0442\u044c \u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:",
     "LabelTranscodingTempPath": "\u041f\u0443\u0442\u044c \u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0438:",
     "LabelTranscodingTempPathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
     "LabelTranscodingTempPathHelp": "\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u0444\u0430\u0439\u043b\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0435. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c, \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0430\u043f\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
     "TabBasics": "\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435",
     "TabBasics": "\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435",
@@ -553,7 +553,7 @@
     "MultipleKeyLinkingHelp": "\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043a \u043d\u043e\u0432\u043e\u043c\u0443.",
     "MultipleKeyLinkingHelp": "\u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u0430, \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u0434\u0430\u043d\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430 \u043a \u043d\u043e\u0432\u043e\u043c\u0443.",
     "LabelCurrentEmailAddress": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b",
     "LabelCurrentEmailAddress": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b",
     "LabelCurrentEmailAddressHelp": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447.",
     "LabelCurrentEmailAddressHelp": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0430\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447.",
-    "HeaderForgotKey": "\u041a\u043b\u044e\u0447 \u0431\u044b\u043b \u0437\u0430\u0431\u044b\u0442",
+    "HeaderForgotKey": "\u0417\u0430\u0431\u044b\u043b\u0438 \u043a\u043b\u044e\u0447?",
     "LabelEmailAddress": "\u0410\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b",
     "LabelEmailAddress": "\u0410\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b",
     "LabelSupporterEmailAddress": "\u0410\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430.",
     "LabelSupporterEmailAddress": "\u0410\u0434\u0440\u0435\u0441 \u042d-\u043f\u043e\u0447\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u0434\u043b\u044f \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u0442\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430.",
     "ButtonRetrieveKey": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447",
     "ButtonRetrieveKey": "\u0412\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447",
@@ -883,13 +883,13 @@
     "LabelKodiMetadataUser": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0441 NFO-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f:",
     "LabelKodiMetadataUser": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0441 NFO-\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0434\u043b\u044f:",
     "LabelKodiMetadataUserHelp": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0436\u0434\u0443 Media Browser \u0438 Kodi.",
     "LabelKodiMetadataUserHelp": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0436\u0434\u0443 Media Browser \u0438 Kodi.",
     "LabelKodiMetadataDateFormat": "\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u0432\u044b\u043f\u0443\u0441\u043a\u0430:",
     "LabelKodiMetadataDateFormat": "\u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u0432\u044b\u043f\u0443\u0441\u043a\u0430:",
-    "LabelKodiMetadataDateFormatHelp": "\u0412\u0441\u0435 \u0434\u0430\u0442\u044b \u0432\u043d\u0443\u0442\u0440\u0438 NFO-\u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430.",
-    "LabelKodiMetadataSaveImagePaths": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0443\u0442\u0438 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 NFO-\u0444\u0430\u0439\u043b\u043e\u0432",
+    "LabelKodiMetadataDateFormatHelp": "\u0412\u0441\u0435 \u0434\u0430\u0442\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 NFO-\u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0443\u0434\u0443\u0442 \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430.",
+    "LabelKodiMetadataSaveImagePaths": "\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043f\u0443\u0442\u0438 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 NFO-\u0444\u0430\u0439\u043b\u043e\u0432",
     "LabelKodiMetadataSaveImagePathsHelp": "\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u044f\u0449\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c Kodi.",
     "LabelKodiMetadataSaveImagePathsHelp": "\u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u044f\u0449\u0438\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u043c Kodi.",
     "LabelKodiMetadataEnablePathSubstitution": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439",
     "LabelKodiMetadataEnablePathSubstitution": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439",
     "LabelKodiMetadataEnablePathSubstitutionHelp": "\u0412\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
     "LabelKodiMetadataEnablePathSubstitutionHelp": "\u0412\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u043a \u0440\u0438\u0441\u0443\u043d\u043a\u0430\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.",
     "LabelKodiMetadataEnablePathSubstitutionHelp2": "\u0421\u043c. \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439",
     "LabelKodiMetadataEnablePathSubstitutionHelp2": "\u0421\u043c. \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0443\u0442\u0435\u0439",
-    "LabelGroupChannelsIntoViews": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0441\u0440\u0435\u0434\u0438 \u043c\u043e\u0438\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432:",
+    "LabelGroupChannelsIntoViews": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043c\u043e\u0438\u0445 \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432:",
     "LabelGroupChannelsIntoViewsHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c\u0438. \u041f\u0440\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0441\u043f\u0435\u043a\u0442\u0430 \u00ab\u041a\u0430\u043d\u0430\u043b\u044b\u00bb.",
     "LabelGroupChannelsIntoViewsHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0430\u0440\u044f\u0434\u0443 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c\u0438. \u041f\u0440\u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438, \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0441\u043f\u0435\u043a\u0442\u0430 \u00ab\u041a\u0430\u043d\u0430\u043b\u044b\u00bb.",
     "LabelDisplayCollectionsView": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0430\u0441\u043f\u0435\u043a\u0442 \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432",
     "LabelDisplayCollectionsView": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0430\u0441\u043f\u0435\u043a\u0442 \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u0444\u0438\u043b\u044c\u043c\u043e\u0432",
     "LabelKodiMetadataEnableExtraThumbs": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c extrafanart \u0432\u043d\u0443\u0442\u0440\u044c extrathumbs",
     "LabelKodiMetadataEnableExtraThumbs": "\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c extrafanart \u0432\u043d\u0443\u0442\u0440\u044c extrathumbs",
@@ -1046,11 +1046,11 @@
     "ViewTypeLiveTvRecordingGroups": "\u0417\u0430\u043f\u0438\u0441\u0438",
     "ViewTypeLiveTvRecordingGroups": "\u0417\u0430\u043f\u0438\u0441\u0438",
     "ViewTypeLiveTvChannels": "\u041a\u0430\u043d\u0430\u043b\u044b",
     "ViewTypeLiveTvChannels": "\u041a\u0430\u043d\u0430\u043b\u044b",
     "LabelAllowLocalAccessWithoutPassword": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f",
     "LabelAllowLocalAccessWithoutPassword": "\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0435\u0437 \u043f\u0430\u0440\u043e\u043b\u044f",
-    "LabelAllowLocalAccessWithoutPasswordHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438, \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u0432\u0430\u0448\u0435\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438.",
+    "LabelAllowLocalAccessWithoutPasswordHelp": "\u041f\u0440\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438, \u043f\u0430\u0440\u043e\u043b\u044c \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0432\u0430\u0448\u0435\u0439 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438.",
     "HeaderPassword": "\u041f\u0430\u0440\u043e\u043b\u044c",
     "HeaderPassword": "\u041f\u0430\u0440\u043e\u043b\u044c",
     "HeaderLocalAccess": "\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f",
     "HeaderLocalAccess": "\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f",
     "HeaderViewOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432",
     "HeaderViewOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u0430\u0441\u043f\u0435\u043a\u0442\u043e\u0432",
-    "LabelSelectUserViewOrder": "\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u044c\u0442\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 Media Browser",
+    "LabelSelectUserViewOrder": "\u0423\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u044c\u0442\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 Media Browser",
     "LabelMetadataRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445:",
     "LabelMetadataRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445:",
     "LabelImageRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432:",
     "LabelImageRefreshMode": "\u0420\u0435\u0436\u0438\u043c \u043f\u043e\u0434\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432:",
     "OptionDownloadMissingImages": "\u041f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432",
     "OptionDownloadMissingImages": "\u041f\u043e\u0434\u0433\u0440\u0443\u0437\u043a\u0430 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432",
@@ -1103,7 +1103,7 @@
     "LabelAirsBeforeEpisode": "\u041d-\u0440 \u044d\u043f\u0438\u0437\u043e\u0434\u0430 \u0434\u043b\u044f \u00abairs before\u00bb:",
     "LabelAirsBeforeEpisode": "\u041d-\u0440 \u044d\u043f\u0438\u0437\u043e\u0434\u0430 \u0434\u043b\u044f \u00abairs before\u00bb:",
     "LabelTreatImageAs": "\u0422\u0440\u0430\u043a\u0442\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043a\u0430\u043a:",
     "LabelTreatImageAs": "\u0422\u0440\u0430\u043a\u0442\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043a\u0430\u043a:",
     "LabelDisplayOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f:",
     "LabelDisplayOrder": "\u041f\u043e\u0440\u044f\u0434\u043e\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f:",
-    "LabelDisplaySpecialsWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0442\u0435\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0438 \u0432 \u044d\u0444\u0438\u0440",
+    "LabelDisplaySpecialsWithinSeasons": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0442\u0435\u0445 \u0441\u0435\u0437\u043e\u043d\u043e\u0432, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d\u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u043b\u0438 \u0432 \u044d\u0444\u0438\u0440",
     "HeaderCountries": "\u0421\u0442\u0440\u0430\u043d\u044b",
     "HeaderCountries": "\u0421\u0442\u0440\u0430\u043d\u044b",
     "HeaderGenres": "\u0416\u0430\u043d\u0440\u044b",
     "HeaderGenres": "\u0416\u0430\u043d\u0440\u044b",
     "HeaderPlotKeywords": "\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0441\u044e\u0436\u0435\u0442\u0430",
     "HeaderPlotKeywords": "\u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u0441\u044e\u0436\u0435\u0442\u0430",
@@ -1191,9 +1191,9 @@
     "LabelSelectInternetTrailersForCinemaMode": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b:",
     "LabelSelectInternetTrailersForCinemaMode": "\u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b:",
     "OptionUpcomingDvdMovies": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u043a \u043d\u043e\u0432\u044b\u043c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0444\u0438\u043b\u044c\u043c\u0430\u043c \u043d\u0430 DVD \u0438 BluRay",
     "OptionUpcomingDvdMovies": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u043a \u043d\u043e\u0432\u044b\u043c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0444\u0438\u043b\u044c\u043c\u0430\u043c \u043d\u0430 DVD \u0438 BluRay",
     "OptionUpcomingStreamingMovies": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u043a \u043d\u043e\u0432\u044b\u043c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0444\u0438\u043b\u044c\u043c\u0430\u043c \u043d\u0430 Netflix",
     "OptionUpcomingStreamingMovies": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u043a \u043d\u043e\u0432\u044b\u043c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0444\u0438\u043b\u044c\u043c\u0430\u043c \u043d\u0430 Netflix",
-    "LabelDisplayTrailersWithinMovieSuggestions": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u0441\u0440\u0435\u0434\u0438 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432",
+    "LabelDisplayTrailersWithinMovieSuggestions": "\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u044b \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u043b\u044c\u043c\u043e\u0432",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u0430\u043d\u0430\u043b\u0430 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043e\u0432",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a\u0430\u043d\u0430\u043b\u0430 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043e\u0432",
-    "CinemaModeConfigurationHelp2": "\u041e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430 \u0441\u0440\u0435\u0434\u0438 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.",
+    "CinemaModeConfigurationHelp2": "\u041e\u0431\u043e\u0441\u043e\u0431\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u044b \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a.",
     "LabelEnableCinemaMode": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "LabelEnableCinemaMode": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "HeaderCinemaMode": "\u0420\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "HeaderCinemaMode": "\u0420\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "HeaderWelcomeToMediaBrowserServerDashboard": "\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432 \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438 Media Browser",
     "HeaderWelcomeToMediaBrowserServerDashboard": "\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432 \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438 Media Browser",
@@ -1247,12 +1247,21 @@
     "MessageNoServersAvailableToConnect": "\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0435\u0433\u043e, \u043d\u0438\u0436\u0435, \u0438\u043b\u0438 \u0449\u0451\u043b\u043a\u043d\u0443\u0432 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u044d-\u043f\u043e\u0447\u0442\u0435.",
     "MessageNoServersAvailableToConnect": "\u041d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0434\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u0435 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u0443 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443, \u0442\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u043d\u044f\u043b\u0438 \u0435\u0433\u043e, \u043d\u0438\u0436\u0435, \u0438\u043b\u0438 \u0449\u0451\u043b\u043a\u043d\u0443\u0432 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u0432 \u044d-\u043f\u043e\u0447\u0442\u0435.",
     "TitleNewUser": "\u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c",
     "TitleNewUser": "\u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c",
     "ButtonConfigurePassword": "\u041d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c",
     "ButtonConfigurePassword": "\u041d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c",
-    "HeaderDashboardUserPassword": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.",
+    "HeaderDashboardUserPassword": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.",
     "HeaderLibraryAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435",
     "HeaderLibraryAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0435",
     "HeaderChannelAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043d\u0430\u043b\u0430\u043c",
     "HeaderChannelAccess": "\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043d\u0430\u043b\u0430\u043c",
     "HeaderLatestItems": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b",
     "HeaderLatestItems": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b",
     "LabelSelectLastestItemsFolders": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445",
     "LabelSelectLastestItemsFolders": "\u041e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043c\u0435\u0434\u0438\u0430\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u0432 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0445",
     "HeaderShareMediaFolders": "\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0430\u043c",
     "HeaderShareMediaFolders": "\u041e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0430\u043c",
     "MessageGuestSharingPermissionsHelp": "\u041c\u043d\u043e\u0433\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043f\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.",
     "MessageGuestSharingPermissionsHelp": "\u041c\u043d\u043e\u0433\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0433\u043e\u0441\u0442\u0435\u0439, \u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043f\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438.",
-    "HeaderInvitations": "\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f"
+    "HeaderInvitations": "\u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f",
+    "LabelForgotPasswordUsernameHelp": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435.",
+    "HeaderForgotPassword": "\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?",
+    "TitleForgotPassword": "\u0417\u0430\u0431\u044b\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c?",
+    "TitlePasswordReset": "\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f",
+    "LabelPasswordRecoveryPinCode": "PIN-\u043a\u043e\u0434:",
+    "HeaderPasswordReset": "\u0421\u0431\u0440\u043e\u0441 \u043f\u0430\u0440\u043e\u043b\u044f",
+    "HeaderParentalRatings": "\u0412\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
+    "HeaderVideoTypes": "\u0422\u0438\u043f\u044b \u0432\u0438\u0434\u0435\u043e",
+    "HeaderYears": "\u0413\u043e\u0434\u044b"
 }
 }

+ 1 - 0
MediaBrowser.Server.Implementations/Localization/Server/server.json

@@ -1237,6 +1237,7 @@
     "LabelConnectGuestUserNameHelp": "This is the username that your friend uses to sign in to the Media Browser website, or their email address.",
     "LabelConnectGuestUserNameHelp": "This is the username that your friend uses to sign in to the Media Browser website, or their email address.",
     "HeaderInviteUserHelp": "Sharing your media with friends is easier than ever before with Media Browser Connect.",
     "HeaderInviteUserHelp": "Sharing your media with friends is easier than ever before with Media Browser Connect.",
     "ButtonSendInvitation": "Send Invitation",
     "ButtonSendInvitation": "Send Invitation",
+    "HeaderSignInWithConnect":  "Sign in with Media Browser Connect",
     "HeaderGuests": "Guests",
     "HeaderGuests": "Guests",
     "HeaderLocalUsers": "Local Users",
     "HeaderLocalUsers": "Local Users",
     "HeaderPendingInvitations": "Pending Invitations",
     "HeaderPendingInvitations": "Pending Invitations",

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/sv.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/tr.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/vi.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/zh_CN.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 10 - 1
MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json

@@ -1254,5 +1254,14 @@
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "LabelSelectLastestItemsFolders": "Include media from the following sections in Latest Items",
     "HeaderShareMediaFolders": "Share Media Folders",
     "HeaderShareMediaFolders": "Share Media Folders",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
     "MessageGuestSharingPermissionsHelp": "Most features are initially unavailable to guests but can be enabled as needed.",
-    "HeaderInvitations": "Invitations"
+    "HeaderInvitations": "Invitations",
+    "LabelForgotPasswordUsernameHelp": "Enter your username, if you remember it.",
+    "HeaderForgotPassword": "Forgot Password",
+    "TitleForgotPassword": "Forgot Password",
+    "TitlePasswordReset": "Password Reset",
+    "LabelPasswordRecoveryPinCode": "Pin code:",
+    "HeaderPasswordReset": "Password Reset",
+    "HeaderParentalRatings": "Parental Ratings",
+    "HeaderVideoTypes": "Video Types",
+    "HeaderYears": "Years"
 }
 }

+ 0 - 3
MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj

@@ -165,9 +165,6 @@
     <None Include="MediaBrowser.MediaInfo.dll.config">
     <None Include="MediaBrowser.MediaInfo.dll.config">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
     </None>
-    <None Include="mediabrowser.sh">
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
-    </None>
     <None Include="packages.config" />
     <None Include="packages.config" />
     <None Include="System.Data.SQLite.dll.config">
     <None Include="System.Data.SQLite.dll.config">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>

+ 2 - 2
MediaBrowser.Server.Mono/Native/NativeApp.cs

@@ -40,7 +40,7 @@ namespace MediaBrowser.Server.Mono.Native
         {
         {
             get
             get
             {
             {
-                return MainClass.CanSelfRestart;
+                return false;
             }
             }
         }
         }
 
 
@@ -52,7 +52,7 @@ namespace MediaBrowser.Server.Mono.Native
         {
         {
             get
             get
             {
             {
-                return MainClass.CanSelfUpdate;
+                return false;
             }
             }
         }
         }
 
 

+ 2 - 2
MediaBrowser.Server.Mono/Networking/NetworkManager.cs

@@ -28,9 +28,9 @@ namespace MediaBrowser.Server.Mono.Networking
         }
         }
 
 
         /// <summary>
         /// <summary>
-        /// Gets a list of network devices
+        /// Gets available devices within the domain
         /// </summary>
         /// </summary>
-        /// PC's in the Domain</returns>
+        /// <returns>PC's in the Domain</returns>
 		public IEnumerable<FileSystemEntryInfo> GetNetworkDevices()
 		public IEnumerable<FileSystemEntryInfo> GetNetworkDevices()
         {
         {
 			return new List<FileSystemEntryInfo> ();
 			return new List<FileSystemEntryInfo> ();

+ 7 - 60
MediaBrowser.Server.Mono/Program.cs

@@ -1,4 +1,3 @@
-using MediaBrowser.Common.Configuration;
 using MediaBrowser.Common.Implementations.IO;
 using MediaBrowser.Common.Implementations.IO;
 using MediaBrowser.Common.Implementations.Logging;
 using MediaBrowser.Common.Implementations.Logging;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Logging;
@@ -25,12 +24,7 @@ namespace MediaBrowser.Server.Mono
 
 
 		public static void Main (string[] args)
 		public static void Main (string[] args)
 		{
 		{
-			//GetEntryAssembly is empty when running from a mkbundle package
-			#if MONOMKBUNDLE
-			var applicationPath = GetExecutablePath();
-			#else
-			var applicationPath = Assembly.GetEntryAssembly ().Location;
-			#endif
+            var applicationPath = Assembly.GetEntryAssembly().Location;
 			
 			
 			var options = new StartupOptions();
 			var options = new StartupOptions();
 
 
@@ -45,7 +39,7 @@ namespace MediaBrowser.Server.Mono
 
 
 			var logger = _logger = logManager.GetLogger("Main");
 			var logger = _logger = logManager.GetLogger("Main");
 
 
-			BeginLog(logger, appPaths);
+            ApplicationHost.LogEnvironmentInfo(logger, appPaths, true);
 
 
 			AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
 			AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
 
 
@@ -77,40 +71,16 @@ namespace MediaBrowser.Server.Mono
 			return new ServerApplicationPaths(programDataPath, applicationPath);
 			return new ServerApplicationPaths(programDataPath, applicationPath);
 		}
 		}
 
 
-		/// <summary>
-		/// Determines whether this instance [can self restart].
-		/// </summary>
-		/// <returns><c>true</c> if this instance [can self restart]; otherwise, <c>false</c>.</returns>
-		public static bool CanSelfRestart
-		{
-			get
-			{
-				return false;
-			}
-		}
+		private static readonly RemoteCertificateValidationCallback IgnoreCertificates = new RemoteCertificateValidationCallback(delegate { return true; });
 
 
-		/// <summary>
-		/// Gets a value indicating whether this instance can self update.
-		/// </summary>
-		/// <value><c>true</c> if this instance can self update; otherwise, <c>false</c>.</value>
-		public static bool CanSelfUpdate
-		{
-			get
-			{
-				return false;
-			}
-		}
-
-		private static RemoteCertificateValidationCallback _ignoreCertificates = new RemoteCertificateValidationCallback(delegate { return true; });
-
-		private static TaskCompletionSource<bool> _applicationTaskCompletionSource = new TaskCompletionSource<bool>();
+		private static readonly TaskCompletionSource<bool> ApplicationTaskCompletionSource = new TaskCompletionSource<bool>();
 
 
 		private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, StartupOptions options)
 		private static void RunApplication(ServerApplicationPaths appPaths, ILogManager logManager, StartupOptions options)
 		{
 		{
 			SystemEvents.SessionEnding += SystemEvents_SessionEnding;
 			SystemEvents.SessionEnding += SystemEvents_SessionEnding;
 
 
 			// Allow all https requests
 			// Allow all https requests
-			ServicePointManager.ServerCertificateValidationCallback = _ignoreCertificates;
+			ServicePointManager.ServerCertificateValidationCallback = IgnoreCertificates;
 
 
 		    var fileSystem = new CommonFileSystem(logManager.GetLogger("FileSystem"), false, true);
 		    var fileSystem = new CommonFileSystem(logManager.GetLogger("FileSystem"), false, true);
 
 
@@ -135,7 +105,7 @@ namespace MediaBrowser.Server.Mono
 			task = _appHost.RunStartupTasks();
 			task = _appHost.RunStartupTasks();
 			Task.WaitAll (task);
 			Task.WaitAll (task);
 
 
-			task = _applicationTaskCompletionSource.Task;
+			task = ApplicationTaskCompletionSource.Task;
 
 
 			Task.WaitAll (task);
 			Task.WaitAll (task);
 		}
 		}
@@ -153,16 +123,6 @@ namespace MediaBrowser.Server.Mono
 			}
 			}
 		}
 		}
 
 
-		/// <summary>
-		/// Begins the log.
-		/// </summary>
-		/// <param name="logger">The logger.</param>
-		private static void BeginLog(ILogger logger, IApplicationPaths appPaths)
-        {
-            logger.Info("Media Browser Server started");
-            ApplicationHost.LogEnvironmentInfo(logger, appPaths);
-        }
-
 		/// <summary>
 		/// <summary>
 		/// Handles the UnhandledException event of the CurrentDomain control.
 		/// Handles the UnhandledException event of the CurrentDomain control.
 		/// </summary>
 		/// </summary>
@@ -209,7 +169,7 @@ namespace MediaBrowser.Server.Mono
 
 
 		public static void Shutdown()
 		public static void Shutdown()
 		{
 		{
-			_applicationTaskCompletionSource.SetResult (true);
+			ApplicationTaskCompletionSource.SetResult (true);
 		}
 		}
 
 
 		public static void Restart()
 		public static void Restart()
@@ -220,19 +180,6 @@ namespace MediaBrowser.Server.Mono
 			// Right now this method will just shutdown, but not restart
 			// Right now this method will just shutdown, but not restart
 			Shutdown ();
 			Shutdown ();
 		}
 		}
-
-		// Return the running process path
-		#if MONOMKBUNDLE
-		public static string GetExecutablePath() 
-		{ 
-			var builder = new StringBuilder (8192); 
-			if (Syscall.readlink("/proc/self/exe", builder) >= 0)
-				return builder.ToString (); 
-			else 
-				return null; 
-		}
-		#endif
-
 	}
 	}
 
 
 	class NoCheckCertificatePolicy : ICertificatePolicy
 	class NoCheckCertificatePolicy : ICertificatePolicy

+ 0 - 2
MediaBrowser.Server.Mono/mediabrowser.sh

@@ -1,2 +0,0 @@
-#!/bin/sh
-mono MediaBrowser.Server.Mono.exe

+ 14 - 0
MediaBrowser.Server.Startup.Common/ApplicationHost.cs

@@ -253,6 +253,19 @@ namespace MediaBrowser.Server.Startup.Common
             NativeApp = nativeApp;
             NativeApp = nativeApp;
         }
         }
 
 
+        private Version _version;
+        /// <summary>
+        /// Gets the current application version
+        /// </summary>
+        /// <value>The application version.</value>
+        public override Version ApplicationVersion
+        {
+            get
+            {
+                return _version ?? (_version = NativeApp.GetType().Assembly.GetName().Version);
+            }
+        }
+
         public override bool IsRunningAsService
         public override bool IsRunningAsService
         {
         {
             get { return NativeApp.IsRunningAsService; }
             get { return NativeApp.IsRunningAsService; }
@@ -327,6 +340,7 @@ namespace MediaBrowser.Server.Startup.Common
             new PlaylistImages(ServerConfigurationManager).Run();
             new PlaylistImages(ServerConfigurationManager).Run();
             new RenameXbmcOptions(ServerConfigurationManager).Run();
             new RenameXbmcOptions(ServerConfigurationManager).Run();
             new RenameXmlOptions(ServerConfigurationManager).Run();
             new RenameXmlOptions(ServerConfigurationManager).Run();
+            new DeprecatePlugins(ApplicationPaths).Run();
         }
         }
 
 
         /// <summary>
         /// <summary>

+ 2 - 1
MediaBrowser.Server.Startup.Common/INativeApp.cs

@@ -1,4 +1,5 @@
-using MediaBrowser.Common.Net;
+using System;
+using MediaBrowser.Common.Net;
 using MediaBrowser.Model.Logging;
 using MediaBrowser.Model.Logging;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Reflection;
 using System.Reflection;

+ 2 - 1
MediaBrowser.Server.Startup.Common/MediaBrowser.Server.Startup.Common.csproj

@@ -24,7 +24,7 @@
     <WarningLevel>4</WarningLevel>
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
+    <DebugType>None</DebugType>
     <Optimize>true</Optimize>
     <Optimize>true</Optimize>
     <OutputPath>bin\Release\</OutputPath>
     <OutputPath>bin\Release\</OutputPath>
     <DefineConstants>TRACE</DefineConstants>
     <DefineConstants>TRACE</DefineConstants>
@@ -60,6 +60,7 @@
     <Compile Include="FFMpeg\FFMpegDownloadInfo.cs" />
     <Compile Include="FFMpeg\FFMpegDownloadInfo.cs" />
     <Compile Include="FFMpeg\FFMpegInfo.cs" />
     <Compile Include="FFMpeg\FFMpegInfo.cs" />
     <Compile Include="INativeApp.cs" />
     <Compile Include="INativeApp.cs" />
+    <Compile Include="Migrations\DeprecatePlugins.cs" />
     <Compile Include="Migrations\IVersionMigration.cs" />
     <Compile Include="Migrations\IVersionMigration.cs" />
     <Compile Include="Migrations\MigrateUserFolders.cs" />
     <Compile Include="Migrations\MigrateUserFolders.cs" />
     <Compile Include="Migrations\PlaylistImages.cs" />
     <Compile Include="Migrations\PlaylistImages.cs" />

+ 32 - 0
MediaBrowser.Server.Startup.Common/Migrations/DeprecatePlugins.cs

@@ -0,0 +1,32 @@
+using MediaBrowser.Controller;
+using System.IO;
+
+namespace MediaBrowser.Server.Startup.Common.Migrations
+{
+    public class DeprecatePlugins : IVersionMigration
+    {
+        private readonly IServerApplicationPaths _appPaths;
+
+        public DeprecatePlugins(IServerApplicationPaths appPaths)
+        {
+            _appPaths = appPaths;
+        }
+
+        public void Run()
+        {
+            RemovePlugin("MediaBrowser.Plugins.LocalTrailers.dll");
+        }
+
+        private void RemovePlugin(string filename)
+        {
+            try
+            {
+                File.Delete(Path.Combine(_appPaths.PluginsPath, filename));
+            }
+            catch
+            {
+                
+            }
+        }
+    }
+}

+ 14 - 35
MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj

@@ -150,6 +150,18 @@
     </EmbeddedResource>
     </EmbeddedResource>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
+    <Content Include="..\Installation\MediaBrowser.InstallUtil.dll">
+      <Link>MediaBrowser.InstallUtil.dll</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\Installation\MediaBrowser.Uninstaller.exe">
+      <Link>MediaBrowser.Uninstaller.exe</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="..\Installation\MediaBrowser.Updater.exe">
+      <Link>MediaBrowser.Updater.exe</Link>
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\x64\SQLite.Interop.dll">
     <Content Include="..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\x64\SQLite.Interop.dll">
       <Link>x64\SQLite.Interop.dll</Link>
       <Link>x64\SQLite.Interop.dll</Link>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
@@ -225,35 +237,8 @@
   </ItemGroup>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
   <PropertyGroup>
-    <PostBuildEvent>if $(ConfigurationName) == Release (
-rmdir "$(SolutionDir)..\Deploy\Server\System" /s /q
-mkdir "$(SolutionDir)..\Deploy\Server\System"
-rmdir "$(SolutionDir)..\Deploy\Server\Pismo" /s /q
-xcopy "$(TargetDir)$(TargetFileName)" "$(SolutionDir)..\Deploy\Server\System\" /y
-xcopy "$(SolutionDir)Installation\MediaBrowser.Uninstaller.exe.config" "$(SolutionDir)..\Deploy\Server\System\" /y
-xcopy "$(SolutionDir)Installation\MediaBrowser.Uninstaller.exe" "$(SolutionDir)..\Deploy\Server\System\" /y
-xcopy "$(SolutionDir)Installation\MediaBrowser.InstallUtil.dll" "$(SolutionDir)..\Deploy\Server\System\" /y
-xcopy "$(SolutionDir)Installation\MediaBrowser.Updater.exe" "$(SolutionDir)..\Deploy\Server\System\" /y
-
-mkdir "$(SolutionDir)..\Deploy\Server\System\swagger-ui"
-xcopy "$(TargetDir)swagger-ui" "$(SolutionDir)..\Deploy\Server\System\swagger-ui" /y /s
-
-xcopy "$(TargetDir)$(TargetFileName).config" "$(SolutionDir)..\Deploy\Server\System\" /y
-
-xcopy "$(TargetDir)*.dll" "$(SolutionDir)..\Deploy\Server\System" /y
-
-mkdir "$(SolutionDir)..\Deploy\Server\System\dashboard-ui"
-xcopy "$(TargetDir)dashboard-ui" "$(SolutionDir)..\Deploy\Server\System\dashboard-ui" /y /s
-
-mkdir "$(SolutionDir)..\Deploy\Server\System\x86"
-xcopy "$(TargetDir)x86" "$(SolutionDir)..\Deploy\Server\System\x86" /y /s
-
-mkdir "$(SolutionDir)..\Deploy\Server\System\x64"
-xcopy "$(TargetDir)x64" "$(SolutionDir)..\Deploy\Server\System\x64" /y /s
-
-del "$(SolutionDir)..\Deploy\MBServer.zip"
-"$(SolutionDir)ThirdParty\7zip\7za" a -mx9 "$(SolutionDir)..\Deploy\MBServer.zip" "$(SolutionDir)..\Deploy\Server\*"
-)</PostBuildEvent>
+    <PostBuildEvent>
+    </PostBuildEvent>
   </PropertyGroup>
   </PropertyGroup>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
        Other similar extension points exist, see Microsoft.Common.targets.
@@ -262,11 +247,5 @@ del "$(SolutionDir)..\Deploy\MBServer.zip"
   <Target Name="AfterBuild">
   <Target Name="AfterBuild">
   </Target>
   </Target>
   -->
   -->
-  <Target Name="AfterBuild">
-    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
-      <Output TaskParameter="Assemblies" ItemName="CurrentAssembly" />
-    </GetAssemblyIdentity>
-    <Exec Command="copy &quot;$(SolutionDir)..\Deploy\MBServer.zip&quot;  &quot;$(SolutionDir)..\Deploy\MBServer_%(CurrentAssembly.Version).zip&quot; /y" Condition="'$(ConfigurationName)' == 'Release'" />
-  </Target>
   <Import Project="..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\System.Data.SQLite.Core.targets')" />
   <Import Project="..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.94.0\build\net45\System.Data.SQLite.Core.targets')" />
 </Project>
 </Project>

+ 4 - 4
MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs

@@ -1105,19 +1105,19 @@ namespace MediaBrowser.XbmcMetadata.Parsers
                                 {
                                 {
                                     var val = reader.ReadElementContentAsString();
                                     var val = reader.ReadElementContentAsString();
 
 
-                                    if (string.Equals("HSBS", val, StringComparison.CurrentCulture))
+                                    if (string.Equals("HSBS", val, StringComparison.OrdinalIgnoreCase))
                                     {
                                     {
                                         video.Video3DFormat = Video3DFormat.HalfSideBySide;
                                         video.Video3DFormat = Video3DFormat.HalfSideBySide;
                                     }
                                     }
-                                    else if (string.Equals("HTAB", val, StringComparison.CurrentCulture))
+                                    else if (string.Equals("HTAB", val, StringComparison.OrdinalIgnoreCase))
                                     {
                                     {
                                         video.Video3DFormat = Video3DFormat.HalfTopAndBottom;
                                         video.Video3DFormat = Video3DFormat.HalfTopAndBottom;
                                     }
                                     }
-                                    else if (string.Equals("FTAB", val, StringComparison.CurrentCulture))
+                                    else if (string.Equals("FTAB", val, StringComparison.OrdinalIgnoreCase))
                                     {
                                     {
                                         video.Video3DFormat = Video3DFormat.FullTopAndBottom;
                                         video.Video3DFormat = Video3DFormat.FullTopAndBottom;
                                     }
                                     }
-                                    else if (string.Equals("FSBS", val, StringComparison.CurrentCulture))
+                                    else if (string.Equals("FSBS", val, StringComparison.OrdinalIgnoreCase))
                                     {
                                     {
                                         video.Video3DFormat = Video3DFormat.FullSideBySide;
                                         video.Video3DFormat = Video3DFormat.FullSideBySide;
                                     }
                                     }

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.507</version>
+        <version>3.0.509</version>
         <title>MediaBrowser.Common.Internal</title>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.507" />
+            <dependency id="MediaBrowser.Common" version="3.0.509" />
             <dependency id="NLog" version="3.1.0.0" />
             <dependency id="NLog" version="3.1.0.0" />
             <dependency id="SimpleInjector" version="2.6.1" />
             <dependency id="SimpleInjector" version="2.6.1" />
             <dependency id="sharpcompress" version="0.10.2" />
             <dependency id="sharpcompress" version="0.10.2" />

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common</id>
         <id>MediaBrowser.Common</id>
-        <version>3.0.507</version>
+        <version>3.0.509</version>
         <title>MediaBrowser.Common</title>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>

+ 1 - 1
Nuget/MediaBrowser.Model.Signed.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Model.Signed</id>
         <id>MediaBrowser.Model.Signed</id>
-        <version>3.0.507</version>
+        <version>3.0.509</version>
         <title>MediaBrowser.Model - Signed Edition</title>
         <title>MediaBrowser.Model - Signed Edition</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Server.Core</id>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.507</version>
+        <version>3.0.509</version>
         <title>Media Browser.Server.Core</title>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.507" />
+            <dependency id="MediaBrowser.Common" version="3.0.509" />
         </dependencies>
         </dependencies>
     </metadata>
     </metadata>
     <files>
     <files>