Luke Pulverenti 11 лет назад
Родитель
Сommit
e9fb806478
38 измененных файлов с 1006 добавлено и 255 удалено
  1. 7 2
      MediaBrowser.Api/UserLibrary/ItemsService.cs
  2. 4 1
      MediaBrowser.Dlna/PlayTo/Device.cs
  3. 1 1
      MediaBrowser.Dlna/PlayTo/UpnpContainer.cs
  4. 7 0
      MediaBrowser.Model/Configuration/NotificationOptions.cs
  5. 8 3
      MediaBrowser.Model/Configuration/ServerConfiguration.cs
  6. 3 0
      MediaBrowser.Model/Configuration/UserConfiguration.cs
  7. 5 6
      MediaBrowser.Model/Dlna/ConditionProcessor.cs
  8. 3 1
      MediaBrowser.Model/Dlna/StreamBuilder.cs
  9. 16 0
      MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifier.cs
  10. 8 8
      MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
  11. 1 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
  12. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/ar.json
  13. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/ca.json
  14. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/cs.json
  15. 59 23
      MediaBrowser.Server.Implementations/Localization/Server/de.json
  16. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/el.json
  17. 38 2
      MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
  18. 38 2
      MediaBrowser.Server.Implementations/Localization/Server/en_US.json
  19. 67 31
      MediaBrowser.Server.Implementations/Localization/Server/es.json
  20. 61 25
      MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
  21. 38 2
      MediaBrowser.Server.Implementations/Localization/Server/fr.json
  22. 61 25
      MediaBrowser.Server.Implementations/Localization/Server/he.json
  23. 67 31
      MediaBrowser.Server.Implementations/Localization/Server/it.json
  24. 3 4
      MediaBrowser.Server.Implementations/Localization/Server/kk.json
  25. 38 2
      MediaBrowser.Server.Implementations/Localization/Server/ms.json
  26. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/nb.json
  27. 56 20
      MediaBrowser.Server.Implementations/Localization/Server/nl.json
  28. 60 24
      MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
  29. 38 2
      MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
  30. 2 3
      MediaBrowser.Server.Implementations/Localization/Server/ru.json
  31. 15 1
      MediaBrowser.Server.Implementations/Localization/Server/server.json
  32. 57 21
      MediaBrowser.Server.Implementations/Localization/Server/sv.json
  33. 37 1
      MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
  34. 16 1
      MediaBrowser.Server.Implementations/Notifications/CoreNotificationTypes.cs
  35. 2 2
      MediaBrowser.Server.Implementations/Session/SessionManager.cs
  36. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  37. 1 1
      Nuget/MediaBrowser.Common.nuspec
  38. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 7 - 2
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -321,7 +321,7 @@ namespace MediaBrowser.Api.UserLibrary
 
             items = items.AsEnumerable();
 
-            if (CollapseBoxSetItems(request, parentItem))
+            if (CollapseBoxSetItems(request, parentItem, user))
             {
                 items = _collectionManager.CollapseItemsWithinBoxSets(items, user);
             }
@@ -349,7 +349,7 @@ namespace MediaBrowser.Api.UserLibrary
             };
         }
 
-        private bool CollapseBoxSetItems(GetItems request, BaseItem parentItem)
+        private bool CollapseBoxSetItems(GetItems request, BaseItem parentItem, User user)
         {
             // Could end up stuck in a loop like this
             if (parentItem is BoxSet)
@@ -361,6 +361,11 @@ namespace MediaBrowser.Api.UserLibrary
 
             if (!param.HasValue)
             {
+                if (user != null && !user.Configuration.GroupMoviesIntoBoxSets)
+                {
+                    return false;
+                }
+
                 if (!string.IsNullOrWhiteSpace(request.IncludeItemTypes) &&
                     request.IncludeItemTypes.Split(',').Contains("Movie", StringComparer.OrdinalIgnoreCase))
                 {

+ 4 - 1
MediaBrowser.Dlna/PlayTo/Device.cs

@@ -897,7 +897,10 @@ namespace MediaBrowser.Dlna.PlayTo
 
             if (previousMediaInfo == null && mediaInfo != null)
             {
-                OnPlaybackStart(mediaInfo);
+                if (state != TRANSPORTSTATE.STOPPED)
+                {
+                    OnPlaybackStart(mediaInfo);
+                }
             }
             else if (mediaInfo == null && previousMediaInfo != null)
             {

+ 1 - 1
MediaBrowser.Dlna/PlayTo/UpnpContainer.cs

@@ -5,7 +5,7 @@ namespace MediaBrowser.Dlna.PlayTo
 {
     public class UpnpContainer : uBaseObject
     {
-        new public static uBaseObject Create(XElement container)
+        public static uBaseObject Create(XElement container)
         {
             if (container == null)
             {

+ 7 - 0
MediaBrowser.Model/Configuration/NotificationOptions.cs

@@ -58,6 +58,12 @@ namespace MediaBrowser.Model.Configuration
                     Type = NotificationType.PluginInstalled.ToString(),
                     Enabled = true,
                     SendToUserMode = SendToUserType.Admins
+                },
+                new NotificationOption
+                {
+                    Type = NotificationType.PluginError.ToString(),
+                    Enabled = true,
+                    SendToUserMode = SendToUserType.Admins
                 }
             };
         }
@@ -166,6 +172,7 @@ namespace MediaBrowser.Model.Configuration
         AudioPlayback,
         GamePlayback,
         InstallationFailed,
+        PluginError,
         PluginInstalled,
         PluginUpdateInstalled,
         PluginUninstalled,

+ 8 - 3
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -32,7 +32,7 @@ namespace MediaBrowser.Model.Configuration
         /// </summary>
         /// <value><c>true</c> if [enable u pn p]; otherwise, <c>false</c>.</value>
         public bool EnableUPnP { get; set; }
-        
+
         /// <summary>
         /// Gets or sets the HTTP server port number.
         /// </summary>
@@ -62,7 +62,7 @@ namespace MediaBrowser.Model.Configuration
         /// </summary>
         /// <value>The metadata path.</value>
         public string MetadataPath { get; set; }
-        
+
         /// <summary>
         /// Gets or sets the display name of the season zero.
         /// </summary>
@@ -220,13 +220,16 @@ namespace MediaBrowser.Model.Configuration
         public string WanDdns { get; set; }
 
         public string UICulture { get; set; }
-        
+
         public DlnaOptions DlnaOptions { get; set; }
 
         public double DownMixAudioBoost { get; set; }
 
         public NotificationOptions NotificationOptions { get; set; }
 
+        [Obsolete("Please use RequireManualLoginForMobileApps")]
+        public string[] ManualLoginClients { get; set; }
+
         /// <summary>
         /// Initializes a new instance of the <see cref="ServerConfiguration" /> class.
         /// </summary>
@@ -292,6 +295,8 @@ namespace MediaBrowser.Model.Configuration
             UICulture = "en-us";
 
             NotificationOptions = new NotificationOptions();
+
+            ManualLoginClients = new string[] { };
         }
     }
 

+ 3 - 0
MediaBrowser.Model/Configuration/UserConfiguration.cs

@@ -54,6 +54,8 @@ namespace MediaBrowser.Model.Configuration
         public bool EnableMediaPlayback { get; set; }
         public bool EnableContentDeletion { get; set; }
 
+        public bool GroupMoviesIntoBoxSets { get; set; }
+
         public string[] BlockedMediaFolders { get; set; }
 
         public UnratedItem[] BlockUnratedItems { get; set; }
@@ -69,6 +71,7 @@ namespace MediaBrowser.Model.Configuration
             EnableLiveTvManagement = true;
             EnableMediaPlayback = true;
             EnableLiveTvAccess = true;
+            GroupMoviesIntoBoxSets = true;
 
             BlockedMediaFolders = new string[] { };
             BlockUnratedItems = new UnratedItem[] { };

+ 5 - 6
MediaBrowser.Model/Dlna/ConditionProcessor.cs

@@ -1,7 +1,6 @@
-using System;
+using MediaBrowser.Model.MediaInfo;
+using System;
 using System.Globalization;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.MediaInfo;
 
 namespace MediaBrowser.Model.Dlna
 {
@@ -83,13 +82,13 @@ namespace MediaBrowser.Model.Dlna
 
         public bool IsVideoAudioConditionSatisfied(ProfileCondition condition, 
             int? audioChannels, 
-            int? audioBitrate)
+            int? audioBitrate,
+            string audioProfile)
         {
             switch (condition.Property)
             {
                 case ProfileConditionValue.AudioProfile:
-                    // TODO: Implement
-                    return true;
+                    return IsConditionSatisfied(condition, audioProfile);
                 case ProfileConditionValue.AudioBitrate:
                     return IsConditionSatisfied(condition, audioBitrate);
                 case ProfileConditionValue.AudioChannels:

+ 3 - 1
MediaBrowser.Model/Dlna/StreamBuilder.cs

@@ -285,6 +285,7 @@ namespace MediaBrowser.Model.Dlna
 
             var audioBitrate = audioStream == null ? null : audioStream.BitRate;
             var audioChannels = audioStream == null ? null : audioStream.Channels;
+            var audioProfile = audioStream == null ? null : audioStream.Profile;
 
             var timestamp = videoStream == null ? TransportStreamTimestamp.None : mediaSource.Timestamp;
             var packetLength = videoStream == null ? null : videoStream.PacketLength;
@@ -348,7 +349,8 @@ namespace MediaBrowser.Model.Dlna
 
                 if (!conditions.All(i => conditionProcessor.IsVideoAudioConditionSatisfied(i,
                   audioChannels,
-                  audioBitrate)))
+                  audioBitrate,
+                  audioProfile)))
                 {
                     return null;
                 }

+ 16 - 0
MediaBrowser.Server.Implementations/EntryPoints/Notifications/Notifier.cs

@@ -67,6 +67,21 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
             _sessionManager.PlaybackStart += _sessionManager_PlaybackStart;
             _appHost.HasPendingRestartChanged += _appHost_HasPendingRestartChanged;
             _appHost.HasUpdateAvailableChanged += _appHost_HasUpdateAvailableChanged;
+            _appHost.ApplicationUpdated += _appHost_ApplicationUpdated;
+        }
+
+        async void _appHost_ApplicationUpdated(object sender, GenericEventArgs<Version> e)
+        {
+            var type = NotificationType.ApplicationUpdateInstalled.ToString();
+
+            var notification = new NotificationRequest
+            {
+                NotificationType = type
+            };
+
+            notification.Variables["Version"] = e.Argument.ToString();
+            
+            await SendNotification(notification).ConfigureAwait(false);
         }
 
         async void _installationManager_PluginUpdated(object sender, GenericEventArgs<Tuple<IPlugin, PackageVersionInfo>> e)
@@ -302,6 +317,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints.Notifications
 
             _appHost.HasPendingRestartChanged -= _appHost_HasPendingRestartChanged;
             _appHost.HasUpdateAvailableChanged -= _appHost_HasUpdateAvailableChanged;
+            _appHost.ApplicationUpdated -= _appHost_ApplicationUpdated;
         }
     }
 }

+ 8 - 8
MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json

@@ -6,25 +6,25 @@
     "Administrator": "\u04d8\u043a\u0456\u043c\u0448\u0456",
     "Password": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437",
     "DeleteImage": "\u0421\u0443\u0440\u0435\u0442\u0442\u0456 \u0436\u043e\u044e",
-    "DeleteImageConfirmation": "\u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d \u0431\u04b1\u043b \u0441\u0443\u0440\u0435\u0442\u0442\u0456 \u0436\u043e\u0439\u0493\u044b\u04a3\u044b\u0437 \u043a\u0435\u043b\u0435 \u043c\u0435?",
-    "FileReadCancelled": "\u0424\u0430\u0439\u043b \u043e\u049b\u0443\u044b \u0442\u043e\u049b\u0442\u0430\u0442\u044b\u043b\u0434\u044b.",
+    "DeleteImageConfirmation": "\u0428\u044b\u043d\u044b\u043c\u0435\u043d \u0431\u04b1\u043b \u0441\u0443\u0440\u0435\u0442\u0442\u0456 \u0436\u043e\u044e \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
+    "FileReadCancelled": "\u0424\u0430\u0439\u043b \u043e\u049b\u0443\u044b \u0431\u043e\u043b\u0434\u044b\u0440\u044b\u043b\u043c\u0430\u0434\u044b.",
     "FileNotFound": "\u0424\u0430\u0439\u043b \u0442\u0430\u0431\u044b\u043b\u043c\u0430\u0434\u044b.",
     "FileReadError": "\u0424\u0430\u0439\u043b\u0434\u044b \u043e\u049b\u044b\u043f \u0436\u0430\u0442\u049b\u0430\u043d\u0434\u0430 \u049b\u0430\u0442\u0435 \u043f\u0430\u0439\u0434\u0430 \u0431\u043e\u043b\u0434\u044b.",
     "DeleteUser": "\u041f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043d\u044b \u0430\u043b\u0430\u0441\u0442\u0430\u0443",
-    "DeleteUserConfirmation": "\u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d {0} \u0436\u043e\u0439\u0493\u044b\u04a3\u044b\u0437 \u043a\u0435\u043b\u0435 \u043c\u0435?",
+    "DeleteUserConfirmation": "\u0428\u044b\u043d\u044b\u043c\u0435\u043d {0} \u0436\u043e\u044e \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
     "PasswordResetHeader": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443",
     "PasswordResetComplete": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437 \u044b\u0441\u044b\u0440\u044b\u043b\u0434\u044b.",
-    "PasswordResetConfirmation": "\u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d \u049b\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0493\u044b\u04a3\u044b\u0437 \u043a\u0435\u043b\u0435 \u043c\u0435?",
+    "PasswordResetConfirmation": "\u0428\u044b\u043d\u044b\u043c\u0435\u043d \u049b\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u044b\u0441\u044b\u0440\u0443 \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
     "PasswordSaved": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437 \u0441\u0430\u049b\u0442\u0430\u043b\u0434\u044b.",
-    "PasswordMatchError": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0456 \u043c\u0435\u043d \u049b\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u0440\u0430\u0441\u0442\u0430\u0443 \u04e9\u0440\u0456\u0441\u0442\u0435\u0440\u0456 \u0441\u04d9\u0439\u043a\u0435\u0441 \u0431\u043e\u043b\u0443 \u043a\u0435\u0440\u0435\u043a.",
+    "PasswordMatchError": "\u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0456 \u043c\u0435\u043d \u049a\u04b1\u043f\u0438\u044f \u0441\u04e9\u0437\u0434\u0456 \u0440\u0430\u0441\u0442\u0430\u0443 \u04e9\u0440\u0456\u0441\u0442\u0435\u0440\u0456 \u0441\u04d9\u0439\u043a\u0435\u0441 \u0431\u043e\u043b\u0443 \u043a\u0435\u0440\u0435\u043a.",
     "OptionOff": "\u04e8\u0448\u0456\u0440",
     "OptionOn": "\u049a\u043e\u0441",
     "OptionRelease": "\u0420\u0435\u0441\u043c\u0438 \u0448\u044b\u0493\u0430\u0440\u044b\u043b\u044b\u043c",
     "OptionBeta": "\u0411\u0435\u0442\u0430 \u043d\u04b1\u0441\u049b\u0430",
     "OptionDev": "\u0416\u0430\u0441\u0430\u049b\u0442\u0430\u0443 (\u0442\u04b1\u0440\u0430\u049b\u0441\u044b\u0437)",
     "UninstallPluginHeader": "\u041f\u043b\u0430\u0433\u0438\u043d \u043e\u0440\u043d\u0430\u0442\u0443\u044b\u043d \u0431\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443",
-    "UninstallPluginConfirmation": "\u0421\u0456\u0437 \u0448\u044b\u043d\u044b\u043c\u0435\u043d {0} \u043e\u0440\u043d\u0430\u0442\u0443\u044b\u043d \u0431\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443\u044b\u04a3\u044b\u0437 \u043a\u0435\u043b\u0435 \u043c\u0435?",
+    "UninstallPluginConfirmation": "\u0428\u044b\u043d\u044b\u043c\u0435\u043d {0} \u043e\u0440\u043d\u0430\u0442\u0443\u044b\u043d \u0431\u043e\u043b\u0434\u044b\u0440\u043c\u0430\u0443 \u049b\u0430\u0436\u0435\u0442 \u043f\u0435?",
     "NoPluginConfigurationMessage": "\u0411\u04b1\u043b \u043f\u043b\u0430\u0433\u0438\u043d \u04af\u0448\u0456\u043d \u0435\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043b\u0430\u0443 \u0436\u043e\u049b.",
-    "NoPluginsInstalledMessage": "\u0421\u0456\u0437\u0434\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u043e\u0440\u043d\u0430\u0442\u044b\u043b\u043c\u0430\u0493\u0430\u043d.",
-    "BrowsePluginCatalogMessage": "\u049a\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440\u043c\u0435\u043d \u0442\u0430\u043d\u044b\u0441\u0443 \u04af\u0448\u0456\u043d \u0431\u0456\u0437\u0434\u0456\u04a3 \u043f\u043b\u0430\u0433\u0438\u043d \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d  \u0448\u0430\u0440\u043b\u0430\u04a3\u044b\u0437."
+    "NoPluginsInstalledMessage": "\u041e\u0440\u043d\u0430\u0442\u044b\u043b\u0493\u0430\u043d \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u0436\u043e\u049b.",
+    "BrowsePluginCatalogMessage": "\u049a\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440\u043c\u0435\u043d \u0442\u0430\u043d\u044b\u0441\u0443 \u04af\u0448\u0456\u043d \u043f\u043b\u0430\u0433\u0438\u043d \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d  \u0448\u0430\u0440\u043b\u0430\u04a3\u044b\u0437."
 }

+ 1 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json

@@ -25,6 +25,6 @@
     "UninstallPluginHeader": "\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d",
     "UninstallPluginConfirmation": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c {0}?",
     "NoPluginConfigurationMessage": "\u0414\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043d\u0435\u0447\u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c.",
-    "NoPluginsInstalledMessage": "\u0423 \u0412\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430.",
+    "NoPluginsInstalledMessage": "\u041d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0433\u0438\u043d\u0430.",
     "BrowsePluginCatalogMessage": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430\u0448 \u043a\u0430\u0442\u0430\u043b\u043e\u0433, \u0447\u0442\u043e\u0431\u044b \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438."
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "\u0627\u0632\u0627\u0644\u0629 \u0635\u0648\u0631\u0629",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "\u062a\u062d\u0645\u064a\u0644",
     "HeaderUploadNewImage": "\u062a\u062d\u0645\u064a\u0644 \u0635\u0648\u0631\u0629 \u062c\u062f\u064a\u062f\u0629",
     "LabelDropImageHere": "\u0627\u0633\u0642\u0627\u0637 \u0627\u0644\u0635\u0648\u0631\u0629 \u0647\u0646\u0627",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Delete Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Upload",
     "HeaderUploadNewImage": "Upload New Image",
     "LabelDropImageHere": "Drop Image Here",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Obsah s vy\u0161\u0161\u00edm hodnocen\u00edm bude tomuto u\u017eivateli blokov\u00e1n.",
     "LibraryAccessHelp": "Vyberte slo\u017eky m\u00e9di\u00ed pro sd\u00edlen\u00ed s t\u00edmto u\u017eivatelem. Administr\u00e1to\u0159i budou moci editovat v\u0161echny slo\u017eky pomoc\u00ed metadata mana\u017eeru.",
     "ButtonDeleteImage": "Odstranit obr\u00e1zek",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Nahr\u00e1t",
     "HeaderUploadNewImage": "Nahr\u00e1t nov\u00fd obr\u00e1zek",
     "LabelDropImageHere": "P\u0159esu\u0148te obr\u00e1zek zde",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 59 - 23
MediaBrowser.Server.Implementations/Localization/Server/de.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Du bist fertig!",
     "WelcomeToMediaBrowser": "Willkommen zu Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "Dieser Assistent wird Sie durch den Einrichtungsprozess f\u00fchren.",
+    "ThisWizardWillGuideYou": "Dieser Assistent wird Sie durch den Einrichtungsprozess f\u00fchren. Um zu beginnen, w\u00e4hlen Sie bitte ihre bevorzugte Sprache.",
     "TellUsAboutYourself": "Sagen Sie uns etwas \u00fcber sich selbst",
     "LabelYourFirstName": "Ihr Vorname:",
     "MoreUsersCanBeAddedLater": "Weitere Benutzer k\u00f6nnen Sie sp\u00e4ter im Dashboard hinzuf\u00fcgen.",
@@ -55,7 +55,7 @@
     "TabProfile": "Profil",
     "TabMetadata": "Metadata",
     "TabImages": "Bilder",
-    "TabNotifications": "Notifications",
+    "TabNotifications": "Benachrichtigungen",
     "TabCollectionTitles": "Titel",
     "LabelDisplayMissingEpisodesWithinSeasons": "Zeige fehlende Episoden innerhalb von Staffeln",
     "LabelUnairedMissingEpisodesWithinSeasons": "Zeige noch nicht ausgestahlte Episoden innerhalb von Staffeln",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Inhalt mit einer h\u00f6heren Bewertung wird dem User nicht angezeigt.",
     "LibraryAccessHelp": "W\u00e4hlen Sie die Medienordner die Sie mit diesem Benutzer teilen m\u00f6chten. Administratoren k\u00f6nnen den Metadata-Manager verwenden um alle Ordner zu bearbeiten.",
     "ButtonDeleteImage": "L\u00f6sche Bild",
+    "LabelSelectUsers": "W\u00e4hle Benutzer:",
     "ButtonUpload": "Hochladen",
     "HeaderUploadNewImage": "Neues Bild hochladen",
     "LabelDropImageHere": "Bild hierher ziehen",
@@ -277,7 +278,7 @@
     "HeaderPleaseSignIn": "Bitte einloggen",
     "LabelUser": "Benutzer:",
     "LabelPassword": "Passwort:",
-    "ButtonManualLogin": "Manueller Login:",
+    "ButtonManualLogin": "Manueller Login",
     "PasswordLocalhostMessage": "Passw\u00f6rter werden nich gebraucht, wenn Sie sich vom Localhost aus einloggen.",
     "TabGuide": "Programm",
     "TabChannels": "Kan\u00e4le",
@@ -543,36 +544,71 @@
     "LabelDefaultUserHelp": "Legt fest, welche Benutzerbibliothek auf verbundenen Ger\u00e4ten angezeigt werden soll. Dies kann f\u00fcr jedes Ger\u00e4t durch Profile \u00fcberschrieben werden.",
     "TitleDlna": "DLNA",
     "HeaderServerSettings": "Server Einstellungen",
-    "LabelWeatherDisplayLocation": "Weather display location:",
-    "LabelWeatherDisplayLocationHelp": "US zip code \/ City, State, Country \/ City, Country",
-    "LabelWeatherDisplayUnit": "Weather display unit:",
+    "LabelWeatherDisplayLocation": "Wetteranzeige Ort:",
+    "LabelWeatherDisplayLocationHelp": "US Postleitzahl \/ Stadt, Staat, Land \/ Stadt, Land",
+    "LabelWeatherDisplayUnit": "Wetteranzeige Einheit:",
     "OptionCelsius": "Celsius",
     "OptionFahrenheit": "Fahrenheit",
-    "HeaderRequireManualLogin": "Require manual username entry for:",
+    "HeaderRequireManualLogin": "Manuelle Eingabe des Usernamen bei:",
     "HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
-    "OptionOtherApps": "Other apps",
-    "OptionMobileApps": "Mobile apps",
+    "OptionOtherApps": "Andere Apps",
+    "OptionMobileApps": "Mobile Apps",
     "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
+    "NotificationOptionApplicationUpdateAvailable": "Anwendungsaktualisierung verf\u00fcgbar",
+    "NotificationOptionApplicationUpdateInstalled": "Anwendungsaktualisierung installiert",
+    "NotificationOptionPluginUpdateInstalled": "Pluginaktualisierung installiert",
+    "NotificationOptionPluginInstalled": "Plugin installiert",
+    "NotificationOptionPluginUninstalled": "Plugin deinstalliert",
+    "NotificationOptionVideoPlayback": "Videowiedergabe",
+    "NotificationOptionAudioPlayback": "Audiowiedergabe",
     "NotificationOptionGamePlayback": "Game playback",
     "NotificationOptionTaskFailed": "Scheduled task failure",
     "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionNewLibraryContent": "Neuer Inhalt hinzugef\u00fcgt",
     "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
+    "NotificationOptionServerRestartRequired": "Serverneustart notwendig",
+    "LabelNotificationEnabled": "Aktiviere diese Benachrichtigung",
     "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
+    "LabelSendNotificationToUsers": "Sende die Benachrichtigung an:",
+    "UsersNotNotifiedAboutSelfActivity": "Benutzer werden nicht \u00fcber ihre eigenen Aktivit\u00e4ten benachrichtigt.",
     "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
+    "CategoryUser": "Benutzer",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "Alle Benutzer",
+    "OptionAdminUsers": "Administratoren",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Auf",
+    "ButtonArrowDown": "Ab",
+    "ButtonArrowLeft": "Links",
+    "ButtonArrowRight": "Rechts",
+    "ButtonBack": "Zur\u00fcck",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Bild auf",
+    "ButtonPageDown": "Bild ab",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Einstellungen",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Aktuelle Wiedergabe",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Schalte Vollbild um",
+    "ButtonScenes": "Szenen",
+    "ButtonSubtitles": "Untertitel",
+    "ButtonAudioTracks": "Audiospuren",
+    "ButtonPreviousTrack": "Vorheriger Track",
+    "ButtonNextTrack": "N\u00e4chster Track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Gruppiere Filme in Collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Delete Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "\u0391\u03bd\u03b5\u03b2\u03ac\u03c3\u03c4\u03b5 ",
     "HeaderUploadNewImage": "\u0391\u03bd\u03b5\u03b2\u03ac\u03c3\u03c4\u03b5 \u03bd\u03ad\u03b1 \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1",
     "LabelDropImageHere": "\u03c1\u03af\u03c7\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03b9\u03ba\u03cc\u03bd\u03b1 \u03b5\u03b4\u03ce",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 38 - 2
MediaBrowser.Server.Implementations/Localization/Server/en_GB.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "You're Done!",
     "WelcomeToMediaBrowser": "Welcome to Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process.",
+    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
     "TellUsAboutYourself": "Tell us about yourself",
     "LabelYourFirstName": "Your first name:",
     "MoreUsersCanBeAddedLater": "More users can be added later within the Dashboard.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Delete Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Upload",
     "HeaderUploadNewImage": "Upload New Image",
     "LabelDropImageHere": "Drop Image Here",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 38 - 2
MediaBrowser.Server.Implementations/Localization/Server/en_US.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "You're Done!",
     "WelcomeToMediaBrowser": "Welcome to Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process.",
+    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
     "TellUsAboutYourself": "Tell us about yourself",
     "LabelYourFirstName": "Your first name:",
     "MoreUsersCanBeAddedLater": "More users can be added later within the Dashboard.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Delete Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Upload",
     "HeaderUploadNewImage": "Upload New Image",
     "LabelDropImageHere": "Drop Image Here",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 67 - 31
MediaBrowser.Server.Implementations/Localization/Server/es.json

@@ -55,7 +55,7 @@
     "TabProfile": "Perfil",
     "TabMetadata": "Metadata",
     "TabImages": "Im\u00e1genes",
-    "TabNotifications": "Notifications",
+    "TabNotifications": "Notificaciones",
     "TabCollectionTitles": "T\u00edtulos",
     "LabelDisplayMissingEpisodesWithinSeasons": "Mostar episodios no disponibles en temporadas",
     "LabelUnairedMissingEpisodesWithinSeasons": "Mostrar episodios a\u00fan no emitidos en temporadas",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "El contenido con clasificaci\u00f3n parental superior se ocultar\u00e1 para este usuario.",
     "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podr\u00e1n editar todas las carpetas usando el gestor de metadata.",
     "ButtonDeleteImage": "Borrar imagen",
+    "LabelSelectUsers": "Seleccionar usuarios:",
     "ButtonUpload": "Subir",
     "HeaderUploadNewImage": "Subir nueva imagen",
     "LabelDropImageHere": "Depositar Imagen Aqu\u00ed",
@@ -543,36 +544,71 @@
     "LabelDefaultUserHelp": "Determina de q\u00fae usuario se utilizar\u00e1 su biblioteca de medios para mostrarla por defecto en los dipositivos conectados. Esto puede cambiarse para cada dispositivo mediante el uso de perfiles.",
     "TitleDlna": "DLNA",
     "HeaderServerSettings": "Ajustes del Servidor",
-    "LabelWeatherDisplayLocation": "Weather display location:",
-    "LabelWeatherDisplayLocationHelp": "US zip code \/ City, State, Country \/ City, Country",
-    "LabelWeatherDisplayUnit": "Weather display unit:",
+    "LabelWeatherDisplayLocation": "Lugar del que mostar el tiempo:",
+    "LabelWeatherDisplayLocationHelp": "C\u00f3digo postal USA \/ Ciudad, Estado, Pa\u00eds \/ Ciudad, Pa\u00eds",
+    "LabelWeatherDisplayUnit": "Unidad de media para la temperatura:",
     "OptionCelsius": "Celsius",
     "OptionFahrenheit": "Fahrenheit",
-    "HeaderRequireManualLogin": "Require manual username entry for:",
-    "HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
-    "OptionOtherApps": "Other apps",
-    "OptionMobileApps": "Mobile apps",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
-    "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "HeaderRequireManualLogin": "Requerir entrada de usuario manual para:",
+    "HeaderRequireManualLoginHelp": "Cuando est\u00e1 desactivado los clientes saldr\u00e1n en la pantalla de inicio para seleccionarlos visualmente.",
+    "OptionOtherApps": "Otras aplicaciones",
+    "OptionMobileApps": "Aplicaciones m\u00f3viles",
+    "HeaderNotificationList": "Haga click en una notificaci\u00f3n para configurar sus opciones de env\u00edo.",
+    "NotificationOptionApplicationUpdateAvailable": "Disponible actualizaci\u00f3n de la aplicaci\u00f3n",
+    "NotificationOptionApplicationUpdateInstalled": "Se ha instalado la actualizaci\u00f3n de la aplicaci\u00f3n",
+    "NotificationOptionPluginUpdateInstalled": "Se ha instalado la actualizaci\u00f3n del plugin",
+    "NotificationOptionPluginInstalled": "Plugin instalado",
+    "NotificationOptionPluginUninstalled": "Plugin desinstalado",
+    "NotificationOptionVideoPlayback": "Reproducci\u00f3n de video",
+    "NotificationOptionAudioPlayback": "Reproducci\u00f3n de audio",
+    "NotificationOptionGamePlayback": "Iniciar juegos",
+    "NotificationOptionTaskFailed": "La tarea programada ha fallado",
+    "NotificationOptionInstallationFailed": "Fallo en la instalaci\u00f3n",
+    "NotificationOptionNewLibraryContent": "Nuevo contenido a\u00f1adido",
+    "SendNotificationHelp": "Por defecto, las notificaciones aparecer\u00e1n en el panel de control. Compruebe el cat\u00e1logo de plugins para instalar opciones adicionales para las notificaciones.",
+    "NotificationOptionServerRestartRequired": "Se requiere el reinicio del servidor",
+    "LabelNotificationEnabled": "Activar esta notificaci\u00f3n",
+    "LabelMonitorUsers": "Supervisar la actividad de:",
+    "LabelSendNotificationToUsers": "Enviar la notificaci\u00f3n a:",
+    "UsersNotNotifiedAboutSelfActivity": "Los usuarios no ser\u00e1n notificados acerca de sus propias actividades.",
+    "LabelUseNotificationServices": "Usar los siguientes servicios:",
+    "CategoryUser": "Usuario",
+    "CategorySystem": "Sistema",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "T\u00edtulo del mensaje:",
+    "LabelAvailableTokens": "Tokens disponibles:",
+    "AdditionalNotificationServices": "Visite el cat\u00e1logo de plugins para instalar servicios de notificaci\u00f3n adicionales.",
+    "OptionAllUsers": "Todos los usuarios",
+    "OptionAdminUsers": "Administradores",
+    "OptionCustomUsers": "A medida",
+    "ButtonArrowUp": "Arriba",
+    "ButtonArrowDown": "Abajo",
+    "ButtonArrowLeft": "Izquierda",
+    "ButtonArrowRight": "Derecha",
+    "ButtonBack": "Atr\u00e1s",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "P\u00e1gina arriba",
+    "ButtonPageDown": "P\u00e1gina abajo",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Inicio",
+    "ButtonSettings": "Opciones",
+    "ButtonTakeScreenshot": "Captura de pantalla",
+    "ButtonLetterUp": "Letter arriba",
+    "ButtonLetterDown": "Letter abajo",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Reproduciendo ahora",
+    "TabNavigation": "Navegaci\u00f3n",
+    "ButtonFullscreen": "Pantalla completa",
+    "ButtonScenes": "Escenas",
+    "ButtonSubtitles": "Subt\u00edtulos",
+    "ButtonAudioTracks": "Pistas de audio",
+    "ButtonPreviousTrack": "Pista anterior",
+    "ButtonNextTrack": "Pista siguiente",
+    "ButtonStop": "Detener",
+    "ButtonPause": "Pausa",
+    "LabelGroupMoviesIntoCollections": "Agrupar pel\u00edculas en colecciones",
+    "LabelGroupMoviesIntoCollectionsHelp": "Cuando se muestran las listas de pel\u00edculas, las pel\u00edculas pertenecientes a una colecci\u00f3n se mostrar\u00e1n como un elemento agrupado.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 61 - 25
MediaBrowser.Server.Implementations/Localization/Server/es_MX.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Ha Terminado!",
     "WelcomeToMediaBrowser": "\u00a1Bienvenido a Media Broswer!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "Este asistente le guiar\u00e1 a trav\u00e9s del proceso de instalaci\u00f3n,",
+    "ThisWizardWillGuideYou": "Este asistente le guiar\u00e1 a trav\u00e9s del proceso de instalaci\u00f3n. Para comenzar, por favor seleccione su lenguaje preferido.",
     "TellUsAboutYourself": "D\u00edganos sobre usted",
     "LabelYourFirstName": "Su nombre:",
     "MoreUsersCanBeAddedLater": "Se pueden agregar m\u00e1s usuarios posteriormente en el panel de control.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "El contenido con clasificaci\u00f3n parental superior se ocultar\u00e1 para este usuario.",
     "LibraryAccessHelp": "Seleccione las carpetas de medios para compartir con este usuario. Los administradores podr\u00e1n editar todas las carpetas usando el administrador de metadatos.",
     "ButtonDeleteImage": "Eliminar Imagen",
+    "LabelSelectUsers": "Seleccionar Usuarios:",
     "ButtonUpload": "Subir",
     "HeaderUploadNewImage": "Subir Nueva Imagen",
     "LabelDropImageHere": "Depositar Imagen Aqu\u00ed",
@@ -546,33 +547,68 @@
     "LabelWeatherDisplayLocation": "Ubicaci\u00f3n para pron\u00f3stico del tiempo:",
     "LabelWeatherDisplayLocationHelp": "C\u00f3digo ZIP de US \/ Ciudad, Estado, Pa\u00eds \/ Ciudad, Pa\u00eds",
     "LabelWeatherDisplayUnit": "Unidad para pron\u00f3stico del tiempo:",
-    "OptionCelsius": "\u00ba Cent\u00edgrados",
+    "OptionCelsius": "Cent\u00edgrados",
     "OptionFahrenheit": "Fahrenheit",
     "HeaderRequireManualLogin": "Requerir captura de nombre de usuario manual para:",
     "HeaderRequireManualLoginHelp": "Cuando se encuentra deshabilitado los clientes podr\u00edan mostrar una pantalla de inicio de sesi\u00f3n con una selecci\u00f3n visual de los usuarios.",
     "OptionOtherApps": "Otras applicaciones",
     "OptionMobileApps": "Apps m\u00f3viles",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
-    "SendNotificationHelp": "Las notificaciones son enviadas a la bandeja de entrada del panel de control. Navegue el cat\u00e1logo de  complementos para instalar opciones de notificaci\u00f3n adiconales.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "HeaderNotificationList": "Haga clic en una notificaci\u00f3n para configurar sus opciones de envio.",
+    "NotificationOptionApplicationUpdateAvailable": "Actualizaci\u00f3n de aplicaci\u00f3n disponible",
+    "NotificationOptionApplicationUpdateInstalled": "Actualizaci\u00f3n de aplicaci\u00f3n instalada",
+    "NotificationOptionPluginUpdateInstalled": "Actualizaci\u00f3n de complemento instalada",
+    "NotificationOptionPluginInstalled": "Complemento instalado",
+    "NotificationOptionPluginUninstalled": "Complemento desinstalado",
+    "NotificationOptionVideoPlayback": "Reproducci\u00f3n de video",
+    "NotificationOptionAudioPlayback": "Reproducci\u00f3n de audio",
+    "NotificationOptionGamePlayback": "Ejecuci\u00f3n de juegos",
+    "NotificationOptionTaskFailed": "Falla de tarea programada",
+    "NotificationOptionInstallationFailed": "Falla de instalaci\u00f3n",
+    "NotificationOptionNewLibraryContent": "Adici\u00f3n de nuevos contenidos",
+    "SendNotificationHelp": "Por omisi\u00f3n, las notificaciones son enviadas a la bandeja de entrada del panel de control. Navegue el cat\u00e1logo de  complementos para instalar opciones de notificaci\u00f3n adiconales.",
+    "NotificationOptionServerRestartRequired": "Reinicio del servidor requerido",
+    "LabelNotificationEnabled": "Habilitar esta notificaci\u00f3n",
+    "LabelMonitorUsers": "Monitorear actividad desde:",
+    "LabelSendNotificationToUsers": "Enviar la notificaci\u00f3n a:",
+    "UsersNotNotifiedAboutSelfActivity": "Los usuarios no ser\u00e1n notificados sobre sus propias actividades.",
+    "LabelUseNotificationServices": "Utilizar los siguientes servicios:",
+    "CategoryUser": "Usuario",
+    "CategorySystem": "Sistema",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "T\u00edtulo del Mensaje:",
+    "LabelAvailableTokens": "Detalles disponibles:",
+    "AdditionalNotificationServices": "Navegue el cat\u00e1logo de complementos para instalar servicios de notificaci\u00f3n adiconales.",
+    "OptionAllUsers": "Todos los usuarios",
+    "OptionAdminUsers": "Administradores",
+    "OptionCustomUsers": "Personalizado",
+    "ButtonArrowUp": "Arriba",
+    "ButtonArrowDown": "Abajo",
+    "ButtonArrowLeft": "Izquierda",
+    "ButtonArrowRight": "Derecha",
+    "ButtonBack": "Atr\u00e1s",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "P\u00e1gina arriba",
+    "ButtonPageDown": "P\u00e1gina abajo",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Inicio",
+    "ButtonSettings": "Configuraci\u00f3n",
+    "ButtonTakeScreenshot": "Capturar Pantalla",
+    "ButtonLetterUp": "Siguiente letra",
+    "ButtonLetterDown": "Letra anterior",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Reproduci\u00e9ndo Ahora",
+    "TabNavigation": "Navegaci\u00f3n",
+    "ButtonFullscreen": "Alternar pantalla completa",
+    "ButtonScenes": "Escenas",
+    "ButtonSubtitles": "Subt\u00edtulos",
+    "ButtonAudioTracks": "Pistas de audio",
+    "ButtonPreviousTrack": "Pista anterior",
+    "ButtonNextTrack": "Pista siguiente",
+    "ButtonStop": "Detener",
+    "ButtonPause": "Pausar",
+    "LabelGroupMoviesIntoCollections": "Agrupar pel\u00edculas en colecciones",
+    "LabelGroupMoviesIntoCollectionsHelp": "Cuando se despliegan listados de pel\u00edculas, las pel\u00edculas que pertenecen a una colecci\u00f3n ser\u00e1n desplegadas agrupadas en un solo \u00edtem.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 38 - 2
MediaBrowser.Server.Implementations/Localization/Server/fr.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Vous avez Termin\u00e9!",
     "WelcomeToMediaBrowser": "Bienvenue dans Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration.",
+    "ThisWizardWillGuideYou": "Cet assistant vous guidera dans le processus de configuration. Pour commencer, SVP s\u00e9lectionnez votre langue pr\u00e9f\u00e9r\u00e9e.",
     "TellUsAboutYourself": "Parlez-nous de vous",
     "LabelYourFirstName": "Votre pr\u00e9nom:",
     "MoreUsersCanBeAddedLater": "D'autres utilisateurs pourront \u00eatre ajout\u00e9s ult\u00e9rieurement \u00e0 partir du tableau de bord.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Le contenu avec une note d'\u00e9valuation de contr\u00f4le parental plus \u00e9lev\u00e9e ne sera pas visible par cet utilisateur.",
     "LibraryAccessHelp": "Selectionnez le r\u00e9pertoire de m\u00e9dia \u00e0 partager avec cet utilisateur. Les administrateurs pourront modifier tous les r\u00e9pertoires en utilisant le gestionnaire de m\u00e9tadonn\u00e9es.",
     "ButtonDeleteImage": "Supprimer Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Envoyer",
     "HeaderUploadNewImage": "Envoyer nouvelle image",
     "LabelDropImageHere": "Placer image ici",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Utiliser les services suivants:",
     "CategoryUser": "Utilisateur",
     "CategorySystem": "Syst\u00e8me",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 61 - 25
MediaBrowser.Server.Implementations/Localization/Server/he.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "\u05e1\u05d9\u05d9\u05de\u05ea!",
     "WelcomeToMediaBrowser": "\u05d1\u05e8\u05d5\u05da \u05d4\u05d1\u05d0 \u05dc- Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "\u05d4\u05d0\u05e9\u05e3 \u05d4\u05d6\u05d4 \u05d9\u05e2\u05d6\u05d5\u05e8 \u05dc\u05da \u05d1\u05d4\u05ea\u05dc\u05d9\u05da \u05d4\u05d4\u05ea\u05e7\u05e0\u05d4.",
+    "ThisWizardWillGuideYou": "\u05d0\u05e9\u05e3 \u05d6\u05d4 \u05d9\u05e2\u05d6\u05d5\u05e8 \u05dc\u05da \u05d1\u05d4\u05ea\u05dc\u05d9\u05da \u05d4\u05d4\u05ea\u05e7\u05e0\u05d4.",
     "TellUsAboutYourself": "\u05e1\u05e4\u05e8 \u05dc\u05e0\u05d5 \u05e2\u05dc \u05e2\u05e6\u05de\u05da",
     "LabelYourFirstName": "\u05e9\u05de\u05da \u05d4\u05e4\u05e8\u05d8\u05d9:",
     "MoreUsersCanBeAddedLater": "\u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05d2\u05d3\u05d9\u05e8 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd \u05de\u05d0\u05d5\u05d7\u05e8 \u05d9\u05d5\u05ea\u05e8 \u05d3\u05e8\u05da \u05dc\u05d5\u05d7 \u05d4\u05d1\u05e7\u05e8\u05d4.",
@@ -55,7 +55,7 @@
     "TabProfile": "\u05e4\u05e8\u05d5\u05e4\u05d9\u05dc",
     "TabMetadata": "Metadata",
     "TabImages": "\u05ea\u05de\u05d5\u05e0\u05d5\u05ea",
-    "TabNotifications": "Notifications",
+    "TabNotifications": "\u05d4\u05ea\u05e8\u05d0\u05d5\u05ea",
     "TabCollectionTitles": "\u05db\u05d5\u05ea\u05e8\u05d9\u05dd",
     "LabelDisplayMissingEpisodesWithinSeasons": "\u05d4\u05e6\u05d2 \u05e4\u05e8\u05e7\u05d9\u05dd \u05d7\u05e1\u05e8\u05d9\u05dd \u05d1\u05ea\u05d5\u05da \u05d4\u05e2\u05d5\u05e0\u05d5\u05ea",
     "LabelUnairedMissingEpisodesWithinSeasons": "\u05d4\u05e6\u05d2 \u05e4\u05e8\u05e7\u05d9\u05dd \u05e9\u05e2\u05d3\u05d9\u05df \u05d0\u05dc \u05e9\u05d5\u05d3\u05e8\u05d5 \u05d1\u05ea\u05d5\u05da \u05d4\u05e2\u05d5\u05e0\u05d5\u05ea",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "\u05ea\u05d5\u05db\u05df \u05e2\u05dd \u05d3\u05d9\u05e8\u05d5\u05d2 \u05d2\u05d5\u05d1\u05d4 \u05d9\u05d5\u05ea\u05e8 \u05d9\u05d5\u05e1\u05ea\u05e8 \u05de\u05d4\u05de\u05e9\u05ea\u05de\u05e9.",
     "LibraryAccessHelp": "\u05d1\u05d7\u05e8 \u05d0\u05ea \u05e1\u05e4\u05e8\u05d9\u05d5\u05ea \u05d4\u05de\u05d3\u05d9\u05d4 \u05d0\u05e9\u05e8 \u05d9\u05e9\u05d5\u05ea\u05e4\u05d5 \u05e2\u05dd \u05d4\u05de\u05e9\u05ea\u05de\u05e9. \u05de\u05e0\u05d4\u05dc\u05d9\u05dd \u05d9\u05d5\u05db\u05dc\u05d5 \u05dc\u05e2\u05e8\u05d5\u05ea \u05d0\u05ea \u05db\u05dc \u05d4\u05ea\u05d9\u05e7\u05d9\u05d5\u05ea \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05e2\u05d5\u05e8\u05da \u05d4\u05de\u05d9\u05d3\u05e2.",
     "ButtonDeleteImage": "\u05de\u05d7\u05e7 \u05ea\u05de\u05d5\u05e0\u05d4",
+    "LabelSelectUsers": "\u05d1\u05d7\u05e8 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd:",
     "ButtonUpload": "\u05d4\u05e2\u05dc\u05d4",
     "HeaderUploadNewImage": "\u05d4\u05e2\u05dc\u05d4 \u05ea\u05de\u05d5\u05e0\u05d4 \u05d7\u05d3\u05e9\u05d4",
     "LabelDropImageHere": "\u05e9\u05d7\u05e8\u05e8 \u05ea\u05de\u05d5\u05e0\u05d4 \u05db\u05d0\u05df",
@@ -552,27 +553,62 @@
     "HeaderRequireManualLoginHelp": "\u05db\u05d0\u05e9\u05e8 \u05de\u05d1\u05d5\u05d8\u05dc, \u05d9\u05d5\u05e6\u05d2 \u05dc\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05dc\u05d5\u05d7 \u05d4\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05e2\u05dd \u05d1\u05d7\u05d9\u05e8\u05ea \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd.",
     "OptionOtherApps": "\u05ea\u05d5\u05db\u05e0\u05d5\u05ea \u05d0\u05d7\u05e8\u05d5\u05ea",
     "OptionMobileApps": "\u05d0\u05e4\u05dc\u05d9\u05e7\u05e6\u05d9\u05d5\u05ea \u05dc\u05e0\u05d9\u05d9\u05d3",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
-    "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "HeaderNotificationList": "\u05dc\u05d7\u05e5 \u05e2\u05dc \u05d4\u05ea\u05e8\u05d0\u05d4 \u05dc\u05d4\u05d2\u05d3\u05e8\u05ea \u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e9\u05dc\u05d9\u05d7\u05d4 \u05e9\u05dc\u05d4",
+    "NotificationOptionApplicationUpdateAvailable": "\u05e2\u05d3\u05db\u05d5\u05df \u05ea\u05d5\u05db\u05de\u05d4 \u05e7\u05d9\u05d9\u05dd",
+    "NotificationOptionApplicationUpdateInstalled": "\u05e2\u05d3\u05db\u05d5\u05df \u05ea\u05d5\u05db\u05e0\u05d4 \u05d4\u05d5\u05ea\u05e7\u05df",
+    "NotificationOptionPluginUpdateInstalled": "\u05e2\u05d3\u05db\u05d5\u05df \u05ea\u05d5\u05e1\u05e3 \u05d4\u05d5\u05ea\u05e7\u05df",
+    "NotificationOptionPluginInstalled": "\u05ea\u05d5\u05e1\u05e3 \u05d4\u05d5\u05ea\u05e7\u05df",
+    "NotificationOptionPluginUninstalled": "\u05ea\u05d5\u05e1\u05e3 \u05d4\u05d5\u05e1\u05e8",
+    "NotificationOptionVideoPlayback": "\u05e0\u05d9\u05d2\u05d5\u05df \u05d5\u05d5\u05d9\u05d3\u05d0\u05d5",
+    "NotificationOptionAudioPlayback": "\u05e0\u05d9\u05d2\u05d5\u05df \u05d0\u05d5\u05d3\u05d9\u05d5",
+    "NotificationOptionGamePlayback": "\u05d4\u05e6\u05d2\u05ea \u05de\u05e9\u05d7\u05e7",
+    "NotificationOptionTaskFailed": "\u05de\u05e9\u05d9\u05de\u05d4 \u05de\u05ea\u05d5\u05d6\u05de\u05e0\u05ea \u05e0\u05db\u05e9\u05dc\u05d4",
+    "NotificationOptionInstallationFailed": "\u05d4\u05ea\u05e7\u05e0\u05d4 \u05e0\u05db\u05e9\u05dc\u05d4",
+    "NotificationOptionNewLibraryContent": "\u05ea\u05d5\u05db\u05df \u05d7\u05d3\u05e9 \u05e0\u05d5\u05e1\u05e3",
+    "SendNotificationHelp": "\u05d1\u05e8\u05d9\u05e8\u05ea \u05d4\u05de\u05d7\u05d3\u05dc \u05d4\u05d9\u05d0 \u05e9\u05d4\u05ea\u05e8\u05d0\u05d5\u05ea \u05de\u05d2\u05d9\u05e2\u05d5\u05ea \u05dc\u05ea\u05d9\u05d1\u05ea \u05d4\u05d3\u05d5\u05d0\u05e8 \u05d4\u05e0\u05db\u05e0\u05e1 \u05e9\u05dc \u05dc\u05d5\u05d7 \u05d4\u05d1\u05e7\u05e8\u05d4. \u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d8\u05dc\u05d5\u05d2 \u05d4\u05ea\u05d5\u05e1\u05e4\u05d9\u05dd \u05db\u05d3\u05d9 \u05dc\u05d4\u05ea\u05e7\u05d9\u05df \u05d0\u05e4\u05e9\u05e8\u05d5\u05d9\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d5\u05ea \u05dc\u05e7\u05d1\u05dc\u05ea \u05d4\u05ea\u05e8\u05d0\u05d5\u05ea",
+    "NotificationOptionServerRestartRequired": "\u05e0\u05d3\u05e8\u05e9\u05ea \u05d4\u05e4\u05e2\u05dc\u05d4 \u05de\u05d7\u05d3\u05e9 \u05e9\u05dc \u05d4\u05e9\u05e8\u05ea",
+    "LabelNotificationEnabled": "\u05d0\u05e4\u05e9\u05e8 \u05d4\u05ea\u05e8\u05d0\u05d4 \u05d6\u05d5",
+    "LabelMonitorUsers": "\u05e2\u05e7\u05d5\u05d1 \u05d0\u05d7\u05e8 \u05e4\u05e2\u05d9\u05dc\u05d5\u05ea \u05de:",
+    "LabelSendNotificationToUsers": "\u05e9\u05dc\u05d7 \u05d0\u05ea \u05d4\u05d4\u05ea\u05e8\u05d0\u05d4 \u05dc:",
+    "UsersNotNotifiedAboutSelfActivity": "\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05dc\u05d0 \u05d9\u05e7\u05d1\u05dc\u05d5 \u05d4\u05d5\u05d3\u05e2\u05d5\u05ea \u05dc\u05d2\u05d1\u05d9 \u05d4\u05e4\u05e2\u05d9\u05dc\u05d5\u05ea \u05e9\u05dc\u05d4\u05dd",
+    "LabelUseNotificationServices": "\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05e9\u05d9\u05e8\u05d5\u05ea\u05d9\u05dd \u05d4\u05d1\u05d0\u05d9\u05dd:",
+    "CategoryUser": "\u05de\u05e9\u05ea\u05de\u05e9",
+    "CategorySystem": "\u05de\u05e2\u05e8\u05db\u05ea",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "\u05db\u05d5\u05ea\u05e8\u05ea \u05d4\u05d5\u05d3\u05e2\u05d4:",
+    "LabelAvailableTokens": "\u05d0\u05e1\u05d9\u05de\u05d5\u05e0\u05d9\u05dd \u05e7\u05d9\u05d9\u05de\u05d9\u05dd",
+    "AdditionalNotificationServices": "\u05e2\u05d9\u05d9\u05df \u05d1\u05e7\u05d8\u05dc\u05d5\u05d2 \u05d4\u05ea\u05d5\u05e1\u05e4\u05d9\u05dd \u05dc\u05d4\u05ea\u05e7\u05e0\u05ea \u05e9\u05e8\u05d5\u05ea\u05d9 \u05d4\u05ea\u05e8\u05d0\u05d5\u05ea \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd",
+    "OptionAllUsers": "\u05db\u05dc \u05d4\u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd",
+    "OptionAdminUsers": "\u05de\u05e0\u05d4\u05dc\u05d9\u05dd",
+    "OptionCustomUsers": "\u05de\u05d5\u05ea\u05d0\u05dd \u05d0\u05d9\u05e9\u05d9\u05ea",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 67 - 31
MediaBrowser.Server.Implementations/Localization/Server/it.json

@@ -55,7 +55,7 @@
     "TabProfile": "Profilo",
     "TabMetadata": "Metadata",
     "TabImages": "Immagini",
-    "TabNotifications": "Notifications",
+    "TabNotifications": "Notifiche",
     "TabCollectionTitles": "Titolo",
     "LabelDisplayMissingEpisodesWithinSeasons": "Visualizza gli episodi mancanti  nelle stagioni",
     "LabelUnairedMissingEpisodesWithinSeasons": "Visualizzare episodi mai andati in onda all'interno stagioni",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Contento di un punteggio pi\u00f9 elevato sar\u00e0 nascosto da questo utente.",
     "LibraryAccessHelp": "Selezionare le cartelle multimediali da condividere con questo utente. Gli amministratori saranno in grado di modificare tutte le cartelle utilizzando il gestore dei metadati.",
     "ButtonDeleteImage": "Elimina immagine",
+    "LabelSelectUsers": "Seleziona Utenti:",
     "ButtonUpload": "Carica",
     "HeaderUploadNewImage": "Carica nuova immagine",
     "LabelDropImageHere": "Trascina immagine qui",
@@ -277,7 +278,7 @@
     "HeaderPleaseSignIn": "Per favore accedi",
     "LabelUser": "Utente:",
     "LabelPassword": "Password:",
-    "ButtonManualLogin": "Accesso Manuale:",
+    "ButtonManualLogin": "Accesso Manuale",
     "PasswordLocalhostMessage": "Le password non sono richieste quando l'accesso e fatto da questo pc.",
     "TabGuide": "Guida",
     "TabChannels": "Canali",
@@ -543,36 +544,71 @@
     "LabelDefaultUserHelp": "Determina quale libreria utente deve essere visualizzato sui dispositivi collegati. Questo pu\u00f2 essere disattivata tramite un profilo di dispositivo.",
     "TitleDlna": "DLNA",
     "HeaderServerSettings": "Impostazioni server",
-    "LabelWeatherDisplayLocation": "Weather display location:",
-    "LabelWeatherDisplayLocationHelp": "US zip code \/ City, State, Country \/ City, Country",
-    "LabelWeatherDisplayUnit": "Weather display unit:",
+    "LabelWeatherDisplayLocation": "Localit\u00e0 previsione",
+    "LabelWeatherDisplayLocationHelp": "Citt\u00e0,Stato",
+    "LabelWeatherDisplayUnit": "Unita di Misura",
     "OptionCelsius": "Celsius",
     "OptionFahrenheit": "Fahrenheit",
-    "HeaderRequireManualLogin": "Require manual username entry for:",
-    "HeaderRequireManualLoginHelp": "When disabled clients may present a login screen with a visual selection of users.",
-    "OptionOtherApps": "Other apps",
+    "HeaderRequireManualLogin": "Richiedi l'inserimento manuale utente per:",
+    "HeaderRequireManualLoginHelp": "Quando i client disabilitati possono presentare una schermata di login con una selezione visuale di utenti.",
+    "OptionOtherApps": "Altre apps",
     "OptionMobileApps": "Mobile apps",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
-    "SendNotificationHelp": "By default, notifications are delivered to the dashboard inbox. Browse the plugin catalog to install additional notification options.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "HeaderNotificationList": "Fare clic su una notifica per configurare \u00e8 l'invio di opzioni.",
+    "NotificationOptionApplicationUpdateAvailable": "Aggiornamento dell'applicazione disponibile",
+    "NotificationOptionApplicationUpdateInstalled": "Aggiornamento dell'applicazione installata",
+    "NotificationOptionPluginUpdateInstalled": "Aggiornamento del plugin installato",
+    "NotificationOptionPluginInstalled": "plugin installato",
+    "NotificationOptionPluginUninstalled": "Plugin disinstallato",
+    "NotificationOptionVideoPlayback": "Riproduzione video",
+    "NotificationOptionAudioPlayback": "Riproduzione Audio",
+    "NotificationOptionGamePlayback": "Riproduzione gioco",
+    "NotificationOptionTaskFailed": "Fallimento operazione pianificata",
+    "NotificationOptionInstallationFailed": "errore di installazione",
+    "NotificationOptionNewLibraryContent": "Nuovo contenuto aggiunto",
+    "SendNotificationHelp": "Per impostazione predefinita, le notifiche vengono consegnate al cruscotto della Posta in arrivo . Sfoglia il catalogo plugin da installare opzioni di notifica aggiuntive.",
+    "NotificationOptionServerRestartRequired": "Riavvio del server necessaria",
+    "LabelNotificationEnabled": "Abilita questa notifica",
+    "LabelMonitorUsers": "Monitorare l'attivit\u00e0 da:",
+    "LabelSendNotificationToUsers": "Spedisci notifiche a:",
+    "UsersNotNotifiedAboutSelfActivity": "Gli utenti non saranno informati sulle proprie attivit\u00e0.",
+    "LabelUseNotificationServices": "Utilizzare i seguenti servizi:",
+    "CategoryUser": "Utente",
+    "CategorySystem": "Sistema",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "Titolo messaggio:",
+    "LabelAvailableTokens": "Gettoni disponibili:",
+    "AdditionalNotificationServices": "Sfoglia il catalogo plugin per installare i servizi di notifica aggiuntivi.",
+    "OptionAllUsers": "Tutti gli utenti",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Su",
+    "ButtonArrowDown": "Gi\u00f9",
+    "ButtonArrowLeft": "Sinistra",
+    "ButtonArrowRight": "Destra",
+    "ButtonBack": "Indietro",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Pagina Su",
+    "ButtonPageDown": "Pagina Gi\u00f9",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Impostazioni",
+    "ButtonTakeScreenshot": "Cattura schermata",
+    "ButtonLetterUp": "Lettera Su",
+    "ButtonLetterDown": "Lettera Gi\u00f9",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "e",
+    "TabNowPlaying": "In esecuzione",
+    "TabNavigation": "Navigazione",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

Разница между файлами не показана из-за своего большого размера
+ 3 - 4
MediaBrowser.Server.Implementations/Localization/Server/kk.json


+ 38 - 2
MediaBrowser.Server.Implementations/Localization/Server/ms.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Kamu Selesai!",
     "WelcomeToMediaBrowser": "Welcome to Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process.",
+    "ThisWizardWillGuideYou": "This wizard will help guide you through the setup process. To begin, please select your preferred language.",
     "TellUsAboutYourself": "Tell us about yourself",
     "LabelYourFirstName": "Your first name:",
     "MoreUsersCanBeAddedLater": "More users can be added later within the Dashboard.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Content with a higher rating will be hidden from this user.",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Delete Image",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Upload",
     "HeaderUploadNewImage": "Upload New Image",
     "LabelDropImageHere": "Drop Image Here",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Innhold med h\u00f8yere aldersgrense vil bli skjult for brukeren",
     "LibraryAccessHelp": "Select the media folders to share with this user. Administrators will be able to edit all folders using the metadata manager.",
     "ButtonDeleteImage": "Slett bilde",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Last opp",
     "HeaderUploadNewImage": "Last opp nytt bilde",
     "LabelDropImageHere": "Slipp bilde her",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 56 - 20
MediaBrowser.Server.Implementations/Localization/Server/nl.json

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Media met een hogere classificatie wordt niet weergegeven",
     "LibraryAccessHelp": "Selecteer de mediamappen om met deze gebruiker te delen. Beheerders kunnen alle mappen bewerken via de metagegevens manager.",
     "ButtonDeleteImage": "Verwijder afbeelding",
+    "LabelSelectUsers": "Selecteer gebruikers:",
     "ButtonUpload": "Uploaden",
     "HeaderUploadNewImage": "Nieuwe afbeelding uploaden",
     "LabelDropImageHere": "Hier afbeelding plaatsen",
@@ -553,26 +554,61 @@
     "OptionOtherApps": "Overige apps",
     "OptionMobileApps": "Mobiele apps",
     "HeaderNotificationList": "Klik op een melding om de opties voor het versturen ervan te configureren .",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
+    "NotificationOptionApplicationUpdateAvailable": "Programma-update beschikbaar",
+    "NotificationOptionApplicationUpdateInstalled": "Programma-update ge\u00efnstalleerd",
+    "NotificationOptionPluginUpdateInstalled": "Plugin-update ge\u00efnstalleerd",
+    "NotificationOptionPluginInstalled": "Plugin ge\u00efnstalleerd",
+    "NotificationOptionPluginUninstalled": "Plugin verwijderd",
+    "NotificationOptionVideoPlayback": "Video afspelen",
+    "NotificationOptionAudioPlayback": "Audio afspelen",
+    "NotificationOptionGamePlayback": "Afspelen spel",
+    "NotificationOptionTaskFailed": "Mislukken van de geplande taak",
+    "NotificationOptionInstallationFailed": "Mislukken van de installatie",
+    "NotificationOptionNewLibraryContent": "Nieuwe content toegevoegd",
     "SendNotificationHelp": "Meldingen worden geplaatst in de dashboard inbox. Blader door de Plug-ins catalogus om aanvullende opties voor meldingen te installeren.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
+    "NotificationOptionServerRestartRequired": "Server herstart nodig",
     "LabelNotificationEnabled": "Deze melding inschakelen",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelMonitorUsers": "Monitor activiteit van:",
+    "LabelSendNotificationToUsers": "Stuur de melding naar:",
+    "UsersNotNotifiedAboutSelfActivity": "Gebruikers zullen niet worden ge\u00efnformeerd over hun eigen activiteiten.",
+    "LabelUseNotificationServices": "Gebruik de volgende diensten:",
+    "CategoryUser": "Gebruiker",
+    "CategorySystem": "Systeem",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "Titel van het bericht:",
+    "LabelAvailableTokens": "Beschikbaar tokens:",
+    "AdditionalNotificationServices": "Blader door de plug-in catalogus om aanvullende meldingsdiensten te installeren.",
+    "OptionAllUsers": "Alle gebruikers",
+    "OptionAdminUsers": "Beheerders",
+    "OptionCustomUsers": "Aangepast",
+    "ButtonArrowUp": "Omhoog",
+    "ButtonArrowDown": "Omlaag",
+    "ButtonArrowLeft": "Links",
+    "ButtonArrowRight": "Rechts",
+    "ButtonBack": "Terug",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Start",
+    "ButtonSettings": "Instellingen",
+    "ButtonTakeScreenshot": "Vang Schermafbeelding",
+    "ButtonLetterUp": "Letter omhoog",
+    "ButtonLetterDown": "Letter omlaag",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Wordt nu afgespeeld",
+    "TabNavigation": "Navigatie",
+    "ButtonFullscreen": "Volledig scherm in-\/uitschakelen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Ondertitels",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Vorige track",
+    "ButtonNextTrack": "Volgende track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pauze",
+    "LabelGroupMoviesIntoCollections": "Groepeer films in verzamelingen",
+    "LabelGroupMoviesIntoCollectionsHelp": "Bij de weergave van film lijsten, zullen films die behoren tot een verzameling worden weergegeven als een gegroepeerd object.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 60 - 24
MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Pronto!",
     "WelcomeToMediaBrowser": "Bem Vindo ao Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "Este assistente ir\u00e1 gui\u00e1-lo pelo processo de instala\u00e7\u00e3o.",
+    "ThisWizardWillGuideYou": "Este assistente ir\u00e1 gui\u00e1-lo pelo processo de instala\u00e7\u00e3o. Para come\u00e7ar, por favor selecione seu idioma preferido.",
     "TellUsAboutYourself": "Conte-nos sobre voc\u00ea",
     "LabelYourFirstName": "Seu primeiro nome:",
     "MoreUsersCanBeAddedLater": "Mais usu\u00e1rios podem ser adicionados dentro do Painel.",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Conte\u00fado com classifica\u00e7\u00e3o maior ser\u00e1 ocultado do usu\u00e1rio.",
     "LibraryAccessHelp": "Selecionar as pastas de m\u00eddia para compartilhar com este usu\u00e1rio. Administradores poder\u00e3o editar todas as pastas usando o gerenciador de metadados.",
     "ButtonDeleteImage": "Apagar Imagem",
+    "LabelSelectUsers": "Selecionar usu\u00e1rios:",
     "ButtonUpload": "Carregar",
     "HeaderUploadNewImage": "Carregar Nova Imagem",
     "LabelDropImageHere": "Soltar Imagem Aqui",
@@ -552,27 +553,62 @@
     "HeaderRequireManualLoginHelp": "Quando desativados, os clientes podem mostrar a tela de login com uma sele\u00e7\u00e3o visual de usu\u00e1rios.",
     "OptionOtherApps": "Outras apps",
     "OptionMobileApps": "Apps m\u00f3veis",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
-    "SendNotificationHelp": "Notifica\u00e7\u00f5es s\u00e3o entregues \u00e0 caixa de entrada do painel.  Navegue pelo cat\u00e1logo de plugins para instalar op\u00e7\u00f5es adicionais de notifica\u00e7\u00f5es.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
-    "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "HeaderNotificationList": "Clique em uma notifica\u00e7\u00e3o para configurar suas op\u00e7\u00f5es de envio.",
+    "NotificationOptionApplicationUpdateAvailable": "Atualiza\u00e7\u00e3o da aplica\u00e7\u00e3o disponivel",
+    "NotificationOptionApplicationUpdateInstalled": "Atualiza\u00e7\u00e3o da aplica\u00e7\u00e3o instalada",
+    "NotificationOptionPluginUpdateInstalled": "Atualiza\u00e7\u00e3o do plugin instalada",
+    "NotificationOptionPluginInstalled": "Plugin instalado",
+    "NotificationOptionPluginUninstalled": "Plugin desinstalado",
+    "NotificationOptionVideoPlayback": "Reprodu\u00e7\u00e3o de v\u00eddeo",
+    "NotificationOptionAudioPlayback": "Reprodu\u00e7\u00e3o de \u00e1udio",
+    "NotificationOptionGamePlayback": "Reprodu\u00e7\u00e3o de jogo",
+    "NotificationOptionTaskFailed": "Falha na tarefa agendada",
+    "NotificationOptionInstallationFailed": "Falha na instala\u00e7\u00e3o",
+    "NotificationOptionNewLibraryContent": "Adicionado novo conte\u00fado",
+    "SendNotificationHelp": "Por padr\u00e3o, notifica\u00e7\u00f5es s\u00e3o entregues \u00e0 caixa de entrada do painel.  Navegue pelo cat\u00e1logo de plugins para instalar op\u00e7\u00f5es adicionais de notifica\u00e7\u00f5es.",
+    "NotificationOptionServerRestartRequired": "Necessidade de reiniciar servidor",
+    "LabelNotificationEnabled": "Ativar esta notifica\u00e7\u00e3o",
+    "LabelMonitorUsers": "Monitorar atividade de:",
+    "LabelSendNotificationToUsers": "Enviar notifica\u00e7\u00e3o para:",
+    "UsersNotNotifiedAboutSelfActivity": "Os usu\u00e1rios n\u00e3o ser\u00e3o notificados sobre suas pr\u00f3prias atividades.",
+    "LabelUseNotificationServices": "Usar os seguintes servi\u00e7os:",
+    "CategoryUser": "Usu\u00e1rio",
+    "CategorySystem": "Sistema",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "T\u00edtulo da mensagem:",
+    "LabelAvailableTokens": "Tokens dispon\u00edveis:",
+    "AdditionalNotificationServices": "Navegue pelo cat\u00e1logo do plugin para instalar servi\u00e7os adicionais de notifica\u00e7\u00e3o.",
+    "OptionAllUsers": "Todos os usu\u00e1rios",
+    "OptionAdminUsers": "Administradores",
+    "OptionCustomUsers": "Personalizado",
+    "ButtonArrowUp": "Para cima",
+    "ButtonArrowDown": "Para baixo",
+    "ButtonArrowLeft": "Esquerda",
+    "ButtonArrowRight": "Direita",
+    "ButtonBack": "Voltar",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Subir P\u00e1gina",
+    "ButtonPageDown": "Descer P\u00e1gina",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "In\u00edcio",
+    "ButtonSettings": "Ajustes",
+    "ButtonTakeScreenshot": "Capturar Tela",
+    "ButtonLetterUp": "Letra Acima",
+    "ButtonLetterDown": "Letra Abaixo",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Reproduzindo Agora",
+    "TabNavigation": "Navega\u00e7\u00e3o",
+    "ButtonFullscreen": "Alternar tela cheia",
+    "ButtonScenes": "Cenas",
+    "ButtonSubtitles": "Legendas",
+    "ButtonAudioTracks": "Faixas de \u00e1udio",
+    "ButtonPreviousTrack": "Faixa anterior",
+    "ButtonNextTrack": "Pr\u00f3xima faixa",
+    "ButtonStop": "Parar",
+    "ButtonPause": "Pausar",
+    "LabelGroupMoviesIntoCollections": "Agrupar filmes nas cole\u00e7\u00f5es",
+    "LabelGroupMoviesIntoCollectionsHelp": "Ao exibir listas de filmes, filmes que perten\u00e7am a uma cole\u00e7\u00e3o ser\u00e3o exibidos como um \u00fanico item agrupado.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 38 - 2
MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json

@@ -16,7 +16,7 @@
     "LabelYoureDone": "Concluiu!",
     "WelcomeToMediaBrowser": "Bem-vindo ao Media Browser!",
     "TitleMediaBrowser": "Media Browser",
-    "ThisWizardWillGuideYou": "Este assistente ir\u00e1 ajud\u00e1-lo durante o processo de configura\u00e7\u00e3o.",
+    "ThisWizardWillGuideYou": "Este assistente ir\u00e1 ajud\u00e1-lo durante o processo de configura\u00e7\u00e3o. Para come\u00e7ar, selecione o idioma.",
     "TellUsAboutYourself": "Fale-nos sobre si",
     "LabelYourFirstName": "O seu primeiro nome:",
     "MoreUsersCanBeAddedLater": "\u00c9 poss\u00edvel adicionar utilizadores mais tarde no Painel Principal",
@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Conte\u00fado com classifica\u00e7\u00e3o mais elevada ser\u00e1 escondida deste utilizador.",
     "LibraryAccessHelp": "Escolha as pastas de media a partilha com este utilizador. Os Administradores poder\u00e3o editar todas as pastas, usando o Gestor de Metadados.",
     "ButtonDeleteImage": "Apagar imagem",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "Carregar",
     "HeaderUploadNewImage": "Carregar Nova Imagem",
     "LabelDropImageHere": "Largar imagem aqui",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

Разница между файлами не показана из-за своего большого размера
+ 2 - 3
MediaBrowser.Server.Implementations/Localization/Server/ru.json


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

@@ -578,6 +578,8 @@
 	"LabelUseNotificationServices": "Use the following services:",
 	"CategoryUser": "User",
 	"CategorySystem": "System",
+	"CategoryApplication": "Application",
+	"CategoryPlugin": "Plugin",
 	"LabelMessageTitle": "Message title:",
 	"LabelAvailableTokens": "Available tokens:",
 	"AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
@@ -602,5 +604,17 @@
 	"PageButtonAbbreviation": "PG",
 	"LetterButtonAbbreviation": "A",
 	"TabNowPlaying": "Now Playing",
-	"TabNavigation": "Navigation"
+	"TabNavigation": "Navigation",
+	"ButtonFullscreen": "Toggle fullscreen",
+	"ButtonScenes": "Scenes",
+	"ButtonSubtitles": "Subtitles",
+	"ButtonAudioTracks": "Audio tracks",
+	"ButtonPreviousTrack": "Previous track",
+	"ButtonNextTrack": "Next track",
+	"ButtonStop": "Stop",
+	"ButtonPlay": "Play",
+	"ButtonPause": "Pause",
+	"LabelGroupMoviesIntoCollections": "Group movies into collections",
+	"LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+	"NotificationOptionPluginError": "Plugin failure"
 }

+ 57 - 21
MediaBrowser.Server.Implementations/Localization/Server/sv.json

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "Inneh\u00e5ll med h\u00f6gre gr\u00e4ns visas ej f\u00f6r den h\u00e4r anv\u00e4ndaren.",
     "LibraryAccessHelp": "Ange vilka mediamappar den h\u00e4r anv\u00e4ndaren ska ha tillg\u00e5ng till. Administrat\u00f6rer har r\u00e4ttighet att redigera alla mappar i metadatahanteraren.",
     "ButtonDeleteImage": "Ta bort bild",
+    "LabelSelectUsers": "V\u00e4lj anv\u00e4ndare:",
     "ButtonUpload": "Ladda upp",
     "HeaderUploadNewImage": "Ladda upp ny bild",
     "LabelDropImageHere": "Dra-och-sl\u00e4pp bild h\u00e4r",
@@ -552,27 +553,62 @@
     "HeaderRequireManualLoginHelp": "Om avaktiverat kan klienterna visa en inloggningsbild f\u00f6r visuellt val av anv\u00e4ndare.",
     "OptionOtherApps": "Andra appar",
     "OptionMobileApps": "Mobilappar",
-    "HeaderNotificationList": "Click on a notification to configure it's sending options.",
-    "NotificationOptionApplicationUpdateAvailable": "Application update available",
-    "NotificationOptionApplicationUpdateInstalled": "Application update installed",
-    "NotificationOptionPluginUpdateInstalled": "Plugin update installed",
-    "NotificationOptionPluginInstalled": "Plugin installed",
-    "NotificationOptionPluginUninstalled": "Plugin uninstalled",
-    "NotificationOptionVideoPlayback": "Video playback",
-    "NotificationOptionAudioPlayback": "Audio playback",
-    "NotificationOptionGamePlayback": "Game playback",
-    "NotificationOptionTaskFailed": "Scheduled task failure",
-    "NotificationOptionInstallationFailed": "Installation failure",
-    "NotificationOptionNewLibraryContent": "New content added",
+    "HeaderNotificationList": "Klicka p\u00e5 en meddelandetyp f\u00f6r att ange inst\u00e4llningar.",
+    "NotificationOptionApplicationUpdateAvailable": "Ny program version tillg\u00e4nglig",
+    "NotificationOptionApplicationUpdateInstalled": "Program uppdatering installerad",
+    "NotificationOptionPluginUpdateInstalled": "Plugin uppdatering installerad",
+    "NotificationOptionPluginInstalled": "Plugin installerad",
+    "NotificationOptionPluginUninstalled": "Plugin avinstallerad",
+    "NotificationOptionVideoPlayback": "Videouppspelning",
+    "NotificationOptionAudioPlayback": "Ljuduppspelning",
+    "NotificationOptionGamePlayback": "Spel",
+    "NotificationOptionTaskFailed": "Schemalagd uppgift misslyckades",
+    "NotificationOptionInstallationFailed": "Installationen misslyckades",
+    "NotificationOptionNewLibraryContent": "Nytt inneh\u00e5ll har tillkommit",
     "SendNotificationHelp": "Meddelanden visas i kontrollpanelens inkorg. S\u00f6k efter fler meddelandetill\u00e4gg i pluginkatalogen.",
-    "NotificationOptionServerRestartRequired": "Server restart required",
-    "LabelNotificationEnabled": "Enable this notification",
-    "LabelMonitorUsers": "Monitor activity from:",
-    "LabelSendNotificationToUsers": "Send the notification to:",
-    "UsersNotNotifiedAboutSelfActivity": "Users will not be notified about their own activities.",
-    "LabelUseNotificationServices": "Use the following services:",
-    "CategoryUser": "User",
+    "NotificationOptionServerRestartRequired": "Servern m\u00e5ste startas om",
+    "LabelNotificationEnabled": "Aktivera denna meddelandetyp",
+    "LabelMonitorUsers": "\u00d6vervaka aktivitet fr\u00e5n:",
+    "LabelSendNotificationToUsers": "Skicka meddelande till:",
+    "UsersNotNotifiedAboutSelfActivity": "Anv\u00e4ndare f\u00e5r inte meddelanden om sina egna aktiviteter.",
+    "LabelUseNotificationServices": "Anv\u00e4nd f\u00f6ljande tj\u00e4nster:",
+    "CategoryUser": "Anv\u00e4ndare",
     "CategorySystem": "System",
-    "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
+    "LabelMessageTitle": "Meddelande titel",
+    "LabelAvailableTokens": "Tillg\u00e4ngliga tokens:",
+    "AdditionalNotificationServices": "Bl\u00e4ddra i plugin katalogen f\u00f6r att installera ytterligare notifikations tj\u00e4nster",
+    "OptionAllUsers": "Alla anv\u00e4ndare",
+    "OptionAdminUsers": "Administrat\u00f6rer",
+    "OptionCustomUsers": "Anpassad",
+    "ButtonArrowUp": "Upp",
+    "ButtonArrowDown": "Ned",
+    "ButtonArrowLeft": "V\u00e4nster",
+    "ButtonArrowRight": "H\u00f6ger",
+    "ButtonBack": "F\u00f6reg\u00e5ende",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Sida upp",
+    "ButtonPageDown": "Sida ned",
+    "PageAbbreviation": "Sid",
+    "ButtonHome": "Hem",
+    "ButtonSettings": "Inst\u00e4llningar",
+    "ButtonTakeScreenshot": "Ta sk\u00e4rmbild",
+    "ButtonLetterUp": "Bokstav upp",
+    "ButtonLetterDown": "Bokstav ned",
+    "PageButtonAbbreviation": "Sid",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Nu spelas",
+    "TabNavigation": "Navigering",
+    "ButtonFullscreen": "V\u00e4xla fullsk\u00e4rmsl\u00e4ge",
+    "ButtonScenes": "Scener",
+    "ButtonSubtitles": "Undertexter",
+    "ButtonAudioTracks": "Ljudsp\u00e5r",
+    "ButtonPreviousTrack": "F\u00f6reg\u00e5ende sp\u00e5r",
+    "ButtonNextTrack": "N\u00e4sta sp\u00e5r",
+    "ButtonStop": "Stopp",
+    "ButtonPause": "Paus",
+    "LabelGroupMoviesIntoCollections": "Gruppera filmer i samlingsboxar",
+    "LabelGroupMoviesIntoCollectionsHelp": "I filmlistor visas filmer som ing\u00e5r i en samlingsbox som ett enda objekt.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

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

@@ -77,6 +77,7 @@
     "MaxParentalRatingHelp": "\u5177\u6709\u8f03\u9ad8\u7684\u5bb6\u9577\u8a55\u7d1a\u5167\u5bb9\u5c07\u5f9e\u9019\u7528\u6236\u88ab\u96b1\u85cf",
     "LibraryAccessHelp": "\u9078\u64c7\u5a92\u9ad4\u6587\u4ef6\u593e\u8207\u9019\u7528\u6236\u5171\u4eab\u3002\u7ba1\u7406\u54e1\u5c07\u53ef\u4ee5\u4f7f\u7528\u5a92\u9ad4\u8cc7\u6599\u64da\u7ba1\u7406\u5668\u7de8\u8f2f\u6240\u6709\u7684\u5a92\u9ad4\u6587\u4ef6\u593e\u3002",
     "ButtonDeleteImage": "\u522a\u9664\u5716\u50cf",
+    "LabelSelectUsers": "Select users:",
     "ButtonUpload": "\u4e0a\u8f09",
     "HeaderUploadNewImage": "\u4e0a\u8f09\u65b0\u5716\u50cf",
     "LabelDropImageHere": "\u5728\u9019\u88e1\u653e\u4e0b\u5716\u50cf",
@@ -573,6 +574,41 @@
     "LabelUseNotificationServices": "Use the following services:",
     "CategoryUser": "User",
     "CategorySystem": "System",
+    "CategoryApplication": "Application",
+    "CategoryPlugin": "Plugin",
     "LabelMessageTitle": "Message title:",
-    "LabelAvailableTokens": "Available tokens:"
+    "LabelAvailableTokens": "Available tokens:",
+    "AdditionalNotificationServices": "Browse the plugin catalog to install additional notification services.",
+    "OptionAllUsers": "All users",
+    "OptionAdminUsers": "Administrators",
+    "OptionCustomUsers": "Custom",
+    "ButtonArrowUp": "Up",
+    "ButtonArrowDown": "Down",
+    "ButtonArrowLeft": "Left",
+    "ButtonArrowRight": "Right",
+    "ButtonBack": "Back",
+    "ButtonInfo": "Info",
+    "ButtonPageUp": "Page Up",
+    "ButtonPageDown": "Page Down",
+    "PageAbbreviation": "PG",
+    "ButtonHome": "Home",
+    "ButtonSettings": "Settings",
+    "ButtonTakeScreenshot": "Capture Screenshot",
+    "ButtonLetterUp": "Letter Up",
+    "ButtonLetterDown": "Letter Down",
+    "PageButtonAbbreviation": "PG",
+    "LetterButtonAbbreviation": "A",
+    "TabNowPlaying": "Now Playing",
+    "TabNavigation": "Navigation",
+    "ButtonFullscreen": "Toggle fullscreen",
+    "ButtonScenes": "Scenes",
+    "ButtonSubtitles": "Subtitles",
+    "ButtonAudioTracks": "Audio tracks",
+    "ButtonPreviousTrack": "Previous track",
+    "ButtonNextTrack": "Next track",
+    "ButtonStop": "Stop",
+    "ButtonPause": "Pause",
+    "LabelGroupMoviesIntoCollections": "Group movies into collections",
+    "LabelGroupMoviesIntoCollectionsHelp": "When displaying movie lists, movies belonging to a collection will be displayed as one grouped item.",
+    "NotificationOptionPluginError": "Plugin failure"
 }

+ 16 - 1
MediaBrowser.Server.Implementations/Notifications/CoreNotificationTypes.cs

@@ -45,6 +45,13 @@ namespace MediaBrowser.Server.Implementations.Notifications
                      Variables = new List<string>{"Name", "Version"}
                 },
 
+                new NotificationTypeInfo
+                {
+                     Type = NotificationType.PluginError.ToString(),
+                     DefaultTitle = "{Name} has encountered an error: {Message}",
+                     Variables = new List<string>{"Name", "Message"}
+                },
+
                 new NotificationTypeInfo
                 {
                      Type = NotificationType.PluginUninstalled.ToString(),
@@ -115,7 +122,11 @@ namespace MediaBrowser.Server.Implementations.Notifications
                 Update(type);
             }
 
-            return knownTypes.OrderBy(i => i.Category).ThenBy(i => i.Name);
+            var systemName = _localization.GetLocalizedString("CategorySystem");
+
+            return knownTypes.OrderByDescending(i => string.Equals(i.Category, systemName, StringComparison.OrdinalIgnoreCase))
+                .ThenBy(i => i.Category)
+                .ThenBy(i => i.Name);
         }
 
         private void Update(NotificationTypeInfo note)
@@ -128,6 +139,10 @@ namespace MediaBrowser.Server.Implementations.Notifications
             {
                 note.Category = _localization.GetLocalizedString("CategoryUser");
             }
+            else   if (note.Type.IndexOf("Plugin", StringComparison.OrdinalIgnoreCase) != -1)
+            {
+                note.Category = _localization.GetLocalizedString("CategoryPlugin");
+            }
             else
             {
                 note.Category = _localization.GetLocalizedString("CategorySystem");

+ 2 - 2
MediaBrowser.Server.Implementations/Session/SessionManager.cs

@@ -264,7 +264,7 @@ namespace MediaBrowser.Server.Implementations.Session
         /// <param name="libraryItem">The library item.</param>
         private void UpdateNowPlayingItem(SessionInfo session, PlaybackProgressInfo info, BaseItem libraryItem)
         {
-            var runtimeTicks = libraryItem.RunTimeTicks;
+            var runtimeTicks = libraryItem == null ? null : libraryItem.RunTimeTicks;
 
             if (string.IsNullOrWhiteSpace(info.MediaSourceId))
             {
@@ -277,7 +277,7 @@ namespace MediaBrowser.Server.Implementations.Session
                 runtimeTicks = _libraryManager.GetItemById(new Guid(info.MediaSourceId)).RunTimeTicks;
             }
 
-            if (!string.IsNullOrWhiteSpace(info.ItemId))
+            if (!string.IsNullOrWhiteSpace(info.ItemId) && libraryItem != null)
             {
                 info.Item = GetItemInfo(libraryItem, runtimeTicks);
             }

+ 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.356</version>
+        <version>3.0.357</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.356" />
+            <dependency id="MediaBrowser.Common" version="3.0.357" />
             <dependency id="NLog" version="2.1.0" />
             <dependency id="SimpleInjector" version="2.4.1" />
             <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.356</version>
+        <version>3.0.357</version>
         <title>MediaBrowser.Common</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.356</version>
+        <version>3.0.357</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.356" />
+            <dependency id="MediaBrowser.Common" version="3.0.357" />
         </dependencies>
     </metadata>
     <files>

Некоторые файлы не были показаны из-за большого количества измененных файлов