瀏覽代碼

update translations

Luke Pulverenti 11 年之前
父節點
當前提交
d0b6fd938d
共有 32 個文件被更改,包括 238 次插入110 次删除
  1. 49 32
      MediaBrowser.Api/Playback/BaseStreamingService.cs
  2. 1 4
      MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
  3. 1 4
      MediaBrowser.Api/Playback/Hls/VideoHlsService.cs
  4. 2 2
      MediaBrowser.Api/Playback/Progressive/ProgressiveStreamWriter.cs
  5. 1 4
      MediaBrowser.Api/Playback/Progressive/VideoService.cs
  6. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
  7. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
  8. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
  9. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
  10. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
  11. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
  12. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
  13. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
  14. 13 8
      MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
  15. 8 3
      MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
  16. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
  17. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
  18. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
  19. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
  20. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
  21. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
  22. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
  23. 13 8
      MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
  24. 9 4
      MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
  25. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
  26. 12 7
      MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
  27. 13 8
      MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
  28. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
  29. 6 1
      MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
  30. 7 7
      MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
  31. 1 1
      MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
  32. 0 0
      MediaBrowser.Server.Implementations/Localization/Server/ru.json

+ 49 - 32
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -477,17 +477,13 @@ namespace MediaBrowser.Api.Playback
         {
             // http://sonnati.wordpress.com/2012/10/19/ffmpeg-the-swiss-army-knife-of-internet-streaming-part-vi/
 
-            var assSubtitleParam = string.Empty;
-            var copyTsParam = string.Empty;
-            var yadifParam = state.DeInterlace ? "yadif=0:-1:0," : string.Empty;
-
             var request = state.VideoRequest;
 
-            if (state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream)
-            {
-                assSubtitleParam = GetTextSubtitleParam(state, cancellationToken);
+            var filters = new List<string>();
 
-                copyTsParam = " -copyts";
+            if (state.DeInterlace)
+            {
+                filters.Add("yadif=0:-1:0");
             }
 
             // If fixed dimensions were supplied
@@ -496,68 +492,89 @@ namespace MediaBrowser.Api.Playback
                 var widthParam = request.Width.Value.ToString(UsCulture);
                 var heightParam = request.Height.Value.ToString(UsCulture);
 
-                return string.Format("{4} -vf \"{0}scale=trunc({1}/2)*2:trunc({2}/2)*2{3}\"", yadifParam, widthParam, heightParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale=trunc({0}/2)*2:trunc({1}/2)*2", widthParam, heightParam));
             }
 
             // If Max dimensions were supplied, for width selects lowest even number between input width and width req size and selects lowest even number from in width*display aspect and requested size
-            if (request.MaxWidth.HasValue && request.MaxHeight.HasValue)
+            else if (request.MaxWidth.HasValue && request.MaxHeight.HasValue)
             {
                 var maxWidthParam = request.MaxWidth.Value.ToString(UsCulture);
                 var maxHeightParam = request.MaxHeight.Value.ToString(UsCulture);
 
-                return string.Format("{4} -vf \"{0}scale=trunc(min(iw\\,{1})/2)*2:trunc(min((iw/dar)\\,{2})/2)*2{3}\"", yadifParam, maxWidthParam, maxHeightParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale=trunc(min(iw\\,{0})/2)*2:trunc(min((iw/dar)\\,{1})/2)*2", maxWidthParam, maxHeightParam));
             }
 
             // If a fixed width was requested
-            if (request.Width.HasValue)
+            else if (request.Width.HasValue)
             {
                 var widthParam = request.Width.Value.ToString(UsCulture);
 
-                return string.Format("{3} -vf \"{0}scale={1}:trunc(ow/a/2)*2{2}\"", yadifParam, widthParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale={0}:trunc(ow/a/2)*2", widthParam));
             }
 
             // If a fixed height was requested
-            if (request.Height.HasValue)
+            else if (request.Height.HasValue)
             {
                 var heightParam = request.Height.Value.ToString(UsCulture);
 
-                return string.Format("{3} -vf \"{0}scale=trunc(oh*a*2)/2:{1}{2}\"", yadifParam, heightParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale=trunc(oh*a*2)/2:{0}", heightParam));
             }
 
             // If a max width was requested
-            if (request.MaxWidth.HasValue && (!request.MaxHeight.HasValue || state.VideoStream == null))
+            else if (request.MaxWidth.HasValue && (!request.MaxHeight.HasValue || state.VideoStream == null))
             {
                 var maxWidthParam = request.MaxWidth.Value.ToString(UsCulture);
 
-                return string.Format("{3} -vf \"{0}scale=min(iw\\,{1}):trunc(ow/dar/2)*2{2}\"", yadifParam, maxWidthParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale=min(iw\\,{0}):trunc(ow/dar/2)*2", maxWidthParam));
             }
 
             // If a max height was requested
-            if (request.MaxHeight.HasValue && (!request.MaxWidth.HasValue || state.VideoStream == null))
+            else if (request.MaxHeight.HasValue && (!request.MaxWidth.HasValue || state.VideoStream == null))
             {
                 var maxHeightParam = request.MaxHeight.Value.ToString(UsCulture);
 
-                return string.Format("{3} -vf \"{0}scale=trunc(oh*a*2)/2:min(ih\\,{1}){2}\"", yadifParam, maxHeightParam, assSubtitleParam, copyTsParam);
+                filters.Add(string.Format("scale=trunc(oh*a*2)/2:min(ih\\,{0})", maxHeightParam));
             }
 
-            if (state.VideoStream == null)
+            else if (request.MaxWidth.HasValue ||
+                request.MaxHeight.HasValue ||
+                request.Width.HasValue ||
+                request.Height.HasValue)
             {
-                // No way to figure this out
-                return string.Empty;
+                if (state.VideoStream != null)
+                {
+                    // Need to perform calculations manually
+
+                    // Try to account for bad media info
+                    var currentHeight = state.VideoStream.Height ?? request.MaxHeight ?? request.Height ?? 0;
+                    var currentWidth = state.VideoStream.Width ?? request.MaxWidth ?? request.Width ?? 0;
+
+                    var outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight);
+
+                    var manualWidthParam = outputSize.Width.ToString(UsCulture);
+                    var manualHeightParam = outputSize.Height.ToString(UsCulture);
+
+                    filters.Add(string.Format("scale=trunc({0}/2)*2:trunc({1}/2)*2", manualWidthParam, manualHeightParam));
+                }
             }
 
-            // Need to perform calculations manually
+            var output = string.Empty;
+
+            if (state.SubtitleStream != null && state.SubtitleStream.IsTextSubtitleStream)
+            {
+                var subParam = GetTextSubtitleParam(state, cancellationToken);
 
-            // Try to account for bad media info
-            var currentHeight = state.VideoStream.Height ?? request.MaxHeight ?? request.Height ?? 0;
-            var currentWidth = state.VideoStream.Width ?? request.MaxWidth ?? request.Width ?? 0;
+                filters.Add(subParam);
 
-            var outputSize = DrawingUtils.Resize(currentWidth, currentHeight, request.Width, request.Height, request.MaxWidth, request.MaxHeight);
+                output += " -copyts";
+            }
 
-            var manualWidthParam = outputSize.Width.ToString(UsCulture);
-            var manualHeightParam = outputSize.Height.ToString(UsCulture);
+            if (filters.Count > 0)
+            {
+                output += string.Format(" -vf \"{0}\"", string.Join(",", filters.ToArray()));
+            }
 
-            return string.Format("{4} -vf \"{0}scale=trunc({1}/2)*2:trunc({2}/2)*2{3}\"", yadifParam, manualWidthParam, manualHeightParam, assSubtitleParam, copyTsParam);
+            return output;
         }
 
         /// <summary>
@@ -588,13 +605,13 @@ namespace MediaBrowser.Api.Playback
                 }
 
                 // TODO: Perhaps also use original_size=1920x800
-                return string.Format(",subtitles=filename='{0}'{1},setpts=PTS -{2}/TB",
+                return string.Format("subtitles=filename='{0}'{1},setpts=PTS -{2}/TB",
                     subtitlePath.Replace('\\', '/').Replace(":/", "\\:/"),
                     charsetParam,
                     Math.Round(seconds).ToString(UsCulture));
             }
 
-            return string.Format(",subtitles='{0}:si={1}',setpts=PTS -{2}/TB",
+            return string.Format("subtitles='{0}:si={1}',setpts=PTS -{2}/TB",
                 state.MediaPath.Replace('\\', '/').Replace(":/", "\\:/"),
                 state.InternalSubtitleStreamOffset.ToString(UsCulture),
                 Math.Round(seconds).ToString(UsCulture));

+ 1 - 4
MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs

@@ -327,10 +327,7 @@ namespace MediaBrowser.Api.Playback.Hls
             // Add resolution params, if specified
             if (!hasGraphicalSubs)
             {
-                if (state.VideoRequest.Width.HasValue || state.VideoRequest.Height.HasValue || state.VideoRequest.MaxHeight.HasValue || state.VideoRequest.MaxWidth.HasValue)
-                {
-                    args += GetOutputSizeParam(state, codec, CancellationToken.None);
-                }
+                args += GetOutputSizeParam(state, codec, CancellationToken.None);
             }
 
             // This is for internal graphical subs

+ 1 - 4
MediaBrowser.Api/Playback/Hls/VideoHlsService.cs

@@ -174,10 +174,7 @@ namespace MediaBrowser.Api.Playback.Hls
             // Add resolution params, if specified
             if (!hasGraphicalSubs)
             {
-                if (state.VideoRequest.Width.HasValue || state.VideoRequest.Height.HasValue || state.VideoRequest.MaxHeight.HasValue || state.VideoRequest.MaxWidth.HasValue)
-                {
-                    args += GetOutputSizeParam(state, codec, CancellationToken.None);
-                }
+                args += GetOutputSizeParam(state, codec, CancellationToken.None);
             }
 
             // This is for internal graphical subs

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

@@ -62,9 +62,9 @@ namespace MediaBrowser.Api.Playback.Progressive
             {
                 await StreamFile(Path, responseStream).ConfigureAwait(false);
             }
-            catch (Exception ex)
+            catch
             {
-                Logger.ErrorException("Error streaming media", ex);
+                Logger.Error("Error streaming media. The client has most likely disconnected or transcoding has failed.");
 
                 throw;
             }

+ 1 - 4
MediaBrowser.Api/Playback/Progressive/VideoService.cs

@@ -154,10 +154,7 @@ namespace MediaBrowser.Api.Playback.Progressive
             // Add resolution params, if specified
             if (!hasGraphicalSubs)
             {
-                if (request.Width.HasValue || request.Height.HasValue || request.MaxHeight.HasValue || request.MaxWidth.HasValue)
-                {
-                    args += GetOutputSizeParam(state, codec, CancellationToken.None);
-                }
+                args += GetOutputSizeParam(state, codec, CancellationToken.None);
             }
 
             var qualityParam = GetVideoQualityParam(state, codec, false);

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -171,14 +171,19 @@
     "ButtonUpdateNow": "Actualizar ahora",
     "NewVersionOfSomethingAvailable": "\u00a1Hay disponible una nueva versi\u00f3n de {0}!",
     "VersionXIsAvailableForDownload": "La versi\u00f3n {0} est\u00e1 disponible para su descarga.",
-    "LabelVersionNumber": "Version {0}",
-    "LabelPlayMethodTranscoding": "Transcoding",
-    "LabelPlayMethodDirectStream": "Direct Streaming",
-    "LabelPlayMethodDirectPlay": "Direct Playing",
+    "LabelVersionNumber": "Versi\u00f3n {0}",
+    "LabelPlayMethodTranscoding": "Transcodificaci\u00f3n",
+    "LabelPlayMethodDirectStream": "Streaming directo",
+    "LabelPlayMethodDirectPlay": "Reproducci\u00f3n directa",
     "LabelAudioCodec": "Audio: {0}",
     "LabelVideoCodec": "Video: {0}",
-    "LabelRemoteAccessUrl": "Remote access: {0}",
-    "LabelRunningOnPort": "Running on port {0}.",
-    "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "LabelRemoteAccessUrl": "Acceso remoto: {0}",
+    "LabelRunningOnPort": "Ejecut\u00e1ndose en el puerto {0}.",
+    "LabelRunningOnPorts": "Ejecut\u00e1ndose en los puertos {0} y {1}.",
+    "HeaderLatestFromChannel": "Lo \u00faltimo de {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -123,7 +123,7 @@
     "HeaderResume": "Continuar",
     "HeaderMyLibrary": "Mi Biblioteca",
     "HeaderLibraryFolders": "Vista de Carpetas",
-    "HeaderLatestMedia": "Agregado Recientemente",
+    "HeaderLatestMedia": "Agregados Recientemente",
     "ButtonMore": "M\u00e1s...",
     "HeaderFavoriteMovies": "Pel\u00edculas Preferidas",
     "HeaderFavoriteShows": "Programas Preferidos",
@@ -148,7 +148,7 @@
     "LabelChapterDownloaders": "Descargadores de Cap\u00edtulos:",
     "LabelChapterDownloadersHelp": "Habilite y califique sus descargadores de cap\u00edtulos preferidos en orden de prioridad. Los descargadores con menor prioridad s\u00f3lo seran utilizados para completar informaci\u00f3n faltante.",
     "HeaderFavoriteAlbums": "\u00c1lbumes Favoritos",
-    "HeaderLatestChannelMedia": "Agregados Recientemente al Canal",
+    "HeaderLatestChannelMedia": "Elementos Recientes del Canal",
     "ButtonOrganizeFile": "Organizar Archivo",
     "ButtonDeleteFile": "Eliminar Archivo",
     "HeaderOrganizeFile": "Organizar Archivo",
@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Acceso remoto: {0}",
     "LabelRunningOnPort": "Ejecutando en el puerto: {0}.",
     "LabelRunningOnPorts": "Ejecutando en los puertos {0} y {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "M\u00e1s Recientes de {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 6 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 6 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/it.json

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 6 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json

@@ -181,5 +181,10 @@
 	"LabelRemoteAccessUrl": "Remote access: {0}",
 	"LabelRunningOnPort": "Running on port {0}.",
 	"LabelRunningOnPorts": "Running on ports {0} and {1}.",
-	"HeaderLatestFromChannel": "Latest from {0}"
+	"HeaderLatestFromChannel": "Latest from {0}",
+	"ButtonDownload": "Download",
+	"LabelUnknownLanaguage": "Unknown language",
+	"HeaderCurrentSubtitles": "Current Subtitles",
+	"MessageDownloadQueued": "The download has been queued.",
+	"MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 6 - 1
MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "\u0410\u043b\u044b\u0441\u0442\u0430\u043d \u0431\u0430\u0441\u049b\u0430\u0440\u0443: {0}",
     "LabelRunningOnPort": "{0} \u043f\u043e\u0440\u0442\u044b\u043d\u0434\u0430 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0439\u0434\u0456.",
     "LabelRunningOnPorts": "{0} \u0436\u04d9\u043d\u0435 {1} \u043f\u043e\u0440\u0442\u0442\u0430\u0440\u044b\u043d\u0434\u0430 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0439\u0434\u0456.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -171,14 +171,19 @@
     "ButtonUpdateNow": "Nu bijwerken",
     "NewVersionOfSomethingAvailable": "Er is een nieuwe versie van {0} beschikbaar!",
     "VersionXIsAvailableForDownload": "Versie {0} is nu beschikbaar voor download.",
-    "LabelVersionNumber": "Version {0}",
-    "LabelPlayMethodTranscoding": "Transcoding",
-    "LabelPlayMethodDirectStream": "Direct Streaming",
-    "LabelPlayMethodDirectPlay": "Direct Playing",
+    "LabelVersionNumber": "Versie {0}",
+    "LabelPlayMethodTranscoding": "Transcoderen",
+    "LabelPlayMethodDirectStream": "Direct Streamen",
+    "LabelPlayMethodDirectPlay": "Direct Afspelen",
     "LabelAudioCodec": "Audio: {0}",
     "LabelVideoCodec": "Video: {0}",
-    "LabelRemoteAccessUrl": "Remote access: {0}",
-    "LabelRunningOnPort": "Running on port {0}.",
-    "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "LabelRemoteAccessUrl": "Toegang op afstand: {0}",
+    "LabelRunningOnPort": "Draait op poort {0}.",
+    "LabelRunningOnPorts": "Draait op poort {0} en {1}.",
+    "HeaderLatestFromChannel": "Laatste van {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 9 - 4
MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json

@@ -172,13 +172,18 @@
     "NewVersionOfSomethingAvailable": "Est\u00e1 dispon\u00edvel uma nova vers\u00e3o de {0}!",
     "VersionXIsAvailableForDownload": "A vers\u00e3o {0} est\u00e1 dispon\u00edvel para download.",
     "LabelVersionNumber": "Vers\u00e3o {0}",
-    "LabelPlayMethodTranscoding": "Transcodificando",
-    "LabelPlayMethodDirectStream": "Fluxo Direto",
-    "LabelPlayMethodDirectPlay": "Execu\u00e7\u00e3o Direta",
+    "LabelPlayMethodTranscoding": "Transcodifica\u00e7\u00e3o",
+    "LabelPlayMethodDirectStream": "Streaming Direto",
+    "LabelPlayMethodDirectPlay": "Reprodu\u00e7\u00e3o Direta",
     "LabelAudioCodec": "\u00c1udio: {0}",
     "LabelVideoCodec": "V\u00eddeo: {0}",
     "LabelRemoteAccessUrl": "Acesso Remoto: {0}",
     "LabelRunningOnPort": "Dispon\u00edvel na porta {0}.",
     "LabelRunningOnPorts": "Dispon\u00edvel nas portas {0} e {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "\u00daltimo desde {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 12 - 7
MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json

@@ -22,7 +22,7 @@
     "OptionDev": "\u0420\u0430\u0437\u0440\u0430\u0431 (\u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e)",
     "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.",
+    "NoPluginConfigurationMessage": "\u041d\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0434\u0430\u043d\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 \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.",
     "MessageKeyEmailedTo": "\u041a\u043b\u044e\u0447 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043f\u043e\u0447\u0442\u043e\u044e \u0434\u043b\u044f {0}.",
@@ -118,13 +118,13 @@
     "HeaderError": "\u041e\u0448\u0438\u0431\u043a\u0430",
     "MessagePleaseSelectOneItem": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442.",
     "MessagePleaseSelectTwoItems": "\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435, \u0434\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430.",
-    "MessageTheFollowingItemsWillBeGrouped": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432 \u043e\u0434\u0438\u043d \u044d\u043b\u0435\u043c\u0435\u043d\u0442:",
+    "MessageTheFollowingItemsWillBeGrouped": "\u0412 \u0435\u0434\u0438\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0431\u0443\u0434\u0443\u0442 \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f :",
     "MessageConfirmItemGrouping": "\u041a\u043b\u0438\u0435\u043d\u0442\u044b Media Browser \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0442\u0438. \u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?",
     "HeaderResume": "\u0412\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u0438\u043c\u044b\u0435",
     "HeaderMyLibrary": "\u041c\u043e\u044f \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0430",
     "HeaderLibraryFolders": "\u0412\u0438\u0434 \u043f\u0430\u043f\u043e\u043a",
     "HeaderLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439",
-    "ButtonMore": "\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435...",
+    "ButtonMore": "\u0411\u043e\u043b\u0435\u0435...",
     "HeaderFavoriteMovies": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u043c\u044b",
     "HeaderFavoriteShows": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u0438\u0430\u043b\u044b",
     "HeaderFavoriteEpisodes": "\u0418\u0437\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u044d\u043f\u0438\u0437\u043e\u0434\u044b",
@@ -156,10 +156,10 @@
     "StatusSkipped": "\u041e\u0442\u043b\u043e\u0436\u0435\u043d\u043e",
     "StatusFailed": "\u041d\u0435\u0443\u0434\u0430\u0447\u043d\u043e",
     "StatusSuccess": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e",
-    "MessageFileWillBeDeleted": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0451\u043d:",
+    "MessageFileWillBeDeleted": "\u0411\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0451\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b:",
     "MessageSureYouWishToProceed": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c?",
-    "MessageDuplicatesWillBeDeleted": "\u0410 \u0442\u0430\u043a\u0436\u0435, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b:",
-    "MessageFollowingFileWillBeMovedFrom": "\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0451\u043d \u0438\u0437:",
+    "MessageDuplicatesWillBeDeleted": "\u0410 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b:",
+    "MessageFollowingFileWillBeMovedFrom": "\u0411\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0451\u043d \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0444\u0430\u0439\u043b \u0438\u0437:",
     "MessageDestinationTo": "\u0432:",
     "HeaderSelectWatchFolder": "\u0412\u044b\u0431\u043e\u0440 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u043f\u0430\u043f\u043a\u0438",
     "HeaderSelectWatchFolderHelp": "\u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0438\u043b\u0438 \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u043f\u0430\u043f\u043a\u0435. \u041f\u0430\u043f\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438.",
@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "\u0423\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f: {0}",
     "LabelRunningOnPort": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 {0}.",
     "LabelRunningOnPorts": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445 {0} \u0438 {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u0438\u0437 {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -172,13 +172,18 @@
     "NewVersionOfSomethingAvailable": "En ny version av {0} finns tillg\u00e4nglig!",
     "VersionXIsAvailableForDownload": "Version {0} finns tillg\u00e4nglig f\u00f6r h\u00e4mtning.",
     "LabelVersionNumber": "Version {0}",
-    "LabelPlayMethodTranscoding": "Transcoding",
-    "LabelPlayMethodDirectStream": "Direct Streaming",
-    "LabelPlayMethodDirectPlay": "Direct Playing",
-    "LabelAudioCodec": "Audio: {0}",
+    "LabelPlayMethodTranscoding": "Omkodning",
+    "LabelPlayMethodDirectStream": "Direkt str\u00f6mning",
+    "LabelPlayMethodDirectPlay": "Direktuppspelning",
+    "LabelAudioCodec": "Ljud: {0}",
     "LabelVideoCodec": "Video: {0}",
-    "LabelRemoteAccessUrl": "Remote access: {0}",
-    "LabelRunningOnPort": "Running on port {0}.",
-    "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "LabelRemoteAccessUrl": "Fj\u00e4rranslutning: {0}",
+    "LabelRunningOnPort": "Anv\u00e4nder port {0}.",
+    "LabelRunningOnPorts": "Anv\u00e4nder port {0} och {1}.",
+    "HeaderLatestFromChannel": "Senaste fr\u00e5n {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

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

@@ -180,5 +180,10 @@
     "LabelRemoteAccessUrl": "Remote access: {0}",
     "LabelRunningOnPort": "Running on port {0}.",
     "LabelRunningOnPorts": "Running on ports {0} and {1}.",
-    "HeaderLatestFromChannel": "Latest from {0}"
+    "HeaderLatestFromChannel": "Latest from {0}",
+    "ButtonDownload": "Download",
+    "LabelUnknownLanaguage": "Unknown language",
+    "HeaderCurrentSubtitles": "Current Subtitles",
+    "MessageDownloadQueued": "The download has been queued.",
+    "MessageAreYouSureDeleteSubtitles": "Are you sure you wish to delete this subtitle file?"
 }

+ 7 - 7
MediaBrowser.Server.Implementations/Localization/Server/es_MX.json

@@ -114,7 +114,7 @@
     "HeaderResume": "Continuar",
     "HeaderNextUp": "A Continuaci\u00f3n",
     "NoNextUpItemsMessage": "No se encontr\u00f3 nada. \u00a1Comienza a ver tus programas!",
-    "HeaderLatestEpisodes": "\u00daltimos Episodios",
+    "HeaderLatestEpisodes": "Episodios Recientes",
     "HeaderPersonTypes": "Tipos de Personas:",
     "TabSongs": "Canciones",
     "TabAlbums": "\u00c1lbums",
@@ -157,7 +157,7 @@
     "PluginsTitle": "Complementos",
     "HeaderAutomaticUpdates": "Actualizaciones Autom\u00e1ticas",
     "HeaderNowPlaying": "Reproduciendo Ahora",
-    "HeaderLatestAlbums": "\u00daltimos \u00c1lbums",
+    "HeaderLatestAlbums": "\u00c1lbums Recientes",
     "HeaderLatestSongs": "Canciones Recientes",
     "HeaderRecentlyPlayed": "Reproducido Recientemente",
     "HeaderFrequentlyPlayed": "Reproducido Frecuentemente",
@@ -180,7 +180,7 @@
     "TabStudios": "Estudios",
     "TabTrailers": "Avances",
     "HeaderLatestMovies": "Pel\u00edculas Recientes",
-    "HeaderLatestTrailers": "\u00daltimos Avances",
+    "HeaderLatestTrailers": "Avances Recientes",
     "OptionHasSpecialFeatures": "Caracter\u00edsticas Especiales",
     "OptionImdbRating": "Calificaci\u00f3n de IMDb",
     "OptionParentalRating": "Clasificaci\u00f3n Parental",
@@ -319,7 +319,7 @@
     "OptionRecordOnlyNewEpisodes": "Grabar s\u00f3lo nuevos episodios",
     "HeaderDays": "D\u00edas",
     "HeaderActiveRecordings": "Grabaciones Activas",
-    "HeaderLatestRecordings": "\u00daltimas Grabaciones",
+    "HeaderLatestRecordings": "Grabaciones Recientes",
     "HeaderAllRecordings": "Todas las Grabaciones",
     "ButtonPlay": "Reproducir",
     "ButtonEdit": "Editar",
@@ -369,7 +369,7 @@
     "LabelEveryXMinutes": "Cada:",
     "HeaderTvTuners": "Sintonizadores",
     "HeaderGallery": "Galer\u00eda",
-    "HeaderLatestGames": "\u00daltimos Juegos",
+    "HeaderLatestGames": "Juegos Recientes",
     "HeaderRecentlyPlayedGames": "Juegos Usados Recientemente",
     "TabGameSystems": "Sistemas de Juego",
     "TitleMediaLibrary": "Biblioteca de Medios",
@@ -518,7 +518,7 @@
     "OptionCopy": "Copiar",
     "OptionMove": "Mover",
     "LabelTransferMethodHelp": "Copiar o mover archivos desde la carpeta de inspecci\u00f3n",
-    "HeaderLatestNews": "\u00daltimas Noticias",
+    "HeaderLatestNews": "Noticias Recientes",
     "HeaderHelpImproveMediaBrowser": "Ayuda a mejorar Media Browser",
     "HeaderRunningTasks": "Tareas en Ejecuci\u00f3n",
     "HeaderActiveDevices": "Dispositivos Activos",
@@ -640,7 +640,7 @@
     "ButtonVolumeUp": "Subir Volumen",
     "ButtonVolumeDown": "Bajar Volumen",
     "ButtonMute": "Mudo",
-    "HeaderLatestMedia": "Agregado Recientemente",
+    "HeaderLatestMedia": "Agregados Recientemente",
     "OptionSpecialFeatures": "Caracter\u00edsticas Especiales",
     "HeaderCollections": "Colecciones",
     "HeaderMyLibrary": "Mi Biblioteca",

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

@@ -526,7 +526,7 @@
     "HeaerServerInformation": "Informa\u00e7\u00f5es do Servidor",
     "ButtonRestartNow": "Reiniciar Agora",
     "ButtonRestart": "Reiniciar",
-    "ButtonShutdown": "Desligar",
+    "ButtonShutdown": "Terminar",
     "ButtonUpdateNow": "Atualizar Agora",
     "PleaseUpdateManually": "Por favor, desligue o servidor e atualize-o manualmente.",
     "NewServerVersionAvailable": "Uma nova vers\u00e3o do Servidor Media Browser est\u00e1 dispon\u00edvel!",

文件差異過大導致無法顯示
+ 0 - 0
MediaBrowser.Server.Implementations/Localization/Server/ru.json


部分文件因文件數量過多而無法顯示