Merge branch 'develop' of https://github.com/tidusjar/ombi into develop

pull/2605/head
TidusJar 6 years ago
commit f586d4f082

@ -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…
Cancel
Save