From 58a38d0d1ddb89439b763e7bc50e8b84105f68fe Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 24 Aug 2014 11:48:06 -0400 Subject: [PATCH] update translations --- .../Playback/BaseStreamingService.cs | 6 +- MediaBrowser.Controller/Playlists/Playlist.cs | 33 +++++-- MediaBrowser.Dlna/Ssdp/SsdpHandler.cs | 3 +- .../TV/TvdbSeasonImageProvider.cs | 14 ++- .../EntryPoints/WanAddressEntryPoint.cs | 2 +- .../Localization/JavaScript/javascript.json | 56 +++++++++++- .../Localization/Server/server.json | 85 ++++++++++++++++++- ...MediaBrowser.Server.Implementations.csproj | 1 + .../MediaBrowser.Server.Mono.csproj | 3 - .../ApplicationHost.cs | 4 +- .../MediaBrowser.ServerApplication.csproj | 1 - 11 files changed, 182 insertions(+), 26 deletions(-) rename {MediaBrowser.ServerApplication => MediaBrowser.Server.Implementations}/EntryPoints/WanAddressEntryPoint.cs (95%) diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 162c57b914..b965bf6f14 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -1193,13 +1193,13 @@ namespace MediaBrowser.Api.Playback return state.VideoRequest.Framerate.Value; } - var maxrate = state.VideoRequest.MaxFramerate ?? 23.97602; + var maxrate = state.VideoRequest.MaxFramerate; - if (state.VideoStream != null) + if (maxrate.HasValue && state.VideoStream != null) { var contentRate = state.VideoStream.AverageFrameRate ?? state.VideoStream.RealFrameRate; - if (contentRate.HasValue && contentRate.Value > maxrate) + if (contentRate.HasValue && contentRate.Value > maxrate.Value) { return maxrate; } diff --git a/MediaBrowser.Controller/Playlists/Playlist.cs b/MediaBrowser.Controller/Playlists/Playlist.cs index 2659a7c133..5da810a91b 100644 --- a/MediaBrowser.Controller/Playlists/Playlist.cs +++ b/MediaBrowser.Controller/Playlists/Playlist.cs @@ -1,5 +1,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Controller.Entities.Movies; +using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Querying; using System; @@ -82,6 +84,30 @@ namespace MediaBrowser.Controller.Playlists return LibraryManager.Sort(songs, user, new[] { ItemSortBy.AlbumArtist, ItemSortBy.Album, ItemSortBy.SortName }, SortOrder.Ascending); } + // Grab these explicitly to avoid the sorting that will happen below + var collection = i as BoxSet; + if (collection != null) + { + var items = user == null + ? collection.Children + : collection.GetChildren(user, true); + + return items + .Where(m => !m.IsFolder); + } + + // Grab these explicitly to avoid the sorting that will happen below + var season = i as Season; + if (season != null) + { + var items = user == null + ? season.Children + : season.GetChildren(user, true); + + return items + .Where(m => !m.IsFolder); + } + var folder = i as Folder; if (folder != null) @@ -93,12 +119,7 @@ namespace MediaBrowser.Controller.Playlists items = items .Where(m => !m.IsFolder); - if (!folder.IsPreSorted) - { - items = LibraryManager.Sort(items, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending); - } - - return items; + return LibraryManager.Sort(items, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending); } return new[] { i }; diff --git a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs index beeeb31c0f..10a234fb1b 100644 --- a/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs +++ b/MediaBrowser.Dlna/Ssdp/SsdpHandler.cs @@ -62,7 +62,8 @@ namespace MediaBrowser.Dlna.Ssdp { if (string.Equals(args.Method, "M-SEARCH", StringComparison.OrdinalIgnoreCase)) { - var mx = args.Headers["mx"]; + string mx = null; + args.Headers.TryGetValue("mx", out mx); int delaySeconds; if (!string.IsNullOrWhiteSpace(mx) && int.TryParse(mx, NumberStyles.Any, CultureInfo.InvariantCulture, out delaySeconds) diff --git a/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs b/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs index 5e2c8b9190..efafeae96e 100644 --- a/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs +++ b/MediaBrowser.Providers/TV/TvdbSeasonImageProvider.cs @@ -65,8 +65,7 @@ namespace MediaBrowser.Providers.TV var season = (Season)item; var series = season.Series; - var identity = season.Identities.OfType().FirstOrDefault(id => id.Type == MetadataProviders.Tvdb.ToString()); - var seriesId = identity != null ? identity.SeriesId : null; + var seriesId = series != null ? series.GetProviderId(MetadataProviders.Tvdb) : null; if (!string.IsNullOrEmpty(seriesId) && season.IndexNumber.HasValue) { @@ -77,9 +76,18 @@ namespace MediaBrowser.Providers.TV var path = Path.Combine(seriesDataPath, "banners.xml"); + var identity = season.Identities.OfType() + .FirstOrDefault(id => id.Type == MetadataProviders.Tvdb.ToString()); + + var seasonNumber = season.IndexNumber.Value; + + if (identity != null) + { + seasonNumber = AdjustForSeriesOffset(series, identity.SeasonIndex); + } + try { - int seasonNumber = AdjustForSeriesOffset(series, identity.SeasonIndex); return GetImages(path, item.GetPreferredMetadataLanguage(), seasonNumber, cancellationToken); } catch (FileNotFoundException) diff --git a/MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs b/MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs similarity index 95% rename from MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs rename to MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs index 7b2a1314e0..2f66435886 100644 --- a/MediaBrowser.ServerApplication/EntryPoints/WanAddressEntryPoint.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/WanAddressEntryPoint.cs @@ -4,7 +4,7 @@ using System; using System.IO; using System.Threading; -namespace MediaBrowser.ServerApplication.EntryPoints +namespace MediaBrowser.Server.Implementations.EntryPoints { public class WanAddressEntryPoint : IServerEntryPoint { diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json index 4e00741d78..c8ce64b833 100644 --- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json +++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json @@ -382,5 +382,59 @@ "LabelImageFetchers": "Image fetchers:", "LabelImageFetchersHelp": "Enable and rank your preferred image fetchers in order of priority.", "ButtonQueueAllFromHere": "Queue all from here", - "ButtonPlayAllFromHere": "Play all from here" + "ButtonPlayAllFromHere": "Play all from here", + "LabelDynamicExternalId": "{0} Id:", + "HeaderIdentify": "Identify Item", + "PersonTypePerson": "Person", + "LabelTitleDisplayOrder": "Title display order:", + "OptionSortName": "Sort name", + "OptionReleaseDate": "Release date", + "LabelSeasonNumber": "Season number:", + "LabelDiscNumber": "Disc number", + "LabelParentNumber": "Parent number", + "LabelEpisodeNumber": "Episode number:", + "LabelTrackNumber": "Track number:", + "LabelNumber": "Number:", + "LabelReleaseDate": "Release date:", + "LabelEndDate": "End date:", + "LabelYear": "Year:", + "LabelDateOfBirth": "Date of birth:", + "LabelBirthYear": "Birth year:", + "LabelDeathDate": "Death date:", + "HeaderRemoveMediaLocation": "Remove Media Location", + "MessageConfirmRemoveMediaLocation": "Are you sure you wish to remove this location?", + "HeaderRenameMediaFolder": "Rename Media Folder", + "LabelNewName": "New name:", + "HeaderAddMediaFolder": "Add Media Folder", + "HeaderAddMediaFolderHelp": "Name (Movies, Music, TV, etc):", + "HeaderRemoveMediaFolder": "Remove Media Folder", + "MessageTheFollowingLocationWillBeRemovedFromLibrary": "The following media locations will be removed from your library:", + "MessageAreYouSureYouWishToRemoveMediaFolder": "Are you sure you wish to remove this media folder?", + "ButtonRename": "Rename", + "ButtonChangeType": "Change type", + "ButtonRemove": "Remove", + "HeaderMediaLocations": "Media Locations", + "LabelFolderTypeValue": "Folder type: {0}", + "LabelPathSubstitutionHelp": "Optional: Path substitution can map server paths to network shares that clients can access for direct playback.", + "FolderTypeMixed": "Mixed movies & tv", + "FolderTypeMovies": "Movies", + "FolderTypeMusic": "Music", + "FolderTypeAdultVideos": "Adult videos", + "FolderTypePhotos": "Photos", + "FolderTypeMusicVideos": "Music videos", + "FolderTypeHomeVideos": "Home videos", + "FolderTypeGames": "Games", + "FolderTypeBooks": "Books", + "FolderTypeTvShows": "TV shows", + "TabMovies": "Movies", + "TabSeries": "Series", + "TabEpisodes": "Episodes", + "TabTrailers": "Trailers", + "TabGames": "Games", + "TabAlbums": "Albums", + "TabSongs": "Songs", + "TabMusicVideos": "Music Videos", + "BirthPlaceValue": "Birth place: {0}", + "DeathDateValue": "Died: {0}", + "BirthDateValue": "Born: {0}" } diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json index d93cc6e23a..df9e28b902 100644 --- a/MediaBrowser.Server.Implementations/Localization/Server/server.json +++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json @@ -179,6 +179,8 @@ "TabMovies": "Movies", "TabStudios": "Studios", "TabTrailers": "Trailers", + "LabelArtists": "Artists:", + "LabelArtistsHelp": "Separate multiple using ;", "HeaderLatestMovies": "Latest Movies", "HeaderLatestTrailers": "Latest Trailers", "OptionHasSpecialFeatures": "Special Features", @@ -233,7 +235,6 @@ "OptionIsSD": "SD", "OptionMetascore": "Metascore", "ButtonSelect": "Select", - "ButtonSearch": "Search", "ButtonGroupVersions": "Group Versions", "ButtonAddToCollection": "Add to Collection", "PismoMessage": "Utilizing Pismo File Mount through a donated license.", @@ -314,6 +315,8 @@ "TabStatus": "Status", "TabSettings": "Settings", "ButtonRefreshGuideData": "Refresh Guide Data", + "ButtonRefresh": "Refresh", + "ButtonAdvancedRefresh": "Advanced Refresh", "OptionPriority": "Priority", "OptionRecordOnAllChannels": "Record program on all channels", "OptionRecordAnytime": "Record program at any time", @@ -656,6 +659,8 @@ "LabelProfileContainersHelp": "Separated by comma. This can be left empty to apply to all containers.", "HeaderResponseProfile": "Response Profile", "LabelType": "Type:", + "LabelPersonRole": "Role:", + "LabelPersonRoleHelp": "Role is generally only applicable to actors.", "LabelProfileContainer": "Container:", "LabelProfileVideoCodecs": "Video codecs:", "LabelProfileAudioCodecs": "Audio codecs:", @@ -907,8 +912,11 @@ "TabFilter": "Filter", "ButtonView": "View", "LabelPageSize": "Item limit:", + "LabelPath": "Path:", "LabelView": "View:", "TabUsers": "Users", + "LabelSortName": "Sort name:", + "LabelDateAdded": "Date added:", "HeaderFeatures": "Features", "HeaderAdvanced": "Advanced", "ButtonSync": "Sync", @@ -1013,15 +1021,84 @@ "HeaderDownloadPeopleMetadataForHelp": "Enabling additional options will provide more on-screen information but will result in slower library scans.", "ViewTypeFolders": "Folders", "LabelDisplayFoldersView": "Display a folders view to show plain media folders", - "ViewTypeLiveTvRecordingGroups": "Recordings", + "ViewTypeLiveTvRecordingGroups": "Recordings", "ViewTypeLiveTvChannels": "Channels", "LabelAllowLocalAccessWithoutPassword": "Allow local access without a password", "LabelAllowLocalAccessWithoutPasswordHelp": "When enabled, a password will not be required when signing in from within your home network.", "HeaderPassword": "Password", "HeaderLocalAccess": "Local Access", "HeaderViewOrder": "View Order", - "LabelSelectUserViewOrder": "Choose the order your views will be displayed in within Media Browser apps", + "LabelSelectUserViewOrder": "Choose the order your views will be displayed in within Media Browser apps", + "LabelMetadataRefreshMode": "Metadata refresh mode:", + "LabelImageRefreshMode": "Image refresh mode:", + "OptionDownloadMissingImages": "Download missing images", + "OptionReplaceExistingImages": "Replace existing images", + "OptionRefreshAllData": "Refresh all data", + "OptionAddMissingDataOnly": "Add missing data only", + "OptionLocalRefreshOnly": "Local refresh only", + "HeaderRefreshMetadata": "Refresh Metadata", + "HeaderPersonInfo": "Person Info", + "HeaderIdentifyItem": "Identify Item", + "HeaderIdentifyItemHelp": "Enter one or more search criteria. Remove criteria to increase search results.", + "HeaderConfirmDeletion": "Confirm Deletion", + "LabelFollowingFileWillBeDeleted": "The following file will be deleted:", + "LabelIfYouWishToContinueWithDeletion": "If you wish to continue, please confirm by entering the value of:", + "ButtonIdentify": "Identify", + "LabelAlbumArtist": "Album artist:", + "LabelAlbum": "Album:", + "LabelCommunityRating": "Community rating:", + "LabelVoteCount": "Vote count:", + "LabelMetascore": "Metascore:", + "LabelCriticRating": "Critic rating:", + "LabelCriticRatingSummary": "Critic rating summary:", + "LabelAwardSummary": "Award summary:", + "LabelWebsite": "Website:", + "LabelTagline": "Tagline:", + "LabelOverview": "Overview:", + "LabelShortOverview": "Short overview:", + "LabelReleaseDate": "Release date:", + "LabelYear": "Year:", + "LabelPlaceOfBirth": "Place of birth:", + "LabelEndDate": "End date:", + "LabelAirDate": "Air days:", + "LabelAirTime:": "Air time:", + "LabelRuntimeMinutes": "Run time (minutes):", + "LabelParentalRating": "Parental rating:", + "LabelCustomRating": "Custom rating:", + "LabelBudget": "Budget", + "LabelRevenue": "Revenue ($):", + "LabelOriginalAspectRatio": "Original aspect ratio:", + "LabelPlayers": "Players:", + "Label3DFormat": "3D format:", + "HeaderAlternateEpisodeNumbers": "Alternate Episode Numbers", + "HeaderSpecialEpisodeInfo": "Special Episode Info", + "HeaderExternalIds": "External Id's:", + "LabelDvdSeasonNumber": "Dvd season number:", + "LabelDvdEpisodeNumber": "Dvd episode number:", + "LabelAbsoluteEpisodeNumber": "Absolute episode number:", + "LabelAirsBeforeSeason": "Airs before season:", + "LabelAirsAfterSeason": "Airs after season:", + "LabelAirsBeforeEpisode": "Airs before episode:", + "HeaderDisplaySettings": "Display Settings", + "LabelTreatImageAs": "Treat image as:", + "LabelDisplayOrder": "Display order:", + "LabelDisplaySpecialsWithinSeasons": "Display specials within seasons they aired in", + "HeaderCountries": "Countries", + "HeaderGenres": "Genres", + "HeaderPeople": "People", + "HeaderPlotKeywords": "Plot Keywords", + "HeaderStudios": "Studios", + "HeaderTags": "Tags", + "HeaderMetadataSettings": "Metadata Settings", + "LabelLockItemToPreventChanges": "Lock this item to prevent future changes", + "MessageLeaveEmptyToInherit": "Leave empty to inherit settings from a parent item, or the global default value.", + "TabSupporterClub": "Supporter Club", + "HeaderDonationType": "Donation type:", + "OptionMakeOneTimeDonation": "Make a one-time donation", + "OptionLifeTimeSupporterClubMembership": "Lifetime supporter club membership", + "HeaderSupporterBenefit": "Becoming a supporter club member provides additional benefits such as access to premium plugins, internet channel content, and more.", "OptionNoTrailer": "No Trailer", "OptionNoThemeSong": "No Theme Song", - "OptionNoThemeVideo": "No Theme Video" + "OptionNoThemeVideo": "No Theme Video", + "LabelOneTimeDonationAmount": "Donation amount:" } diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 2b0c3579bf..7eed7f2bac 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -130,6 +130,7 @@ + diff --git a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj index b6c1ab98bd..5d2db29104 100644 --- a/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj +++ b/MediaBrowser.Server.Mono/MediaBrowser.Server.Mono.csproj @@ -79,9 +79,6 @@ FFMpeg\FFMpegDownloader.cs - - EntryPoints\WanAddressEntryPoint.cs - FFMpeg\FFMpegDownloadInfo.cs diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 00cefdb22d..dc4baf298c 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -1,5 +1,4 @@ -using System.Net; -using MediaBrowser.Api; +using MediaBrowser.Api; using MediaBrowser.Common; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Events; @@ -78,7 +77,6 @@ using MediaBrowser.Server.Implementations.ServerManager; using MediaBrowser.Server.Implementations.Session; using MediaBrowser.Server.Implementations.Sync; using MediaBrowser.Server.Implementations.Themes; -using MediaBrowser.ServerApplication.EntryPoints; using MediaBrowser.ServerApplication.FFMpeg; using MediaBrowser.ServerApplication.IO; using MediaBrowser.ServerApplication.Native; diff --git a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj index ce17f9e8eb..2e33ee2d5f 100644 --- a/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj +++ b/MediaBrowser.ServerApplication/MediaBrowser.ServerApplication.csproj @@ -100,7 +100,6 @@ -