diff --git a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts index 56002c9e9..a39e92858 100644 --- a/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts +++ b/src/Ombi/ClientApp/src/app/discover/components/card/discover-card.component.ts @@ -2,6 +2,7 @@ import { Component, OnInit, Input } from "@angular/core"; import { IDiscoverCardResult } from "../../interfaces"; import { RequestType } from "../../../interfaces"; import { MessageService, RequestService, SearchV2Service } from "../../../services"; +import { TranslateService } from "@ngx-translate/core"; import { MatDialog } from "@angular/material/dialog"; import { ISearchTvResultV2 } from "../../../interfaces/ISearchTvResultV2"; import { ISearchMovieResultV2 } from "../../../interfaces/ISearchMovieResultV2"; @@ -30,7 +31,7 @@ export class DiscoverCardComponent implements OnInit { private tvSearchResult: ISearchTvResultV2; constructor(private searchService: SearchV2Service, private dialog: MatDialog, private requestService: RequestService, - public messageService: MessageService) { } + public messageService: MessageService, private translate: TranslateService) { } public ngOnInit() { if (this.result.type == RequestType.tvShow) { @@ -98,13 +99,13 @@ export class DiscoverCardComponent implements OnInit { public getAvailbilityStatus(): string { if (this.result.available) { - return "Available"; + return this.translate.instant("Common.Available"); } if (this.result.approved) { - return "Approved"; + return this.translate.instant("Common.Approved"); } if (this.result.requested) { - return "Pending"; + return this.translate.instant("Common.Pending"); } return ""; } diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html index 62908b361..2e88e6edc 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html @@ -17,7 +17,7 @@

- {{'MediaDetails.StreamingOn' | translate }}: + {{'MediaDetails.StreamingOn' | translate }}
@@ -26,11 +26,11 @@

- {{'MediaDetails.Status' | translate }}: - {{movie.status}} + {{'MediaDetails.Status' | translate }} + {{ getMovieStatusLabel()}}
- {{'MediaDetails.Availability' | translate }}: + {{'MediaDetails.Availability' | translate }} {{'Common.Available' | translate}} {{'Common.NotAvailable' | translate}}
@@ -44,23 +44,23 @@
- {{'Requests.RequestedBy' | translate }}: + {{'MediaDetails.RequestedBy' | translate }} {{request.requestedUser.userAlias}}
- {{'Requests.RequestDate' | translate }}: + {{'MediaDetails.RequestDate' | translate }} {{request.requestedDate | date}}
- {{'Requests.DeniedReason' | translate }}: + {{'MediaDetails.DeniedReason' | translate }} {{request.deniedReason}}
- {{'MediaDetails.Quality' | translate }}: + {{'MediaDetails.Quality' | translate }}
{{movie.quality | quality}}
@@ -77,34 +77,34 @@
- {{'MediaDetails.TheatricalRelease' | translate }}: + {{'MediaDetails.TheatricalRelease' | translate }} {{movie.releaseDate | date: 'mediumDate'}}
- {{'MediaDetails.DigitalRelease' | translate }}: + {{'MediaDetails.DigitalRelease' | translate }} {{movie.digitalReleaseDate | date: 'mediumDate'}}
- {{'MediaDetails.Votes' | translate }}: + {{'MediaDetails.Votes' | translate }} {{movie.voteCount | thousandShort: 1}}
- {{'MediaDetails.Runtime' | translate }}: + {{'MediaDetails.Runtime' | translate }} {{'MediaDetails.Minutes' | translate:{runtime: movie.runtime} }}
- {{'MediaDetails.Revenue' | translate }}: + {{'MediaDetails.Revenue' | translate }} {{movie.revenue | currency: 'USD'}}
- {{'MediaDetails.Budget' | translate }}: + {{'MediaDetails.Budget' | translate }} {{movie.budget | currency: 'USD'}}

- {{'MediaDetails.Genres' | translate }}: + {{'MediaDetails.Genres' | translate }}
@@ -116,7 +116,7 @@
- {{'MediaDetails.Keywords' | translate }}: + {{'MediaDetails.Keywords' | translate }} {{keyword.name}} diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts index c11a0f61c..174f692de 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts @@ -1,4 +1,5 @@ import { Component, ViewEncapsulation, Input, OnInit, Inject } from "@angular/core"; +import { TranslateService } from "@ngx-translate/core"; import { ISearchMovieResultV2 } from "../../../../interfaces/ISearchMovieResultV2"; import { IMovieRequests } from "../../../../interfaces"; import { SearchV2Service } from "../../../../services/searchV2.service"; @@ -13,7 +14,8 @@ import { IStreamingData } from "../../../../interfaces/IStreams"; }) export class MovieInformationPanelComponent implements OnInit { - constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string) { } + constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string, + private translate: TranslateService) { } @Input() public movie: ISearchMovieResultV2; @Input() public request: IMovieRequests; @@ -33,4 +35,14 @@ export class MovieInformationPanelComponent implements OnInit { this.searchService.getMovieStreams(this.movie.id).subscribe(x => this.streams = x); } + + public getMovieStatusLabel() { + const textKey = 'MediaDetails.StatusValues.' + this.movie.status; + const text = this.translate.instant(textKey); + if (text !== textKey) { + return text; + } else { + return this.movie.status; + } + } } diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html index 1e3fdbcd6..6f7278c6b 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html @@ -11,7 +11,7 @@

- {{'MediaDetails.StreamingOn' | translate }}: + {{'MediaDetails.StreamingOn' | translate }}
@@ -21,44 +21,44 @@

- {{'MediaDetails.Status' | translate }}: - {{tv.status}} + {{'MediaDetails.Status' | translate }} + {{ getTVStatusLabel()}}
- First Aired: + {{'MediaDetails.FirstAired' | translate }} {{tv.firstAired | date: 'mediumDate'}}
- Seasons: + {{'MediaDetails.Seasons' | translate }} {{seasonCount}}
- Episodes: + {{'MediaDetails.Episodes' | translate }} {{totalEpisodes}}
- {{'MediaDetails.RootFolderOverride' | translate }}: + {{'MediaDetails.RootFolderOverride' | translate }}
{{request.rootPathOverrideTitle}}
- {{'MediaDetails.QualityOverride' | translate }}: + {{'MediaDetails.QualityOverride' | translate }}
{{request.qualityOverrideTitle}}
- {{'MediaDetails.Runtime' | translate }}: + {{'MediaDetails.Runtime' | translate }} {{'MediaDetails.Minutes' | translate:{ runtime: tv.runtime} }}
- Network: + {{'MediaDetails.Network' | translate }} {{tv.network.name}}
- {{'MediaDetails.Genres' | translate }}: + {{'MediaDetails.Genres' | translate }}
diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts index d5ba5cbd6..46175847f 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts @@ -1,5 +1,6 @@ import { APP_BASE_HREF } from "@angular/common"; import { Component, ViewEncapsulation, Input, OnInit, Inject } from "@angular/core"; +import { TranslateService } from "@ngx-translate/core"; import { ITvRequests } from "../../../../../interfaces"; import { ITvRatings } from "../../../../../interfaces/IRatings"; import { ISearchTvResultV2 } from "../../../../../interfaces/ISearchTvResultV2"; @@ -14,7 +15,8 @@ import { SearchV2Service } from "../../../../../services"; }) export class TvInformationPanelComponent implements OnInit { - constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string) { } + constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string, + private translate: TranslateService) { } @Input() public tv: ISearchTvResultV2; @Input() public request: ITvRequests; @@ -43,5 +45,15 @@ export class TvInformationPanelComponent implements OnInit { public sortBy(prop: string) { return this.streams.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1); - } + } + + public getTVStatusLabel() { + const textKey = 'MediaDetails.StatusValues.' + this.tv.status; + const text = this.translate.instant(textKey); + if (text !== textKey) { + return text; + } else { + return this.tv.status; + } + } } diff --git a/src/Ombi/wwwroot/translations/en.json b/src/Ombi/wwwroot/translations/en.json index 67eb312d8..3eecf5a26 100644 --- a/src/Ombi/wwwroot/translations/en.json +++ b/src/Ombi/wwwroot/translations/en.json @@ -14,6 +14,8 @@ "Common": { "ContinueButton": "Continue", "Available": "Available", + "Approved": "Approved", + "Pending": "Pending", "PartiallyAvailable": "Partially Available", "Monitored": "Monitored", "NotAvailable": "Not Available", @@ -269,21 +271,33 @@ "QualityProfilesSelect":"Select A Quality Profile", "RootFolderSelect":"Select A Root Folder", "LanguageProfileSelect":"Select A Language Profile", - "Status":"Status", - "Availability":"Availability", + "Status":"Status:", + "StatusValues" : { + "Planned": "Planned", + "In Production": "In Production", + "Released": "Released", + "Returning Series": "Returning Series", + "Ended": "Ended", + "Canceled": "Canceled" + }, + "Seasons": "Seasons:", + "Episodes": "Episodes:", + "Availability":"Availability:", "RequestStatus":"Request Status", - "Quality":"Quality", - "RootFolderOverride":"Root Folder Override", - "QualityOverride":"Quality Override", - "Genres":"Genres", - "TheatricalRelease":"Release", - "DigitalRelease":"Digital Release", - "Votes":"Votes", - "Runtime":"Runtime", + "Quality":"Quality:", + "RootFolderOverride":"Root Folder Override:", + "QualityOverride":"Quality Override:", + "Network":"Network:", + "Genres":"Genres:", + "FirstAired":"First Aired:", + "TheatricalRelease":"Release:", + "DigitalRelease":"Digital Release:", + "Votes":"Votes:", + "Runtime":"Runtime:", "Minutes": "{{runtime}} Minutes", - "Revenue":"Revenue", - "Budget":"Budget", - "Keywords":"Keywords/Tags", + "Revenue":"Revenue:", + "Budget":"Budget:", + "Keywords":"Keywords/Tags:", "Casts": { "CastTitle": "Cast" }, @@ -297,7 +311,10 @@ "RadarrConfiguration": "Radarr Configuration", "RequestOnBehalf": "Request on behalf of", "PleaseSelectUser": "Please select a user", - "StreamingOn": "Streaming On", + "StreamingOn": "Streaming On:", + "RequestedBy": "Requested By:", + "RequestDate": "Request Date:", + "DeniedReason": "Denied Reason:", "ReProcessRequest": "Re-Process Request" }, "Discovery": {