Browse Source

add connection manager interface

Luke Pulverenti 10 years ago
parent
commit
cd8db6fa54
40 changed files with 240 additions and 23 deletions
  1. 9 0
      MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj
  2. 3 0
      MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj
  3. 23 0
      MediaBrowser.Model/ApiClient/ConnectionResult.cs
  4. 13 1
      MediaBrowser.Model/ApiClient/IApiClient.cs
  5. 62 0
      MediaBrowser.Model/ApiClient/IConnectionManager.cs
  6. 23 0
      MediaBrowser.Model/ApiClient/ServerInfo.cs
  7. 1 1
      MediaBrowser.Model/Dto/BaseItemDto.cs
  8. 3 0
      MediaBrowser.Model/MediaBrowser.Model.csproj
  9. 10 9
      MediaBrowser.Server.Implementations/Library/SearchEngine.cs
  10. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/ar.json
  11. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/ca.json
  12. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/cs.json
  13. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/da.json
  14. 6 3
      MediaBrowser.Server.Implementations/Localization/Server/de.json
  15. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/el.json
  16. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
  17. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/en_US.json
  18. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/es.json
  19. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
  20. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/fr.json
  21. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/he.json
  22. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/hr.json
  23. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/it.json
  24. 6 3
      MediaBrowser.Server.Implementations/Localization/Server/kk.json
  25. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/ko.json
  26. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/ms.json
  27. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/nb.json
  28. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/nl.json
  29. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/pl.json
  30. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
  31. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
  32. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/ru.json
  33. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/sv.json
  34. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/tr.json
  35. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/vi.json
  36. 3 0
      MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
  37. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  38. 1 1
      Nuget/MediaBrowser.Common.nuspec
  39. 1 1
      Nuget/MediaBrowser.Model.Signed.nuspec
  40. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 9 - 0
MediaBrowser.Model.Portable/MediaBrowser.Model.Portable.csproj

@@ -74,6 +74,9 @@
     <Compile Include="..\MediaBrowser.Model\ApiClient\ApiClientExtensions.cs">
       <Link>ApiClient\ApiClientExtensions.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\ApiClient\ConnectionResult.cs">
+      <Link>ApiClient\ConnectionResult.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\ApiClient\GeneralCommandEventArgs.cs">
       <Link>ApiClient\GeneralCommandEventArgs.cs</Link>
     </Compile>
@@ -83,12 +86,18 @@
     <Compile Include="..\MediaBrowser.Model\ApiClient\IApiClient.cs">
       <Link>ApiClient\IApiClient.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\ApiClient\IConnectionManager.cs">
+      <Link>ApiClient\IConnectionManager.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\ApiClient\IServerEvents.cs">
       <Link>ApiClient\IServerEvents.cs</Link>
     </Compile>
     <Compile Include="..\MediaBrowser.Model\ApiClient\ServerDiscoveryInfo.cs">
       <Link>ApiClient\ServerDiscoveryInfo.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\ApiClient\ServerInfo.cs">
+      <Link>ApiClient\ServerInfo.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\ApiClient\SessionUpdatesEventArgs.cs">
       <Link>ApiClient\SessionUpdatesEventArgs.cs</Link>
     </Compile>

+ 3 - 0
MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj

@@ -67,6 +67,9 @@
     <Compile Include="..\MediaBrowser.Model\ApiClient\ServerDiscoveryInfo.cs">
       <Link>ApiClient\ServerDiscoveryInfo.cs</Link>
     </Compile>
+    <Compile Include="..\MediaBrowser.Model\ApiClient\ServerInfo.cs">
+      <Link>ApiClient\ServerInfo.cs</Link>
+    </Compile>
     <Compile Include="..\MediaBrowser.Model\ApiClient\SessionUpdatesEventArgs.cs">
       <Link>ApiClient\SessionUpdatesEventArgs.cs</Link>
     </Compile>

+ 23 - 0
MediaBrowser.Model/ApiClient/ConnectionResult.cs

@@ -0,0 +1,23 @@
+
+namespace MediaBrowser.Model.ApiClient
+{
+    public class ConnectionResult
+    {
+        public ConnectionState State { get; set; }
+        public ServerInfo ServerInfo { get; set; }
+        public IApiClient ApiClient { get; set; }
+    }
+
+    public enum ConnectionState
+    {
+        Unavailable = 1,
+        ServerSignIn = 2,
+        SignedIn = 3
+    }
+
+    public enum ConnectionMode
+    {
+        Local = 1,
+        Remote = 2
+    }
+}

+ 13 - 1
MediaBrowser.Model/ApiClient/IApiClient.cs

@@ -25,7 +25,7 @@ namespace MediaBrowser.Model.ApiClient
     /// <summary>
     /// Interface IApiClient
     /// </summary>
-    public interface IApiClient : IDisposable
+    public interface IApiClient : IServerEvents, IDisposable
     {
         /// <summary>
         /// Occurs when [HTTP response received].
@@ -1288,5 +1288,17 @@ namespace MediaBrowser.Model.ApiClient
         /// <exception cref="ArgumentNullException">options</exception>
         [Obsolete]
         string GetHlsVideoStreamUrl(VideoStreamOptions options);
+
+        /// <summary>
+        /// Sends the context message asynchronous.
+        /// </summary>
+        /// <param name="itemType">Type of the item.</param>
+        /// <param name="itemId">The item identifier.</param>
+        /// <param name="itemName">Name of the item.</param>
+        /// <param name="context">The context.</param>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <returns>Task.</returns>
+        Task SendContextMessageAsync(string itemType, string itemId, string itemName, string context,
+            CancellationToken cancellationToken);
     }
 }

+ 62 - 0
MediaBrowser.Model/ApiClient/IConnectionManager.cs

@@ -0,0 +1,62 @@
+using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Events;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Model.ApiClient
+{
+    public interface IConnectionManager
+    {
+        /// <summary>
+        /// Occurs when [connected].
+        /// </summary>
+        event EventHandler<GenericEventArgs<ConnectionResult>> Connected;
+
+        /// <summary>
+        /// Gets the API client.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <returns>MediaBrowser.Model.ApiClient.IApiClient.</returns>
+        IApiClient GetApiClient(BaseItemDto item);
+
+        /// <summary>
+        /// Connects the specified cancellation token.
+        /// </summary>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <returns>Task&lt;ConnectionResult&gt;.</returns>
+        Task<ConnectionResult> Connect(CancellationToken cancellationToken);
+        
+        /// <summary>
+        /// Connects the specified server.
+        /// </summary>
+        /// <param name="server">The server.</param>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <returns>Task&lt;ConnectionResult&gt;.</returns>
+        Task<ConnectionResult> Connect(ServerInfo server, CancellationToken cancellationToken);
+
+        /// <summary>
+        /// Connects the specified server.
+        /// </summary>
+        /// <param name="address">The address.</param>
+        /// <param name="cancellationToken">The cancellation token.</param>
+        /// <returns>Task&lt;ConnectionResult&gt;.</returns>
+        Task<ConnectionResult> Connect(string address, CancellationToken cancellationToken);
+
+        /// <summary>
+        /// Logouts this instance.
+        /// </summary>
+        /// <returns>Task&lt;ConnectionResult&gt;.</returns>
+        Task<ConnectionResult> Logout();
+
+        /// <summary>
+        /// Authenticates the specified server.
+        /// </summary>
+        /// <param name="server">The server.</param>
+        /// <param name="username">The username.</param>
+        /// <param name="hash">The hash.</param>
+        /// <param name="rememberLogin">if set to <c>true</c> [remember login].</param>
+        /// <returns>Task.</returns>
+        Task Authenticate(ServerInfo server, string username, byte[] hash, bool rememberLogin);
+    }
+}

+ 23 - 0
MediaBrowser.Model/ApiClient/ServerInfo.cs

@@ -0,0 +1,23 @@
+using System;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Model.ApiClient
+{
+    public class ServerInfo
+    {
+        public String Name { get; set; }
+        public String Id { get; set; }
+        public String LocalAddress { get; set; }
+        public String RemoteAddress { get; set; }
+        public String UserId { get; set; }
+        public String AccessToken { get; set; }
+        public List<string> MacAddresses { get; set; }
+
+        public ServerInfo()
+        {
+            MacAddresses = new List<string>();
+
+            LocalAddress = "http://localhost:8096";
+        }
+    }
+}

+ 1 - 1
MediaBrowser.Model/Dto/BaseItemDto.cs

@@ -29,7 +29,7 @@ namespace MediaBrowser.Model.Dto
         /// </summary>
         /// <value>The id.</value>
         public string Id { get; set; }
-
+        
         /// <summary>
         /// Gets or sets the playlist item identifier.
         /// </summary>

+ 3 - 0
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -60,12 +60,15 @@
       <Link>Properties\SharedVersion.cs</Link>
     </Compile>
     <Compile Include="Activity\ActivityLogEntry.cs" />
+    <Compile Include="ApiClient\ConnectionResult.cs" />
     <Compile Include="ApiClient\HttpResponseEventArgs.cs" />
     <Compile Include="ApiClient\IApiClient.cs" />
     <Compile Include="ApiClient\ApiClientExtensions.cs" />
+    <Compile Include="ApiClient\IConnectionManager.cs" />
     <Compile Include="ApiClient\IServerEvents.cs" />
     <Compile Include="ApiClient\GeneralCommandEventArgs.cs" />
     <Compile Include="ApiClient\ServerDiscoveryInfo.cs" />
+    <Compile Include="ApiClient\ServerInfo.cs" />
     <Compile Include="ApiClient\SessionUpdatesEventArgs.cs" />
     <Compile Include="Branding\BrandingOptions.cs" />
     <Compile Include="Channels\ChannelFeatures.cs" />

+ 10 - 9
MediaBrowser.Server.Implementations/Library/SearchEngine.cs

@@ -33,7 +33,7 @@ namespace MediaBrowser.Server.Implementations.Library
         {
             IEnumerable<BaseItem> inputItems;
 
-            if (string.IsNullOrEmpty(query.UserId))
+            if (string.IsNullOrWhiteSpace(query.UserId))
             {
                 inputItems = _libraryManager.RootFolder.RecursiveChildren;
             }
@@ -91,7 +91,7 @@ namespace MediaBrowser.Server.Implementations.Library
         {
             var searchTerm = query.SearchTerm;
 
-            if (string.IsNullOrEmpty(searchTerm))
+            if (string.IsNullOrWhiteSpace(searchTerm))
             {
                 throw new ArgumentNullException("searchTerm");
             }
@@ -105,7 +105,7 @@ namespace MediaBrowser.Server.Implementations.Library
             if (query.IncludeMedia)
             {
                 // Add search hints based on item name
-                hints.AddRange(items.Where(i => !string.IsNullOrEmpty(i.Name)).Select(item =>
+                hints.AddRange(items.Where(i => !string.IsNullOrWhiteSpace(i.Name)).Select(item =>
                 {
                     var index = GetIndex(item.Name, searchTerm, terms);
 
@@ -118,6 +118,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 // Find artists
                 var artists = items.OfType<Audio>()
                     .SelectMany(i => i.AllArtists)
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -146,7 +147,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 // Find genres, from non-audio items
                 var genres = items.Where(i => !(i is IHasMusicGenres) && !(i is Game))
                     .SelectMany(i => i.Genres)
-                    .Where(i => !string.IsNullOrEmpty(i))
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -172,7 +173,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 // Find music genres
                 var musicGenres = items.Where(i => i is IHasMusicGenres)
                     .SelectMany(i => i.Genres)
-                    .Where(i => !string.IsNullOrEmpty(i))
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -198,7 +199,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 // Find music genres
                 var gameGenres = items.OfType<Game>()
                     .SelectMany(i => i.Genres)
-                    .Where(i => !string.IsNullOrEmpty(i))
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -226,7 +227,7 @@ namespace MediaBrowser.Server.Implementations.Library
             {
                 // Find studios
                 var studios = items.SelectMany(i => i.Studios)
-                    .Where(i => !string.IsNullOrEmpty(i))
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -255,7 +256,7 @@ namespace MediaBrowser.Server.Implementations.Library
                 // Find persons
                 var persons = items.SelectMany(i => i.People)
                     .Select(i => i.Name)
-                    .Where(i => !string.IsNullOrEmpty(i))
+                    .Where(i => !string.IsNullOrWhiteSpace(i))
                     .Distinct(StringComparer.OrdinalIgnoreCase)
                     .ToList();
 
@@ -297,7 +298,7 @@ namespace MediaBrowser.Server.Implementations.Library
         /// <returns>System.Int32.</returns>
         private Tuple<string, int> GetIndex(string input, string searchInput, List<string> searchWords)
         {
-            if (string.IsNullOrEmpty(input))
+            if (string.IsNullOrWhiteSpace(input))
             {
                 throw new ArgumentNullException("input");
             }

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/ar.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "\u062a\u0627\u0631\u064a\u062e \u0627\u0644\u0639\u0631\u0636",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/ca.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/cs.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Rodi\u010dovsk\u00e9 hodnocen\u00ed",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Datum premi\u00e9ry",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Z\u00e1kladn\u00ed",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Pokro\u010dil\u00e9",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Stav",
     "OptionContinuing": "Pokra\u010dov\u00e1n\u00ed",
     "OptionEnded": "Ukon\u010deno",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/da.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Pr\u00e6miere Dato",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Simpel",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanceret",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Fors\u00e6ttes",
     "OptionEnded": "F\u00e6rdig",

+ 6 - 3
MediaBrowser.Server.Implementations/Localization/Server/de.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Altersfreigabe",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Ben\u00f6tigt die Installation des Trailer Channels.",
     "OptionPremiereDate": "Premiere",
+    "CinemaModeConfigurationHelp2": "Einzelne Benutzer erhalten die M\u00f6glichkeit den Kino-Modus in den eigenen Einstellungen zu deaktivieren.",
     "TabBasic": "Einfach",
+    "LabelEnableCinemaMode": "Aktiviere den Kino-Modus",
     "TabAdvanced": "Erweitert",
+    "HeaderCinemaMode": "Kino-Modus",
     "HeaderStatus": "Status",
     "OptionContinuing": "Fortdauernd",
     "OptionEnded": "Beendent",
@@ -403,7 +406,7 @@
     "TabAbout": "\u00dcber",
     "TabSupporterKey": "Unterst\u00fctzerschl\u00fcssel",
     "TabBecomeSupporter": "Werde ein Unterst\u00fctzer",
-    "MediaBrowserHasCommunity": "Media Browser hat eine gedeihend Gemeinschalft von Nutzern und Unterst\u00fctzern.",
+    "MediaBrowserHasCommunity": "Media Browser hat eine wachsende Gemeinschaft an Nutzern und Unterst\u00fctzern.",
     "CheckoutKnowledgeBase": "Verwende die Knowledge Base als Hilfe, um das Optimum aus Media Browser herauszuholen.",
     "SearchKnowledgeBase": "Durchsuche die Knowledge Base",
     "VisitTheCommunity": "Besuche die Community",
@@ -664,7 +667,7 @@
     "LabelMinResumeDuration": "Minimale Dauer f\u00fcr Wiederaufnahme (Sekunden):",
     "LabelMinResumePercentageHelp": "Titel werden als \"nicht abgespielt\" eingetragen, wenn sie vor dieser Zeit gestoppt werden",
     "LabelMaxResumePercentageHelp": "Titel werden als \"vollst\u00e4ndig abgespielt\" eingetragen, wenn sie nach dieser Zeit gestoppt werden",
-    "LabelMinResumeDurationHelp": "Titel k\u00fcrzer als dies werden nicht fortsetzbar sein",
+    "LabelMinResumeDurationHelp": "Titel die k\u00fcrzer als dieser Wert sind, werden nicht fortsetzbar sein",
     "TitleAutoOrganize": "automatische Sortierung",
     "TabActivityLog": "Aktivit\u00e4tsverlauf",
     "HeaderName": "Name",
@@ -1132,7 +1135,7 @@
     "ButtonSync": "Synchronisieren",
     "TabScheduledTasks": "Geplante Aufgaben",
     "HeaderChapters": "Kapitel",
-    "HeaderResumeSettings": "Einstellungen zur\u00fccksetzen",
+    "HeaderResumeSettings": "Wiederaufnahme Einstellungen",
     "TabSync": "Synchronisieren",
     "TitleUsers": "Benutzer",
     "LabelProtocol": "Protokoll: ",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/el.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/en_GB.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/en_US.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/es.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Clasificaci\u00f3n parental",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Fecha de estreno",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "B\u00e1sico",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avanzado",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Estado",
     "OptionContinuing": "Continuando",
     "OptionEnded": "Finalizado",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/es_MX.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Clasificaci\u00f3n Parental",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requiere la instalaci\u00f3n del canal de avances.",
     "OptionPremiereDate": "Fecha de Estreno",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "B\u00e1sico",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avanzado",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Estado",
     "OptionContinuing": "Continuando",
     "OptionEnded": "Finalizado",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/fr.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Note d'\u00e9valuation de contr\u00f4le parental",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Date de la premi\u00e8re",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Standard",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avanc\u00e9",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "\u00c9tat",
     "OptionContinuing": "En continuation",
     "OptionEnded": "Termin\u00e9",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/he.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "\u05d3\u05d9\u05e8\u05d5\u05d2 \u05d1\u05e7\u05e8\u05ea \u05d4\u05d5\u05e8\u05d9\u05dd",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "\u05ea\u05d0\u05e8\u05d9\u05da \u05e9\u05d9\u05d3\u05d5\u05e8 \u05e8\u05d0\u05e9\u05d5\u05df",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "\u05d1\u05e1\u05d9\u05e1\u05d9",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "\u05de\u05ea\u05e7\u05d3\u05dd",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "\u05de\u05e6\u05d1",
     "OptionContinuing": "\u05de\u05de\u05e9\u05d9\u05da",
     "OptionEnded": "\u05d4\u05e1\u05ea\u05d9\u05d9\u05dd",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/hr.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Roditeljska ocjena",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Datum premijere",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Osnovno",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Napredno",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Nastavlja se",
     "OptionEnded": "Zavr\u0161eno",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/it.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Voto Genitori",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Richiede l'installazione del canale Trailer.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Base",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avanzato",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Stato",
     "OptionContinuing": "In corso",
     "OptionEnded": "Finito",

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

@@ -346,7 +346,7 @@
     "LabelStatus": "\u041a\u04af\u0439:",
     "LabelEnableCinemaModeFor": "\u041c\u044b\u043d\u0430\u0443 \u04af\u0448\u0456\u043d \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456\u043d \u049b\u043e\u0441\u0443:",
     "LabelVersion": "\u041d\u04b1\u0441\u049b\u0430:",
-    "CinemaModeConfigurationHelp": "\u041a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456 \u043a\u0438\u043d\u043e \u043a\u04e9\u0440\u0441\u0435\u0442\u0435\u0442\u0456\u043d \u0437\u0430\u043b \u04d9\u0441\u0435\u0440\u0456\u043d \u049b\u043e\u043d\u0430\u049b\u0436\u0430\u0439\u044b\u04a3\u044b\u0437\u0493\u0430 \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u0436\u0435\u0442\u043a\u0456\u0437\u0443\u04a3\u043c\u0435\u043d \u0431\u0456\u0440\u0433\u0435 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440\u0434\u0456 \u0436\u04d9\u043d\u0435 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u043a\u04e9\u0440\u043d\u0435\u0443\u0434\u0456 \u0431\u0430\u0441\u0442\u044b \u049b\u0430\u0441\u0438\u0435\u0442\u0442\u0456\u04a3 \u0430\u043b\u0434\u044b\u043d\u0434\u0430 \u043e\u0439\u043d\u0430\u0442\u0430\u0434\u044b.",
+    "CinemaModeConfigurationHelp": "\u041a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440\u0434\u0456 \u0436\u04d9\u043d\u0435 \u0442\u0435\u04a3\u0448\u0435\u043b\u0433\u0435\u043d \u043a\u04e9\u0440\u043d\u0435\u0443\u0434\u0456 \u0431\u0430\u0441\u0442\u044b \u049b\u0430\u0441\u0438\u0435\u0442\u0442\u0456\u04a3 \u0430\u043b\u0434\u044b\u043d\u0434\u0430 \u043e\u0439\u043d\u0430\u0442\u0443 \u049b\u0430\u0431\u0456\u043b\u0435\u0442\u0456\u043c\u0435\u043d \u043a\u0438\u043d\u043e \u043a\u04e9\u0440\u0441\u0435\u0442\u0435\u0442\u0456\u043d \u0437\u0430\u043b \u04d9\u0441\u0435\u0440\u0456\u043d \u049b\u043e\u043d\u0430\u049b\u0436\u0430\u0439\u044b\u04a3\u044b\u0437\u0493\u0430 \u0442\u0456\u043a\u0435\u043b\u0435\u0439 \u0436\u0435\u0442\u043a\u0456\u0437\u0435\u0434\u0456.",
     "LabelLastResult": "\u0421\u043e\u04a3\u0493\u044b \u043d\u04d9\u0442\u0438\u0436\u0435:",
     "OptionTrailersFromMyMovies": "\u0422\u0430\u0441\u0443\u0448\u044b\u0445\u0430\u043d\u0430 \u0444\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0456\u043d\u0434\u0435\u0433\u0456 \u0442\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440\u0456\u043d \u049b\u0430\u043c\u0442\u0443",
     "OptionHasSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u043b\u0435\u0440",
@@ -378,8 +378,11 @@
     "OptionParentalRating": "\u0416\u0430\u0441\u0442\u0430\u0441 \u0441\u0430\u043d\u0430\u0442",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440\u043b\u0435\u0440 \u0430\u0440\u043d\u0430\u0441\u044b\u043d \u043e\u0440\u043d\u0430\u0442\u0443 \u049b\u0430\u0436\u0435\u0442 \u0435\u0442\u0435\u0434\u0456.",
     "OptionPremiereDate": "\u0422\u04b1\u0441\u0430\u0443\u043a\u0435\u0441\u0435\u0440 \u043a\u04af\u043d-\u0430\u0439\u044b",
+    "CinemaModeConfigurationHelp2": "\u0416\u0435\u043a\u0435 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u0430\u0440\u0434\u0430 \u04e9\u0437\u0456\u043d\u0456\u04a3 \u0442\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456 \u0430\u0440\u049b\u044b\u043b\u044b \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456\u043d \u0430\u0436\u044b\u0440\u0430\u0442\u0443 \u049b\u0430\u0431\u0456\u043b\u0435\u0442\u0456 \u0431\u043e\u043b\u0430\u0434\u044b.",
     "TabBasic": "\u041d\u0435\u0433\u0456\u0437\u0433\u0456\u043b\u0435\u0440",
+    "LabelEnableCinemaMode": "\u041a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456\u043d \u049b\u043e\u0441\u0443",
     "TabAdvanced": "\u049a\u043e\u0441\u044b\u043c\u0448\u0430",
+    "HeaderCinemaMode": "\u041a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440 \u0440\u0435\u0436\u0456\u043c\u0456",
     "HeaderStatus": "\u041a\u04af\u0439",
     "OptionContinuing": "\u0416\u0430\u043b\u0493\u0430\u0441\u0443\u0434\u0430",
     "OptionEnded": "\u0410\u044f\u049b\u0442\u0430\u043b\u0434\u044b",
@@ -525,7 +528,7 @@
     "HeaderDetails": "\u041c\u04d9\u043b\u0456\u043c\u0435\u0442\u0442\u0435\u0440",
     "TitleLiveTV": "\u042d\u0444\u0438\u0440\u043b\u0456\u043a \u0422\u0414",
     "LabelNumberOfGuideDays": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u04af\u0448\u0456\u043d \u0422\u0414 \u043a\u0435\u0441\u0442\u0435\u0441\u0456 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d\u0434\u0435\u0433\u0456 \u043a\u04af\u043d \u0441\u0430\u043d\u044b:",
-    "LabelNumberOfGuideDaysHelp": "\u041a\u04e9\u0431\u0456\u0440\u0435\u043a \u043a\u04af\u043d\u0434\u0456 \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u0422\u0414 \u043a\u0435\u0441\u0442\u0435\u0441\u0456 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u049b\u04b1\u043d\u0434\u044b\u043b\u044b\u0493\u044b\u043d \u043a\u04e9\u0442\u0435\u0440\u0435\u0434\u0456 \u0434\u0435 \u0430\u043b\u0434\u044b\u043d-\u0430\u043b\u0430 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0443 \u04af\u0448\u0456\u043d \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a\u0442\u0456 \u0436\u04d9\u043d\u0435 \u043a\u04e9\u0431\u0456\u0440\u0435\u043a \u0442\u0456\u0437\u0431\u0435\u043b\u0435\u0440 \u043a\u04e9\u0440\u0443\u0434\u0456 \u049b\u0430\u043c\u0442\u0430\u043c\u0430\u0441\u044b\u0437 \u0435\u0442\u0435\u0434\u0456, \u0431\u0456\u0440\u0430\u049b \u0431\u04b1\u043b \u0436\u04af\u043a\u0442\u0435\u0443 \u0443\u0430\u049b\u044b\u0442\u044b\u043d \u0434\u0430 \u0441\u043e\u0437\u0434\u044b\u0440\u0430\u0434\u044b. \u0410\u0432\u0442\u043e\u0442\u0430\u04a3\u0434\u0430\u0443 \u0430\u0440\u043d\u0430 \u0441\u0430\u043d\u044b\u043d\u0430 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0456\u043d\u0435\u0434\u0456.",
+    "LabelNumberOfGuideDaysHelp": "\u041a\u04e9\u0431\u0456\u0440\u0435\u043a \u043a\u04af\u043d\u0434\u0456 \u0436\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443 \u0422\u0414 \u043a\u0435\u0441\u0442\u0435\u0441\u0456 \u0434\u0435\u0440\u0435\u043a\u0442\u0435\u0440\u0456\u043d\u0456\u04a3 \u049b\u04b1\u043d\u0434\u044b\u043b\u044b\u0493\u044b\u043d \u043a\u04e9\u0442\u0435\u0440\u0435\u0434\u0456 \u0434\u0435 \u0430\u043b\u0434\u044b\u043d-\u0430\u043b\u0430 \u0436\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0443 \u04af\u0448\u0456\u043d \u049b\u0430\u0431\u0456\u043b\u0435\u0442\u0456\u043d \u0436\u04d9\u043d\u0435 \u043a\u04e9\u0431\u0456\u0440\u0435\u043a \u0442\u0456\u0437\u0431\u0435\u043b\u0435\u0440 \u043a\u04e9\u0440\u0443\u0434\u0456 \u049b\u0430\u043c\u0442\u0430\u043c\u0430\u0441\u044b\u0437 \u0435\u0442\u0435\u0434\u0456, \u0431\u0456\u0440\u0430\u049b \u0431\u04b1\u043b \u0436\u04af\u043a\u0442\u0435\u0443 \u0443\u0430\u049b\u044b\u0442\u044b\u043d \u0434\u0430 \u0441\u043e\u0437\u0434\u044b\u0440\u0430\u0434\u044b. \u0410\u0432\u0442\u043e\u0442\u0430\u04a3\u0434\u0430\u0443 \u0430\u0440\u043d\u0430 \u0441\u0430\u043d\u044b\u043d\u0430 \u043d\u0435\u0433\u0456\u0437\u0434\u0435\u043b\u0456\u043d\u0435\u0434\u0456.",
     "LabelActiveService": "\u0411\u0435\u043b\u0441\u0435\u043d\u0434\u0456 \u049b\u044b\u0437\u043c\u0435\u0442:",
     "LabelActiveServiceHelp": "\u0411\u0456\u0440\u043d\u0435\u0448\u0435 \u0422\u0414 \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d, \u0431\u0456\u0440\u0430\u049b \u0441\u043e\u043b \u043a\u0435\u0437\u0434\u0435 \u0442\u0435\u043a \u049b\u0430\u043d\u0430 \u0431\u0456\u0440\u0435\u0443\u0456 \u0431\u0435\u043b\u0441\u0435\u043d\u0434\u0456 \u0431\u043e\u043b\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d.",
     "OptionAutomatic": "\u0410\u0432\u0442\u043e\u0442\u0430\u04a3\u0434\u0430\u0443",
@@ -623,7 +626,7 @@
     "EditCollectionItemsHelp": "\u0411\u04b1\u043b \u0436\u0438\u044b\u043d\u0442\u044b\u049b\u0430 \u049b\u0430\u043b\u0430\u0443\u044b\u04a3\u044b\u0437 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u04d9\u0440\u049b\u0430\u0439\u0441\u044b \u0444\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0434\u0456, \u0441\u0435\u0440\u0438\u0430\u043b\u0434\u0430\u0440\u0434\u044b, \u0430\u043b\u044c\u0431\u043e\u043c\u0434\u0430\u0440\u0434\u044b, \u043a\u0456\u0442\u0430\u043f\u0442\u0430\u0440\u0434\u044b \u043d\u0435 \u043e\u0439\u044b\u043d\u0434\u0430\u0440\u0434\u044b \u04af\u0441\u0442\u0435\u04a3\u0456\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u0430\u043b\u0430\u0441\u0442\u0430\u04a3\u044b\u0437.",
     "HeaderAddTitles": "\u0422\u0443\u044b\u043d\u0434\u044b\u043b\u0430\u0440\u0434\u044b \u04af\u0441\u0442\u0435\u0443",
     "LabelEnableDlnaPlayTo": "DLNA \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u0441\u044b\u043d\u0434\u0430 \u043e\u0439\u043d\u0430\u0442\u0443\u0434\u044b \u049b\u043e\u0441\u0443",
-    "LabelEnableDlnaPlayToHelp": "Media Browser \u0436\u0435\u043b\u0456\u0434\u0435\u0433\u0456 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u0434\u044b \u0442\u0430\u0431\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0436\u04d9\u043d\u0435 \u0431\u04b1\u043b\u0430\u0440\u0434\u044b \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u0433\u0456\u043d \u04b1\u0441\u044b\u043d\u0430\u0434\u044b.",
+    "LabelEnableDlnaPlayToHelp": "Media Browser \u0436\u0435\u043b\u0456\u0434\u0435\u0433\u0456 \u049b\u04b1\u0440\u044b\u043b\u0493\u044b\u043b\u0430\u0440\u0434\u044b \u0442\u0430\u0431\u0443\u044b \u043c\u04af\u043c\u043a\u0456\u043d \u0436\u04d9\u043d\u0435 \u0431\u04b1\u043b\u0430\u0440\u0434\u044b \u049b\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443 \u049b\u0430\u0431\u0456\u043b\u0435\u0442\u0456\u043d \u04b1\u0441\u044b\u043d\u0430\u0434\u044b.",
     "LabelEnableDlnaDebugLogging": "DLNA \u043a\u04af\u0439\u043a\u0435\u043b\u0442\u0456\u0440\u0443 \u0436\u0430\u0437\u0431\u0430\u043b\u0430\u0440\u044b\u043d \u0436\u04b1\u0440\u043d\u0430\u043b\u0434\u0430 \u049b\u043e\u0441\u0443",
     "LabelEnableDlnaDebugLoggingHelp": "\u04e8\u0442\u0435 \u0430\u0443\u049b\u044b\u043c\u0434\u044b \u0436\u04b1\u0440\u043d\u0430\u043b \u0444\u0430\u0439\u043b\u0434\u0430\u0440\u044b \u0436\u0430\u0441\u0430\u043b\u0430\u0434\u044b \u0436\u04d9\u043d\u0435 \u0442\u0435\u043a \u049b\u0430\u043d\u0430  \u0430\u049b\u0430\u0443\u043b\u044b\u049b\u0442\u0430\u0440\u0434\u044b \u0436\u043e\u044e \u04af\u0448\u0456\u043d \u049b\u0430\u0436\u0435\u0442 \u0431\u043e\u043b\u0493\u0430\u043d \u0440\u0435\u0442\u0456\u043d\u0434\u0435 \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u044b\u043b\u0430\u0434\u044b.",
     "LabelEnableDlnaClientDiscoveryInterval": "\u041a\u043b\u0438\u0435\u043d\u0442\u0442\u0435\u0440\u0434\u0456 \u0442\u0430\u0443\u044b\u043f \u0430\u0448\u0443 \u0430\u0440\u0430\u043b\u044b\u0493\u044b, \u0441:",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/ko.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/ms.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/nb.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Foreldresensur",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Krever installasjon av trailer kanalen.",
     "OptionPremiereDate": "premieredato",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basic",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avansert",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Fortsetter",
     "OptionEnded": "Avsluttet",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/nl.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Kijkwijzer classificatie",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Vereist installatie van het Trailer-kanaal.",
     "OptionPremiereDate": "Premi\u00e8re Datum",
+    "CinemaModeConfigurationHelp2": "Gebruikers kunnen in hun eigen instellingen Cinema Mode uitschakelen",
     "TabBasic": "Basis",
+    "LabelEnableCinemaMode": "Cinema Mode inschakelen",
     "TabAdvanced": "Geavanceerd",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Wordt vervolgd...",
     "OptionEnded": "Gestopt",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/pl.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Ocena rodzicielska",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Data premiery",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Podstawowe",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Zaawansowane",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Status",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Classifica\u00e7\u00e3o Parental",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requer a instala\u00e7\u00e3o do canal de Trailers",
     "OptionPremiereDate": "Data da Estr\u00e9ia",
+    "CinemaModeConfigurationHelp2": "Os usu\u00e1rios poder\u00e3o desabilitar o modo cinema individualmente, em suas pr\u00f3prias prefer\u00eancias.",
     "TabBasic": "B\u00e1sico",
+    "LabelEnableCinemaMode": "Ativar modo cinema",
     "TabAdvanced": "Avan\u00e7ado",
+    "HeaderCinemaMode": "Modo Cinema",
     "HeaderStatus": "Status",
     "OptionContinuing": "Em Exibi\u00e7\u00e3o",
     "OptionEnded": "Finalizada",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Classifica\u00e7\u00e3o Parental",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Data de Estreia",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "B\u00e1sico",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Avan\u00e7ado",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Estado",
     "OptionContinuing": "A Continuar",
     "OptionEnded": "Terminado",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/ru.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "\u0412\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
     "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",
     "OptionPremiereDate": "\u0414\u0430\u0442\u0430 \u043f\u0440\u0435\u043c\u044c\u0435\u0440\u044b",
+    "CinemaModeConfigurationHelp2": "\u041e\u0442\u0434\u0435\u043b\u044c\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 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430 \u0432\u043d\u0443\u0442\u0440\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.",
     "TabBasic": "\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435",
+    "LabelEnableCinemaMode": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "TabAdvanced": "\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e",
+    "HeaderCinemaMode": "\u0420\u0435\u0436\u0438\u043c \u043a\u0438\u043d\u043e\u0442\u0435\u0430\u0442\u0440\u0430",
     "HeaderStatus": "\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435",
     "OptionContinuing": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f",
     "OptionEnded": "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0441\u044f",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/sv.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "F\u00f6r\u00e4ldraklassning",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Kr\u00e4ver installation av Trailer-kanalen.",
     "OptionPremiereDate": "Premi\u00e4rdatum",
+    "CinemaModeConfigurationHelp2": "Varje anv\u00e4ndare kan i sina egna inst\u00e4llningar v\u00e4lja om biol\u00e4get skall aktiveras.",
     "TabBasic": "Grunderna",
+    "LabelEnableCinemaMode": "Aktivera biol\u00e4ge",
     "TabAdvanced": "Avancerat",
+    "HeaderCinemaMode": "Biol\u00e4ge",
     "HeaderStatus": "Status",
     "OptionContinuing": "P\u00e5g\u00e5ende",
     "OptionEnded": "Avslutad",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/tr.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "Basit",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Geli\u015fmi\u015f",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Durum",
     "OptionContinuing": "Topluluk",
     "OptionEnded": "Bitmi\u015f",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/vi.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "Parental Rating",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "Premiere Date",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "C\u01a1 b\u1ea3n",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "Advanced",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "Tr\u1ea1ng th\u00e1i",
     "OptionContinuing": "Continuing",
     "OptionEnded": "Ended",

+ 3 - 0
MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json

@@ -378,8 +378,11 @@
     "OptionParentalRating": "\u5bb6\u9577\u8a55\u7d1a",
     "LabelDisplayTrailersWithinMovieSuggestionsHelp": "Requires installation of the Trailer channel.",
     "OptionPremiereDate": "\u9996\u6620\u65e5\u671f",
+    "CinemaModeConfigurationHelp2": "Individual users will have the ability to disable cinema mode within their own preferences.",
     "TabBasic": "\u57fa\u672c",
+    "LabelEnableCinemaMode": "Enable cinema mode",
     "TabAdvanced": "\u9032\u968e",
+    "HeaderCinemaMode": "Cinema Mode",
     "HeaderStatus": "\u72c0\u614b",
     "OptionContinuing": "\u6301\u7e8c",
     "OptionEnded": "\u5b8c\u7d50",

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

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.450</version>
+        <version>3.0.457</version>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <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>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.450" />
+            <dependency id="MediaBrowser.Common" version="3.0.457" />
             <dependency id="NLog" version="3.1.0.0" />
             <dependency id="SimpleInjector" version="2.5.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">
     <metadata>
         <id>MediaBrowser.Common</id>
-        <version>3.0.450</version>
+        <version>3.0.457</version>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <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">
     <metadata>
         <id>MediaBrowser.Model.Signed</id>
-        <version>3.0.450</version>
+        <version>3.0.457</version>
         <title>MediaBrowser.Model - Signed Edition</title>
         <authors>Media Browser Team</authors>
         <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">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.450</version>
+        <version>3.0.457</version>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.450" />
+            <dependency id="MediaBrowser.Common" version="3.0.457" />
         </dependencies>
     </metadata>
     <files>