mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-14 02:26:55 -07:00
Merge branch 'develop' of https://github.com/tidusjar/ombi into develop
This commit is contained in:
commit
f586d4f082
23 changed files with 114 additions and 223 deletions
|
@ -98,7 +98,7 @@ namespace Ombi.Schedule.Jobs.Ombi
|
|||
// Get the Content
|
||||
var plexContent = _plex.GetAll().Include(x => x.Episodes).AsNoTracking();
|
||||
var embyContent = _emby.GetAll().Include(x => x.Episodes).AsNoTracking();
|
||||
var lidarrContent = _lidarrAlbumRepository.GetAll().AsNoTracking();
|
||||
var lidarrContent = _lidarrAlbumRepository.GetAll().Where(x => x.FullyAvailable).AsNoTracking();
|
||||
|
||||
var addedLog = _recentlyAddedLog.GetAll();
|
||||
var addedPlexMovieLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Plex && x.ContentType == ContentType.Parent).Select(x => x.ContentId);
|
||||
|
|
|
@ -117,37 +117,37 @@
|
|||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
<li [ngClass]="{'active': 'en' === translate.currentLang}">
|
||||
<a (click)="translate.use('en')" [translate]="'NavigationBar.Language.English'"></a>
|
||||
<a (click)="translate.use('en')">English</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'fr' === translate.currentLang}">
|
||||
<a (click)="translate.use('fr')" [translate]="'NavigationBar.Language.French'"></a>
|
||||
<a (click)="translate.use('fr')">Français</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'da' === translate.currentLang}">
|
||||
<a (click)="translate.use('da')" [translate]="'NavigationBar.Language.Danish'"></a>
|
||||
<a (click)="translate.use('da')">Dansk</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'de' === translate.currentLang}">
|
||||
<a (click)="translate.use('de')" [translate]="'NavigationBar.Language.German'"></a>
|
||||
<a (click)="translate.use('de')">Deutsch</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'it' === translate.currentLang}">
|
||||
<a (click)="translate.use('it')" [translate]="'NavigationBar.Language.Italian'"></a>
|
||||
<a (click)="translate.use('it')">Italiano</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'es' === translate.currentLang}">
|
||||
<a (click)="translate.use('es')" [translate]="'NavigationBar.Language.Spanish'"></a>
|
||||
<a (click)="translate.use('es')">Español</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'nl' === translate.currentLang}">
|
||||
<a (click)="translate.use('nl')" [translate]="'NavigationBar.Language.Dutch'"></a>
|
||||
<a (click)="translate.use('nl')">Nederlands</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'no' === translate.currentLang}">
|
||||
<a (click)="translate.use('no')" [translate]="'NavigationBar.Language.Norwegian'"></a>
|
||||
<a (click)="translate.use('no')">Norsk</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'pt' === translate.currentLang}">
|
||||
<a (click)="translate.use('pt')" [translate]="'NavigationBar.Language.BrazillianPortuguese'"></a>
|
||||
<a (click)="translate.use('pt')">Português (Brasil)</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'pl' === translate.currentLang}">
|
||||
<a (click)="translate.use('pl')" [translate]="'NavigationBar.Language.Polish'"></a>
|
||||
<a (click)="translate.use('pl')">Polski</a>
|
||||
</li>
|
||||
<li [ngClass]="{'active': 'sv' === translate.currentLang}">
|
||||
<a (click)="translate.use('sv')" [translate]="'NavigationBar.Language.Swedish'"></a>
|
||||
<a (click)="translate.use('sv')">Svenska</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
|
|
@ -129,7 +129,7 @@
|
|||
</form>
|
||||
|
||||
<!--Radarr Root Folder-->
|
||||
<div *ngIf="radarrRootFolders" class="btn-group btn-split" id="rootFolderBtn">
|
||||
<div *ngIf="radarrRootFolders?.length > 1" class="btn-group btn-split" id="rootFolderBtn">
|
||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeRootFolder' | translate }}
|
||||
</button>
|
||||
|
@ -145,7 +145,7 @@
|
|||
</div>
|
||||
|
||||
<!--Radarr Quality Profiles -->
|
||||
<div *ngIf="radarrProfiles" class="btn-group btn-split" id="changeQualityBtn">
|
||||
<div *ngIf="radarrProfiles?.length > 1" class="btn-group btn-split" id="changeQualityBtn">
|
||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeQualityProfile' | translate }}
|
||||
</button>
|
||||
|
@ -166,11 +166,7 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="removeBtn">
|
||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
|
||||
<form id="markBtnGroup">
|
||||
<button id="unavailableBtn" *ngIf="request.available" (click)="changeAvailability(request, false)" style="text-align: right"
|
||||
|
@ -185,6 +181,13 @@
|
|||
|
||||
|
||||
|
||||
</div>
|
||||
<div *ngIf="isAdmin || isRequestUser(request)">
|
||||
<form id="removeBtn">
|
||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="dropdown" *ngIf="issueCategories && issuesEnabled" id="issuesBtn">
|
||||
<button class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true"
|
||||
|
|
|
@ -218,6 +218,13 @@ export class MovieRequestsComponent implements OnInit {
|
|||
});
|
||||
}
|
||||
|
||||
public isRequestUser(request: IMovieRequests) {
|
||||
if (request.requestedUser.userName === this.auth.claims().name) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private filterActiveStyle(el: any) {
|
||||
el = el.toElement || el.relatedTarget || el.target || el.srcElement;
|
||||
|
||||
|
@ -365,4 +372,5 @@ export class MovieRequestsComponent implements OnInit {
|
|||
req.backgroundPath = this.sanitizer.bypassSecurityTrustStyle
|
||||
("url(" + "https://image.tmdb.org/t/p/w1280" + req.background + ")");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -169,11 +169,7 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="removeBtn" class="col-md-6">
|
||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||
</button>
|
||||
</form>
|
||||
|
||||
|
||||
<form id="markBtnGroup">
|
||||
<button id="unavailableBtn" *ngIf="request.available" (click)="changeAvailability(request, false)" style="text-align: right"
|
||||
|
@ -188,6 +184,13 @@
|
|||
|
||||
|
||||
|
||||
</div>
|
||||
<div *ngIf="isAdmin || isRequestUser(request)">
|
||||
<form id="removeBtn" class="col-md-6">
|
||||
<button (click)="removeRequest(request)" style="text-align: right" class="btn btn-sm btn-danger-outline delete">
|
||||
<i class="fa fa-minus"></i> {{ 'Requests.Remove' | translate }}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="dropdown" *ngIf="issueCategories && issuesEnabled" id="issuesBtn">
|
||||
<button class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true"
|
||||
|
|
|
@ -198,6 +198,13 @@ export class MusicRequestsComponent implements OnInit {
|
|||
this.loadInit();
|
||||
}
|
||||
|
||||
public isRequestUser(request: IAlbumRequest) {
|
||||
if (request.requestedUser.userName === this.auth.claims().name) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// public subscribe(request: IAlbumRequest) {
|
||||
// request.subscribed = true;
|
||||
// this.requestService.subscribeToMovie(request.id)
|
||||
|
@ -348,4 +355,5 @@ export class MusicRequestsComponent implements OnInit {
|
|||
req.background = this.sanitizer.bypassSecurityTrustStyle
|
||||
("url(" + req.cover + ")");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -23,8 +23,10 @@
|
|||
|
||||
<button id="denyBtn" *ngIf="!child.denied" type="button" (click)="deny(child)" class="btn btn-sm btn-danger-outline deny"><i class="fa fa-times"></i> {{ 'Requests.Deny' | translate }}</button>
|
||||
|
||||
<button id="removeBtn" type="button" (click)="removeRequest(child)" class="btn btn-sm btn-danger-outline deny"><i class="fa fa-times"></i> {{ 'Requests.Remove' | translate }}</button>
|
||||
</div>
|
||||
<div *ngIf="isAdmin || isRequestUser(child)">
|
||||
<button id="removeBtn" type="button" (click)="removeRequest(child)" class="btn btn-sm btn-danger-outline deny"><i class="fa fa-times"></i> {{ 'Requests.Remove' | translate }}</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
|
|
@ -10,6 +10,7 @@ import { NotificationService, RequestService } from "../services";
|
|||
export class TvRequestChildrenComponent {
|
||||
@Input() public childRequests: IChildRequests[];
|
||||
@Input() public isAdmin: boolean;
|
||||
@Input() public currentUser: string;
|
||||
|
||||
@Output() public requestDeleted = new EventEmitter<number>();
|
||||
|
||||
|
@ -110,10 +111,18 @@ export class TvRequestChildrenComponent {
|
|||
});
|
||||
}
|
||||
|
||||
public isRequestUser(request: IChildRequests) {
|
||||
if (request.requestedUser.userName === this.currentUser) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private removeRequestFromUi(key: IChildRequests) {
|
||||
const index = this.childRequests.indexOf(key, 0);
|
||||
if (index > -1) {
|
||||
this.childRequests.splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<i class="fa fa-plus"></i> View</button>
|
||||
<div *ngIf="isAdmin">
|
||||
<!--Sonarr Root Folder-->
|
||||
<div *ngIf="sonarrRootFolders" class="btn-group btn-split" id="rootFolderBtn">
|
||||
<div *ngIf="sonarrRootFolders?.length > 1" class="btn-group btn-split" id="rootFolderBtn">
|
||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeRootFolder' | translate }}
|
||||
</button>
|
||||
|
@ -66,7 +66,7 @@
|
|||
</div>
|
||||
|
||||
<!--Sonarr Quality Profiles -->
|
||||
<div *ngIf="sonarrProfiles" class="btn-group btn-split" id="changeQualityBtn">
|
||||
<div *ngIf="sonarrProfiles?.length > 1" class="btn-group btn-split" id="changeQualityBtn">
|
||||
<button type="button" class="btn btn-sm btn-warning-outline">
|
||||
<i class="fa fa-plus"></i> {{ 'Requests.ChangeQualityProfile' | translate }}
|
||||
</button>
|
||||
|
@ -99,7 +99,7 @@
|
|||
</div>
|
||||
<!--This is the section that holds the child seasons if they want to specify specific episodes-->
|
||||
<div *ngIf="node.open">
|
||||
<tvrequests-children [childRequests]="node.childRequests" [isAdmin]="isAdmin" (requestDeleted)="childRequestDeleted($event)"></tvrequests-children>
|
||||
<tvrequests-children [childRequests]="node.childRequests" [isAdmin]="isAdmin" [currentUser]="currentUser" (requestDeleted)="childRequestDeleted($event)"></tvrequests-children>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
|
|
@ -20,6 +20,7 @@ export class TvRequestsComponent implements OnInit {
|
|||
public searchChanged = new Subject<string>();
|
||||
public searchText: string;
|
||||
public isAdmin: boolean;
|
||||
public currentUser: string;
|
||||
public showChildDialogue = false; // This is for the child modal popup
|
||||
public selectedSeason: ITvRequests;
|
||||
public defaultPoster: string;
|
||||
|
@ -48,6 +49,7 @@ export class TvRequestsComponent implements OnInit {
|
|||
private readonly platformLocation: PlatformLocation) {
|
||||
|
||||
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
|
||||
this.currentUser = this.auth.claims().name;
|
||||
if (this.isAdmin) {
|
||||
this.sonarrService.getQualityProfilesWithoutSettings()
|
||||
.subscribe(x => this.sonarrProfiles = x);
|
||||
|
|
|
@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Ombi.Api.Radarr;
|
||||
using Ombi.Api.Radarr.Models;
|
||||
using Ombi.Attributes;
|
||||
|
@ -13,9 +12,9 @@ using Ombi.Settings.Settings.Models.External;
|
|||
|
||||
namespace Ombi.Controllers.External
|
||||
{
|
||||
[Authorize]
|
||||
[ApiV1]
|
||||
[Produces("application/json")]
|
||||
[Authorize]
|
||||
[ApiV1]
|
||||
[Produces("application/json")]
|
||||
public class RadarrController : Controller
|
||||
{
|
||||
public RadarrController(IRadarrApi radarr, ISettingsService<RadarrSettings> settings,
|
||||
|
@ -24,6 +23,7 @@ namespace Ombi.Controllers.External
|
|||
RadarrApi = radarr;
|
||||
RadarrSettings = settings;
|
||||
Cache = mem;
|
||||
RadarrSettings.ClearCache();
|
||||
}
|
||||
|
||||
private IRadarrApi RadarrApi { get; }
|
||||
|
@ -59,17 +59,15 @@ namespace Ombi.Controllers.External
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("Profiles")]
|
||||
[PowerUser]
|
||||
public async Task<IEnumerable<RadarrProfile>> GetProfiles()
|
||||
{
|
||||
return await Cache.GetOrAdd(CacheKeys.RadarrQualityProfiles, async () =>
|
||||
var settings = await RadarrSettings.GetSettingsAsync();
|
||||
if (settings.Enabled)
|
||||
{
|
||||
var settings = await RadarrSettings.GetSettingsAsync();
|
||||
if (settings.Enabled)
|
||||
{
|
||||
return await RadarrApi.GetProfiles(settings.ApiKey, settings.FullUri);
|
||||
}
|
||||
return null;
|
||||
}, DateTime.Now.AddHours(1));
|
||||
return await RadarrApi.GetProfiles(settings.ApiKey, settings.FullUri);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -78,17 +76,15 @@ namespace Ombi.Controllers.External
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("RootFolders")]
|
||||
[PowerUser]
|
||||
public async Task<IEnumerable<RadarrRootFolder>> GetRootFolders()
|
||||
{
|
||||
return await Cache.GetOrAdd(CacheKeys.RadarrRootProfiles, async () =>
|
||||
var settings = await RadarrSettings.GetSettingsAsync();
|
||||
if (settings.Enabled)
|
||||
{
|
||||
var settings = await RadarrSettings.GetSettingsAsync();
|
||||
if (settings.Enabled)
|
||||
{
|
||||
return await RadarrApi.GetRootFolders(settings.ApiKey, settings.FullUri);
|
||||
}
|
||||
return null;
|
||||
}, DateTime.Now.AddHours(1));
|
||||
return await RadarrApi.GetRootFolders(settings.ApiKey, settings.FullUri);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -20,6 +20,7 @@ namespace Ombi.Controllers.External
|
|||
{
|
||||
SonarrApi = sonarr;
|
||||
SonarrSettings = settings;
|
||||
SonarrSettings.ClearCache();
|
||||
}
|
||||
|
||||
private ISonarrApi SonarrApi { get; }
|
||||
|
@ -54,6 +55,7 @@ namespace Ombi.Controllers.External
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("Profiles")]
|
||||
[PowerUser]
|
||||
public async Task<IEnumerable<SonarrProfile>> GetProfiles()
|
||||
{
|
||||
var settings = await SonarrSettings.GetSettingsAsync();
|
||||
|
@ -69,6 +71,7 @@ namespace Ombi.Controllers.External
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("RootFolders")]
|
||||
[PowerUser]
|
||||
public async Task<IEnumerable<SonarrRootFolder>> GetRootFolders()
|
||||
{
|
||||
var settings = await SonarrSettings.GetSettingsAsync();
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
"Common": {
|
||||
"ContinueButton": "Fortsæt",
|
||||
"Available": "Tilgængelig",
|
||||
"PartiallyAvailable": "Partially Available",
|
||||
"Monitored": "Monitored",
|
||||
"PartiallyAvailable": "Delvist tilgængelig",
|
||||
"Monitored": "Overvåget",
|
||||
"NotAvailable": "Ikke tilgængelig",
|
||||
"ProcessingRequest": "Behandler anmodning",
|
||||
"PendingApproval": "Afventer godkendelse",
|
||||
|
@ -48,7 +48,7 @@
|
|||
"Requests": "Anmodninger",
|
||||
"UserManagement": "Brugeradministration",
|
||||
"Issues": "Problemer",
|
||||
"Vote": "Vote",
|
||||
"Vote": "Stem",
|
||||
"Donate": "Donér!",
|
||||
"DonateLibraryMaintainer": "Donér til vedligeholder af bibliotek",
|
||||
"DonateTooltip": "Sådan overbeviser jeg min kone om, at jeg skal bruge min fritid på at udvikle Ombi :)",
|
||||
|
@ -57,36 +57,23 @@
|
|||
"Welcome": "Velkommen til {{username}}",
|
||||
"UpdateDetails": "Opdater loginoplysninger",
|
||||
"Logout": "Log af",
|
||||
"Language": {
|
||||
"English": "Engelsk",
|
||||
"French": "Fransk",
|
||||
"Spanish": "Spansk",
|
||||
"German": "Tysk",
|
||||
"Italian": "Italiensk",
|
||||
"Danish": "Dansk",
|
||||
"Dutch": "Hollandsk",
|
||||
"Norwegian": "Norsk",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish": "Polish",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Åbn mobilapp",
|
||||
"RecentlyAdded": "Recently Added"
|
||||
"RecentlyAdded": "Senest tilføjet"
|
||||
},
|
||||
"Search": {
|
||||
"Title": "Søg",
|
||||
"Paragraph": "Ønsker du at se noget, som er utilgængeligt? intet problem, bare søg efter det nedenfor og anmod om det!",
|
||||
"MoviesTab": "Film",
|
||||
"TvTab": "Tv-serier",
|
||||
"MusicTab": "Music",
|
||||
"MusicTab": "Musik",
|
||||
"Suggestions": "Forslag",
|
||||
"NoResults": "Beklager, vi fandt ingen resultater!",
|
||||
"DigitalDate": "Digital Release: {{date}}",
|
||||
"TheatricalRelease": "Theatrical Release: {{date}}",
|
||||
"DigitalDate": "Digital udgivelse: {{date}}",
|
||||
"TheatricalRelease": "Biografudgivelse: {{date}}",
|
||||
"ViewOnPlex": "Se på Plex",
|
||||
"ViewOnEmby": "Se på Emby",
|
||||
"RequestAdded": "{{title}} er anmodet med succes",
|
||||
"Similar": "Similar",
|
||||
"Similar": "Lignende",
|
||||
"Movies": {
|
||||
"PopularMovies": "Populære film",
|
||||
"UpcomingMovies": "Kommende film",
|
||||
|
@ -116,15 +103,15 @@
|
|||
"Paragraph": "Herunder kan du se dine og alle andre anmodninger, samt status for download og godkendelse.",
|
||||
"MoviesTab": "Film",
|
||||
"TvTab": "Tv-serier",
|
||||
"MusicTab": "Music",
|
||||
"MusicTab": "Musik",
|
||||
"RequestedBy": "Anmodet af:",
|
||||
"Status": "Status:",
|
||||
"RequestStatus": "Status for anmodning:",
|
||||
"Denied": " Afvist:",
|
||||
"TheatricalRelease": "Theatrical Release: {{date}}",
|
||||
"ReleaseDate": "Released: {{date}}",
|
||||
"TheatricalReleaseSort": "Theatrical Release",
|
||||
"DigitalRelease": "Digital Release: {{date}}",
|
||||
"TheatricalRelease": "Biografudgivelse: {{date}}",
|
||||
"ReleaseDate": "Udgivet: {{date}}",
|
||||
"TheatricalReleaseSort": "Biografudgivelse",
|
||||
"DigitalRelease": "Digital udgivelse: {{date}}",
|
||||
"RequestDate": "Dato for anmodning:",
|
||||
"QualityOverride": "Tilsidesæt kvalitet:",
|
||||
"RootFolderOverride": "Tilsidesæt rodmappe:",
|
||||
|
@ -140,20 +127,20 @@
|
|||
"GridStatus": "Status",
|
||||
"ReportIssue": "Rapportér problem",
|
||||
"Filter": "Filter",
|
||||
"Sort": "Sort",
|
||||
"Sort": "Sorter",
|
||||
"SeasonNumberHeading": "Sæson: {seasonNumber}",
|
||||
"SortTitleAsc": "Title ▲",
|
||||
"SortTitleDesc": "Title ▼",
|
||||
"SortRequestDateAsc": "Request Date ▲",
|
||||
"SortRequestDateDesc": "Request Date ▼",
|
||||
"SortTitleAsc": "Titel ▲",
|
||||
"SortTitleDesc": "Titel ▼",
|
||||
"SortRequestDateAsc": "Dato for anmodning ▲",
|
||||
"SortRequestDateDesc": "Dato for anmodning ▼",
|
||||
"SortStatusAsc": "Status ▲",
|
||||
"SortStatusDesc": "Status ▼",
|
||||
"Remaining": {
|
||||
"Quota": "{{remaining}}/{{total}} requests remaining",
|
||||
"NextDays": "Another request will be added in {{time}} days",
|
||||
"NextHours": "Another request will be added in {{time}} hours",
|
||||
"NextMinutes": "Another request will be added in {{time}} minutes",
|
||||
"NextMinute": "Another request will be added in {{time}} minute"
|
||||
"Quota": "{{remaining}}/{{total}} anmodninger, der er tilbage",
|
||||
"NextDays": "En anden anmodning vil blive tilføjet i {{time}} Dage",
|
||||
"NextHours": "En anden anmodning vil blive tilføjet i {{time}} Timer",
|
||||
"NextMinutes": "En anden anmodning vil blive tilføjet i {{time}} Minutter",
|
||||
"NextMinute": "En anden anmodning vil blive tilføjet i {{time}} Minut"
|
||||
}
|
||||
},
|
||||
"Issues": {
|
||||
|
@ -180,18 +167,18 @@
|
|||
"FilterHeaderAvailability": "Tilgængelighed",
|
||||
"FilterHeaderRequestStatus": "Status",
|
||||
"Approved": "Godkendt",
|
||||
"PendingApproval": "Pending Approval"
|
||||
"PendingApproval": "Afventer godkendelse"
|
||||
},
|
||||
"UserManagment": {
|
||||
"TvRemaining": "TV: {{remaining}}/{{total}} remaining",
|
||||
"MovieRemaining": "Movies: {{remaining}}/{{total}} remaining",
|
||||
"MusicRemaining": "Music: {{remaining}}/{{total}} remaining",
|
||||
"TvDue": "TV: {{date}}",
|
||||
"MovieDue": "Movie: {{date}}",
|
||||
"MusicDue": "Music: {{date}}"
|
||||
"TvRemaining": "Tv: {{remaining}}/{{total}} Resterende",
|
||||
"MovieRemaining": "Film: {{remaining}}/{{total}} Resterende",
|
||||
"MusicRemaining": "Musik: {{remaining}}/{{total}} Resterende",
|
||||
"TvDue": "Tv: {{date}}",
|
||||
"MovieDue": "Film: {{date}}",
|
||||
"MusicDue": "Musik: {{date}}"
|
||||
},
|
||||
"Votes": {
|
||||
"CompletedVotesTab": "Voted",
|
||||
"VotesTab": "Votes Needed"
|
||||
"CompletedVotesTab": "Stemt",
|
||||
"VotesTab": "Nødvendige stemmer"
|
||||
}
|
||||
}
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Willkommen {{username}}",
|
||||
"UpdateDetails": "Update-Details",
|
||||
"Logout": "Ausloggen",
|
||||
"Language": {
|
||||
"English": "Englisch",
|
||||
"French": "Französisch",
|
||||
"Spanish": "Spanisch",
|
||||
"German": "Deutsch",
|
||||
"Italian": "Italienisch",
|
||||
"Danish": "Dänisch",
|
||||
"Dutch": "Niederländisch",
|
||||
"Norwegian": "Norwegisch",
|
||||
"BrazillianPortuguese": "Portugiesisch (Brasilien)",
|
||||
"Polish": "Polnisch",
|
||||
"Swedish": "Schwedisch"
|
||||
},
|
||||
"OpenMobileApp": "Mobile App",
|
||||
"RecentlyAdded": "Kürzlich hinzugefügt"
|
||||
},
|
||||
|
|
|
@ -60,19 +60,6 @@
|
|||
"Welcome": "Welcome {{username}}",
|
||||
"UpdateDetails": "Update Details",
|
||||
"Logout": "Logout",
|
||||
"Language": {
|
||||
"English": "English",
|
||||
"French": "French",
|
||||
"Spanish": "Spanish",
|
||||
"German": "German",
|
||||
"Italian": "Italian",
|
||||
"Danish": "Danish",
|
||||
"Dutch": "Dutch",
|
||||
"Norwegian":"Norwegian",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish":"Polish",
|
||||
"Swedish":"Swedish"
|
||||
},
|
||||
"OpenMobileApp":"Open Mobile App",
|
||||
"RecentlyAdded":"Recently Added"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Bienvenido {{username}}",
|
||||
"UpdateDetails": "Detalles de la actualización",
|
||||
"Logout": "Cerrar sesión",
|
||||
"Language": {
|
||||
"English": "Inglés",
|
||||
"French": "Francés",
|
||||
"Spanish": "Español",
|
||||
"German": "Alemán",
|
||||
"Italian": "Italiano",
|
||||
"Danish": "Danés",
|
||||
"Dutch": "Holandés",
|
||||
"Norwegian": "Norwegian",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish": "Polish",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Open Mobile App",
|
||||
"RecentlyAdded": "Recently Added"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Bienvenue {{username}}",
|
||||
"UpdateDetails": "Détails de la mise à jour",
|
||||
"Logout": "Déconnexion",
|
||||
"Language": {
|
||||
"English": "Anglais",
|
||||
"French": "Français",
|
||||
"Spanish": "Espagnol",
|
||||
"German": "Allemand",
|
||||
"Italian": "Italien",
|
||||
"Danish": "Danois",
|
||||
"Dutch": "Néerlandais",
|
||||
"Norwegian": "Norvégien",
|
||||
"BrazillianPortuguese": "Portuguais brésilien",
|
||||
"Polish": "Polonais",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Ouvrir l'application mobile",
|
||||
"RecentlyAdded": "Ajouts récents"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Benvenuto {{username}}",
|
||||
"UpdateDetails": "Aggiorna i tuoi dati",
|
||||
"Logout": "Logout",
|
||||
"Language": {
|
||||
"English": "Inglese",
|
||||
"French": "Francese",
|
||||
"Spanish": "Spagnolo",
|
||||
"German": "Tedesco",
|
||||
"Italian": "Italiano",
|
||||
"Danish": "Danese",
|
||||
"Dutch": "Olandese",
|
||||
"Norwegian": "Norvegese",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish": "Polish",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Apri l'applicazione mobile",
|
||||
"RecentlyAdded": "Recently Added"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Welkom {{username}}",
|
||||
"UpdateDetails": "Update gegevens",
|
||||
"Logout": "Logout",
|
||||
"Language": {
|
||||
"English": "Engels",
|
||||
"French": "Frans",
|
||||
"Spanish": "Spaans",
|
||||
"German": "Duits",
|
||||
"Italian": "Italiaans",
|
||||
"Danish": "Deens",
|
||||
"Dutch": "Nederlands",
|
||||
"Norwegian": "Noors",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish": "Polish",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Open Mobiele App",
|
||||
"RecentlyAdded": "Recently Added"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Velkommen {{username}}",
|
||||
"UpdateDetails": "Oppdater detaljer",
|
||||
"Logout": "Logg av",
|
||||
"Language": {
|
||||
"English": "Engelsk",
|
||||
"French": "Fransk",
|
||||
"Spanish": "Spansk",
|
||||
"German": "Tysk",
|
||||
"Italian": "Italiensk",
|
||||
"Danish": "Dansk",
|
||||
"Dutch": "Nederlandsk",
|
||||
"Norwegian": "Norsk",
|
||||
"BrazillianPortuguese": "Brazillian Portuguese",
|
||||
"Polish": "Polish",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Åpne mobilapp",
|
||||
"RecentlyAdded": "Recently Added"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Witaj {{username}}",
|
||||
"UpdateDetails": "Podaj szczegóły",
|
||||
"Logout": "Wyloguj",
|
||||
"Language": {
|
||||
"English": "Angielski",
|
||||
"French": "Francuski",
|
||||
"Spanish": "Hiszpański",
|
||||
"German": "Niemiecki",
|
||||
"Italian": "Włoski",
|
||||
"Danish": "Duński",
|
||||
"Dutch": "Holenderski",
|
||||
"Norwegian": "Norweski",
|
||||
"BrazillianPortuguese": "Brazylijski portugalski",
|
||||
"Polish": "Polski",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Otwórz aplikację mobilną",
|
||||
"RecentlyAdded": "Ostatnio dodane"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Bem-vindo, {{username}}",
|
||||
"UpdateDetails": "Detalhes da Atualização",
|
||||
"Logout": "Sair",
|
||||
"Language": {
|
||||
"English": "Inglês",
|
||||
"French": "Francês",
|
||||
"Spanish": "Espanhol",
|
||||
"German": "Alemão",
|
||||
"Italian": "Italiano",
|
||||
"Danish": "Dinamarquês",
|
||||
"Dutch": "Holandês",
|
||||
"Norwegian": "Norueguês",
|
||||
"BrazillianPortuguese": "Português (Brasil)",
|
||||
"Polish": "Polonês",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Abrir aplicativo do celular",
|
||||
"RecentlyAdded": "Recentemente adicionado"
|
||||
},
|
||||
|
|
|
@ -57,19 +57,6 @@
|
|||
"Welcome": "Välkommen {{username}}",
|
||||
"UpdateDetails": "Uppdatera information",
|
||||
"Logout": "Logga ut",
|
||||
"Language": {
|
||||
"English": "Engelska",
|
||||
"French": "Franska",
|
||||
"Spanish": "Spanska",
|
||||
"German": "Tyska",
|
||||
"Italian": "Italienska",
|
||||
"Danish": "Danska",
|
||||
"Dutch": "Holländska",
|
||||
"Norwegian": "Norska",
|
||||
"BrazillianPortuguese": "Brazillian portugisiska",
|
||||
"Polish": "Polska",
|
||||
"Swedish": "Swedish"
|
||||
},
|
||||
"OpenMobileApp": "Öppna Mobil App",
|
||||
"RecentlyAdded": "Nyligen tillagda"
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue