Merge branch 'Ombi-app:develop' into feature/cloudflarejwt

This commit is contained in:
Coby Geralnik 2021-10-22 18:00:27 +03:00 committed by GitHub
commit d9f361c99c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
65 changed files with 2562 additions and 812 deletions

View file

@ -1,3 +1,58 @@
# [4.3.0](https://github.com/Ombi-app/Ombi/compare/v4.2.13...v4.3.0) (2021-10-20)
### Bug Fixes
* **translations:** 🌐 New translations from Crowdin [skip ci] ([b0f3abb](https://github.com/Ombi-app/Ombi/commit/b0f3abb9ceebdbe5d6c20af98b7355df2999eb58))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([77d017b](https://github.com/Ombi-app/Ombi/commit/77d017b3d8ffd1714a2f6efecc8c900d56d062e4))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([f6e9784](https://github.com/Ombi-app/Ombi/commit/f6e9784367d3678d899ed79bef6caa52005b6661))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([601a877](https://github.com/Ombi-app/Ombi/commit/601a87762a2ad393ee5fa2fe52052ceeeefb1bef))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([a4a80ba](https://github.com/Ombi-app/Ombi/commit/a4a80ba4da49733a65e691003646c0f349bd4c5f))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([2961319](https://github.com/Ombi-app/Ombi/commit/2961319f61e95b2871480152b86ddca3375576a1))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([fc8d108](https://github.com/Ombi-app/Ombi/commit/fc8d108b660d53f499538328bfc271b05ac47d2b))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([1e03651](https://github.com/Ombi-app/Ombi/commit/1e03651c3b0eb77e45f9f6c55d31ee672eacd51e))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([c0dd327](https://github.com/Ombi-app/Ombi/commit/c0dd327426514e305a88750d7c3deb21c194108f))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([2156129](https://github.com/Ombi-app/Ombi/commit/2156129f175335746f204bb123035c070f518e96))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([aef0368](https://github.com/Ombi-app/Ombi/commit/aef0368de3aec306245bd1b16bc0de596a20d451))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([a38090b](https://github.com/Ombi-app/Ombi/commit/a38090b8dde17d1d150af0bca2830ea45d013a0e))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([c5f1d33](https://github.com/Ombi-app/Ombi/commit/c5f1d3355758a5c3648479d44e50397c7f6c1a9d))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([3846d56](https://github.com/Ombi-app/Ombi/commit/3846d56a6e561a1b1dc65c385151d90fdd6217ee))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([dafe9c1](https://github.com/Ombi-app/Ombi/commit/dafe9c1a19d84f00c13f0a51ba90927c24282926))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([edb418a](https://github.com/Ombi-app/Ombi/commit/edb418a6f05887c68a0c24c48decc691996f97e4))
* **translations:** 🌐 New translations from Crowdin [skip ci] ([dadabf9](https://github.com/Ombi-app/Ombi/commit/dadabf93e1582a0c39321fd9bf3de3fb11e3f406))
### Features
* **request-limits:** :sparkles: Added the new request limit options into the user importer ([01d4f4d](https://github.com/Ombi-app/Ombi/commit/01d4f4d718fe85ac181dae52565fb1b427965b4f))
* **request-limits:** :sparkles: Added the new request limit options to the bulk edit ([03bc23a](https://github.com/Ombi-app/Ombi/commit/03bc23a74e4308aa6b4c6b25636edcdeb65c1f0e))
## [4.2.13](https://github.com/Ombi-app/Ombi/compare/v4.2.12...v4.2.13) (2021-10-20)
### Bug Fixes
* **translations:** 🌐 New translations %two_letters_code% from Crowdin [skip ci] ([8fbd267](https://github.com/Ombi-app/Ombi/commit/8fbd267b516ddaa80fd16c091bae532b860fbf45))
## [4.2.12](https://github.com/Ombi-app/Ombi/compare/v4.2.11...v4.2.12) (2021-10-20)
### Bug Fixes
* **newsletter:** :bug: Fixed a few small bugs in the newsletter ([21dba4c](https://github.com/Ombi-app/Ombi/commit/21dba4c524b98b9f2b883d97e7e13329425a8762))
* **translations:** 🌐 New translations en.json from Crowdin [skip ci] ([52eda6a](https://github.com/Ombi-app/Ombi/commit/52eda6ab917a73842bc02b0d8e0c442e564ca8f0))
* **translations:** 🌐 New translations en.json from Crowdin [skip ci] ([1095d52](https://github.com/Ombi-app/Ombi/commit/1095d524962648a1e427f0bcd8105fa734dd5b60))
## [4.2.11](https://github.com/Ombi-app/Ombi/compare/v4.2.10...v4.2.11) (2021-10-18)
## [4.2.10](https://github.com/Ombi-app/Ombi/compare/v4.2.9...v4.2.10) (2021-10-15)
@ -7,40 +62,3 @@
## [4.2.9](https://github.com/Ombi-app/Ombi/compare/v4.2.8...v4.2.9) (2021-10-15)
### Bug Fixes
* :fire: Really fix the base url issue this time ([9f36923](https://github.com/Ombi-app/Ombi/commit/9f36923c51bfabf9cb026f2da14f9947050af0d9))
## [4.2.8](https://github.com/Ombi-app/Ombi/compare/v4.2.7...v4.2.8) (2021-10-15)
### Bug Fixes
* :adhesive_bandage: See if this fixes the proxy issue ([74d1aca](https://github.com/Ombi-app/Ombi/commit/74d1acae499707a7e21401f53eb2bb90c5bb9cfa))
* :bug: Fixed Ombi not writing the baseUrl correctly ([e9cc8b6](https://github.com/Ombi-app/Ombi/commit/e9cc8b6fe71d3e10c1a901e70227989b3362afe3))
## [4.2.7](https://github.com/Ombi-app/Ombi/compare/v4.2.6...v4.2.7) (2021-10-14)
### Bug Fixes
* :bug: Fixed the issue parsing TheMovieDB dates. They have broken something... ([6e397e0](https://github.com/Ombi-app/Ombi/commit/6e397e02e95f894a92e8bf02428efdcac1275b31))
## [4.2.6](https://github.com/Ombi-app/Ombi/compare/v4.2.5...v4.2.6) (2021-10-14)
### Performance Improvements
* :zap: Use ngxs store for the whole customization section of the app ([97b493d](https://github.com/Ombi-app/Ombi/commit/97b493d869feee59d360b484a6c59388a2aead1f))

View file

@ -178,6 +178,13 @@ Here are some of the features Ombi has:
<sub><b>Dyson Parkes</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/sephrat">
<img src="https://avatars.githubusercontent.com/u/34862846?v=4" width="50;" alt="sephrat"/>
<br />
<sub><b>Sephrat</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/goldenpipes">
<img src="https://avatars.githubusercontent.com/u/6140137?v=4" width="50;" alt="goldenpipes"/>
@ -191,15 +198,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Julien Loir</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/ProtoJazz">
<img src="https://avatars.githubusercontent.com/u/1490293?v=4" width="50;" alt="ProtoJazz"/>
<br />
<sub><b>Jim MacKenize</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Unimatrix0">
<img src="https://avatars.githubusercontent.com/u/357984?v=4" width="50;" alt="Unimatrix0"/>
@ -234,15 +241,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Taylor Buchanan</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Patricol">
<img src="https://avatars.githubusercontent.com/u/13428020?v=4" width="50;" alt="Patricol"/>
<br />
<sub><b>Patrick Collins</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/chriscpritchard">
<img src="https://avatars.githubusercontent.com/u/1839074?v=4" width="50;" alt="chriscpritchard"/>
@ -277,15 +284,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Mhann</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/ombi-bot">
<img src="https://avatars.githubusercontent.com/u/51722903?v=4" width="50;" alt="ombi-bot"/>
<br />
<sub><b>Ombi-bot</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/snyk-bot">
<img src="https://avatars.githubusercontent.com/u/19733683?v=4" width="50;" alt="snyk-bot"/>
@ -320,15 +327,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>David Pooley</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Fredrik81">
<img src="https://avatars.githubusercontent.com/u/21292774?v=4" width="50;" alt="Fredrik81"/>
<br />
<sub><b>Fredrik81</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Aerion">
<img src="https://avatars.githubusercontent.com/u/9089317?v=4" width="50;" alt="Aerion"/>
@ -363,15 +370,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Qstick</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Vbgf">
<img src="https://avatars.githubusercontent.com/u/5571734?v=4" width="50;" alt="Vbgf"/>
<br />
<sub><b>Vbgf</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/sorano">
<img src="https://avatars.githubusercontent.com/u/6185109?v=4" width="50;" alt="sorano"/>
@ -406,15 +413,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Aljosa Asanovic</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Ashyni">
<img src="https://avatars.githubusercontent.com/u/18462848?v=4" width="50;" alt="Ashyni"/>
<br />
<sub><b>Ashyni</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Majawat">
<img src="https://avatars.githubusercontent.com/u/12058855?v=4" width="50;" alt="Majawat"/>
@ -449,15 +456,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Codehhh</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/danopia">
<img src="https://avatars.githubusercontent.com/u/40628?v=4" width="50;" alt="danopia"/>
<br />
<sub><b>Daniel Lamando</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/hmnd">
<img src="https://avatars.githubusercontent.com/u/12853597?v=4" width="50;" alt="hmnd"/>
@ -492,15 +499,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Fish2</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/hariesramdhani">
<img src="https://avatars.githubusercontent.com/u/24251244?v=4" width="50;" alt="hariesramdhani"/>
<br />
<sub><b>Haries Ramdhani</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/ImgBotApp">
<img src="https://avatars.githubusercontent.com/u/31427850?v=4" width="50;" alt="ImgBotApp"/>
@ -535,15 +542,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Joe Harvey</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/jonbloom">
<img src="https://avatars.githubusercontent.com/u/492819?v=4" width="50;" alt="jonbloom"/>
<br />
<sub><b>Jon Bloom</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/jonocairns">
<img src="https://avatars.githubusercontent.com/u/182836?v=4" width="50;" alt="jonocairns"/>
@ -578,15 +585,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Madeleine Schönemann</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/mattmattmatt">
<img src="https://avatars.githubusercontent.com/u/927830?v=4" width="50;" alt="mattmattmatt"/>
<br />
<sub><b>Matt</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/AliMickey">
<img src="https://avatars.githubusercontent.com/u/60691199?v=4" width="50;" alt="AliMickey"/>
@ -621,15 +628,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Samuel Bartík</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/seancallinan">
<img src="https://avatars.githubusercontent.com/u/1139665?v=4" width="50;" alt="seancallinan"/>
<br />
<sub><b>Sean Callinan</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/shoghicp">
<img src="https://avatars.githubusercontent.com/u/516482?v=4" width="50;" alt="shoghicp"/>
@ -664,15 +671,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Torkil</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/bybeet">
<img src="https://avatars.githubusercontent.com/u/1662279?v=4" width="50;" alt="bybeet"/>
<br />
<sub><b>Travis Bybee</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Xirg">
<img src="https://avatars.githubusercontent.com/u/6020502?v=4" width="50;" alt="Xirg"/>
@ -707,15 +714,15 @@ Here are some of the features Ombi has:
<br />
<sub><b>Michael DiStaula</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/baikunz">
<img src="https://avatars.githubusercontent.com/u/984911?v=4" width="50;" alt="baikunz"/>
<br />
<sub><b>Dorian ALKOUM</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/m4tta">
<img src="https://avatars.githubusercontent.com/u/427218?v=4" width="50;" alt="m4tta"/>
@ -750,7 +757,8 @@ Here are some of the features Ombi has:
<br />
<sub><b>Mike</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/zobe123">
<img src="https://avatars.githubusercontent.com/u/13840542?v=4" width="50;" alt="zobe123"/>

View file

@ -1,3 +1,10 @@
commit_message: "fix(translations): 🌐 New translations from Crowdin [skip ci]"
append_commit_message: false
pull_request_title: "🌐 Translations Update"
pull_request_labels:
- translations
files:
- source: /src/Ombi/wwwroot/translations/en.json
translation: /src/Ombi/wwwroot/translations/%two_letters_code%.json

View file

@ -29,6 +29,8 @@ namespace Ombi.Schedule.Tests
yield return new TestCaseData("https://google.com:3577/", "1").Returns("https://google.com:3577/unsubscribe/1").SetName("Port With Slash");
yield return new TestCaseData("", "1").Returns(string.Empty).SetName("Missing App URL empty");
yield return new TestCaseData(null, "1").Returns(string.Empty).SetName("Missing App URL null");
yield return new TestCaseData("hty", string.Empty).Returns(string.Empty).SetName("Missing ID empty");
yield return new TestCaseData("hty", null).Returns(string.Empty).SetName("Missing ID null");
}
}
}

View file

@ -117,7 +117,11 @@ namespace Ombi.Schedule.Jobs.Emby
ProviderUserId = embyUser.Id,
Alias = isConnectUser ? embyUser.Name : string.Empty,
MovieRequestLimit = userManagementSettings.MovieRequestLimit,
MovieRequestLimitType = userManagementSettings.MovieRequestLimitType,
EpisodeRequestLimit = userManagementSettings.EpisodeRequestLimit,
EpisodeRequestLimitType = userManagementSettings.EpisodeRequestLimitType,
MusicRequestLimit = userManagementSettings.MusicRequestLimit,
MusicRequestLimitType = userManagementSettings.MusicRequestLimitType,
StreamingCountry = userManagementSettings.DefaultStreamingCountry
};
var result = await _userManager.CreateAsync(newUser);

View file

@ -208,13 +208,7 @@ namespace Ombi.Schedule.Jobs.Ombi
if (!test)
{
// Get the users to send it to
var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.ReceivesNewsletter);
if (!users.Any())
{
return;
}
var users = new List<OmbiUser>();
foreach (var emails in settings.ExternalEmails)
{
users.Add(new OmbiUser
@ -224,11 +218,23 @@ namespace Ombi.Schedule.Jobs.Ombi
});
}
// Get the users to send it to
users.AddRange(await _userManager.GetUsersInRoleAsync(OmbiRoles.ReceivesNewsletter));
if (!users.Any())
{
return;
}
var messageContent = ParseTemplate(template, customization);
var email = new NewsletterTemplate();
foreach (var user in users)
{
foreach (var user in users.DistinctBy(x => x.Email))
{ // Get the users to send it to
if (user.Email.IsNullOrEmpty())
{
continue;
}
var url = GenerateUnsubscribeLink(customization.ApplicationUrl, user.Id);
var html = email.LoadTemplate(messageContent.Subject, messageContent.Message, body, customization.Logo, url);
@ -243,11 +249,6 @@ namespace Ombi.Schedule.Jobs.Ombi
Subject = messageContent.Subject
};
// Get the users to send it to
if (user.Email.IsNullOrEmpty())
{
continue;
}
// Send the message to the user
message.To.Add(new MailboxAddress(user.Email.Trim(), user.Email.Trim()));
@ -391,7 +392,7 @@ namespace Ombi.Schedule.Jobs.Ombi
public static string GenerateUnsubscribeLink(string applicationUrl, string id)
{
if (!applicationUrl.HasValue())
if (!applicationUrl.HasValue() || !id.HasValue())
{
return string.Empty;
}

View file

@ -104,7 +104,11 @@ namespace Ombi.Schedule.Jobs.Plex
Email = plexUser?.Email ?? string.Empty,
Alias = string.Empty,
MovieRequestLimit = userManagementSettings.MovieRequestLimit,
MovieRequestLimitType = userManagementSettings.MovieRequestLimitType,
EpisodeRequestLimit = userManagementSettings.EpisodeRequestLimit,
EpisodeRequestLimitType = userManagementSettings.EpisodeRequestLimitType,
MusicRequestLimit = userManagementSettings.MusicRequestLimit,
MusicRequestLimitType = userManagementSettings.MusicRequestLimitType,
StreamingCountry = userManagementSettings.DefaultStreamingCountry
};
_log.LogInformation("Creating Plex user {0}", newUser.UserName);

View file

@ -1,4 +1,5 @@
using System.Collections.Generic;
using Ombi.Store.Entities;
using System.Collections.Generic;
namespace Ombi.Settings.Settings.Models
{
@ -9,7 +10,11 @@ namespace Ombi.Settings.Settings.Models
public bool ImportEmbyUsers { get; set; }
public bool ImportJellyfinUsers { get; set; }
public int MovieRequestLimit { get; set; }
public RequestLimitType MovieRequestLimitType { get; set; } = RequestLimitType.Week;
public int EpisodeRequestLimit { get; set; }
public RequestLimitType EpisodeRequestLimitType { get; set; } = RequestLimitType.Week;
public int MusicRequestLimit { get; set; }
public RequestLimitType MusicRequestLimitType { get; set; } = RequestLimitType.Week;
public string DefaultStreamingCountry { get; set; } = "US";
public List<string> DefaultRoles { get; set; } = new List<string>();
public List<string> BannedPlexUserIds { get; set; } = new List<string>();

View file

@ -16,6 +16,7 @@
"request-limits",
"notifications",
"settings",
"user-management"
"user-management",
"newsletter"
]
}

View file

@ -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 "";
}
@ -129,7 +130,7 @@ export class DiscoverCardComponent implements OnInit {
rootFolderOverride: result.radarrFolderId, }).subscribe(x => {
if (x.result) {
this.result.requested = true;
this.messageService.send(x.message, "Ok");
this.messageService.send(this.translate.instant("Requests.RequestAddedSuccessfully", { title: this.result.title }), "Ok");
} else {
this.messageService.send(x.errorMessage, "Ok");
}
@ -140,7 +141,7 @@ export class DiscoverCardComponent implements OnInit {
this.requestService.requestMovie({ theMovieDbId: +this.result.id, languageCode: null, requestOnBehalf: null, qualityPathOverride: null, rootFolderOverride: null }).subscribe(x => {
if (x.result) {
this.result.requested = true;
this.messageService.send(x.message, "Ok");
this.messageService.send(this.translate.instant("Requests.RequestAddedSuccessfully", { title: this.result.title }), "Ok");
} else {
this.messageService.send(x.errorMessage, "Ok");
}

View file

@ -7,8 +7,7 @@
<p class="col-12 text-center">{{collection.overview}}</p>
</div>
<div class="row justify-content-md-center">
<button class="col-2" mat-raised-button color="accent" (click)="requestCollection();">Request
Collection</button>
<button class="col-2" mat-raised-button color="accent" (click)="requestCollection();">{{'Requests.RequestCollection' | translate }}</button>
</div>
<div *ngIf="loadingFlag" class="lightbox row justify-content-md-center">
<div class="row justify-content-md-center top-spacing loading-spinner">

View file

@ -1,6 +1,7 @@
import { Component, OnInit } from "@angular/core";
import { MessageService, SearchV2Service } from "../../../services";
import { TranslateService } from "@ngx-translate/core";
import { ActivatedRoute } from "@angular/router";
import { AuthService } from "../../../auth/auth.service";
import { IDiscoverCardResult } from "../../interfaces";
@ -25,7 +26,8 @@ export class DiscoverCollectionsComponent implements OnInit {
private route: ActivatedRoute,
private requestServiceV2: RequestServiceV2,
private messageService: MessageService,
private auth: AuthService) {
private auth: AuthService,
private translate: TranslateService) {
this.route.params.subscribe((params: any) => {
this.collectionId = params.collectionId;
});
@ -42,7 +44,7 @@ export class DiscoverCollectionsComponent implements OnInit {
this.loading();
this.requestServiceV2.requestMovieCollection(this.collectionId).subscribe(result => {
if (result.result) {
this.messageService.send(result.message);
this.messageService.send(this.translate.instant("Requests.CollectionSuccesfullyAdded", { name: this.collection.name }));
} else {
this.messageService.send(result.errorMessage);
}

View file

@ -1,4 +1,5 @@
import { ISettings } from "./ICommon";
import { RequestLimitType } from ".";
export interface IExternalSettings extends ISettings {
ssl: boolean;
@ -254,10 +255,14 @@ export interface IUserManagementSettings extends ISettings {
defaultRoles: string[];
movieRequestLimit: number;
episodeRequestLimit: number;
musicRequestLimit: number;
bannedPlexUserIds: string[];
bannedEmbyUserIds: string[];
bannedJellyfinUserIds: string[];
defaultStreamingCountry: string;
movieRequestLimitType: RequestLimitType;
episodeRequestLimitType: RequestLimitType;
musicRequestLimitType: RequestLimitType;
}
export interface IAbout {

View file

@ -1,7 +1,7 @@
<mat-card class="issue-card" *ngIf="!deleted">
<mat-card-header>
<mat-card-title>{{issue.subject}}</mat-card-title>
<mat-card-subtitle>{{issue.userReported?.userName}} on {{issue.createdDate | date:short}}</mat-card-subtitle>
<mat-card-subtitle>{{'Issues.UserOnDate' | translate: { user: issue.userReported?.userName, date: issue.createdDate | amLocal | amUserLocale | amDateFormat: 'LL' } }}</mat-card-subtitle>
</mat-card-header>
<mat-card-content>
<p>

View file

@ -9,6 +9,7 @@ import { AuthService } from "../../../auth/auth.service";
import { IMovieRequests, RequestType, IAdvancedData } from "../../../interfaces";
import { DenyDialogComponent } from "../shared/deny-dialog/deny-dialog.component";
import { NewIssueComponent } from "../shared/new-issue/new-issue.component";
import { TranslateService } from "@ngx-translate/core";
import { MovieAdvancedOptionsComponent } from "./panels/movie-advanced-options/movie-advanced-options.component";
import { RequestServiceV2 } from "../../../services/requestV2.service";
import { RequestBehalfComponent } from "../shared/request-behalf/request-behalf.component";
@ -39,7 +40,8 @@ export class MovieDetailsComponent {
private sanitizer: DomSanitizer, private imageService: ImageService,
public dialog: MatDialog, private requestService: RequestService,
private requestService2: RequestServiceV2, private radarrService: RadarrService,
public messageService: MessageService, private auth: AuthService, private settingsState: SettingsStateService) {
public messageService: MessageService, private auth: AuthService, private settingsState: SettingsStateService,
private translate: TranslateService) {
this.route.params.subscribe(async (params: any) => {
if (typeof params.movieDbId === 'string' || params.movieDbId instanceof String) {
if (params.movieDbId.startsWith("tt")) {
@ -97,7 +99,7 @@ export class MovieDetailsComponent {
if (requestResult.result) {
this.movie.requested = true;
this.movie.requestId = requestResult.requestId;
this.messageService.send(requestResult.message, "Ok");
this.messageService.send(this.translate.instant("Requests.RequestAddedSuccessfully", { title: this.movie.title }), "Ok");
this.movieRequest = await this.requestService.getMovieRequest(this.movie.requestId);
} else {
this.messageService.send(requestResult.errorMessage, "Ok");
@ -110,7 +112,7 @@ export class MovieDetailsComponent {
this.movie.requested = true;
this.movie.requestId = result.requestId;
this.movieRequest = await this.requestService.getMovieRequest(this.movie.requestId);
this.messageService.send(result.message, "Ok");
this.messageService.send(this.translate.instant("Requests.RequestAddedSuccessfully", { title: this.movie.title }), "Ok");
} else {
this.messageService.send(result.errorMessage, "Ok");
}
@ -151,7 +153,7 @@ export class MovieDetailsComponent {
this.movie.approved = true;
const result = await this.requestService.approveMovie({ id: this.movieRequest.id }).toPromise();
if (result.result) {
this.messageService.send("Successfully Approved", "Ok");
this.messageService.send(this.translate.instant("Requests.SuccessfullyApproved"), "Ok");
} else {
this.movie.approved = false;
this.messageService.send(result.errorMessage, "Ok");
@ -162,7 +164,7 @@ export class MovieDetailsComponent {
const result = await this.requestService.markMovieAvailable({ id: this.movieRequest.id }).toPromise();
if (result.result) {
this.movie.available = true;
this.messageService.send(result.message, "Ok");
this.messageService.send(this.translate.instant("Requests.NowAvailable"), "Ok");
} else {
this.messageService.send(result.errorMessage, "Ok");
}
@ -173,7 +175,7 @@ export class MovieDetailsComponent {
const result = await this.requestService.markMovieUnavailable({ id: this.movieRequest.id }).toPromise();
if (result.result) {
this.movie.available = false;
this.messageService.send(result.message, "Ok");
this.messageService.send(this.translate.instant("Requests.NowUnavailable"), "Ok");
} else {
this.messageService.send(result.errorMessage, "Ok");
}
@ -204,7 +206,7 @@ export class MovieDetailsComponent {
public reProcessRequest() {
this.requestService2.reprocessRequest(this.movieRequest.id, RequestType.movie).subscribe(result => {
if (result.result) {
this.messageService.send(result.message ? result.message : "Successfully Re-processed the request", "Ok");
this.messageService.send(result.message ? result.message : this.translate.instant("Requests.SuccessfullyReprocessed"), "Ok");
} else {
this.messageService.send(result.errorMessage, "Ok");
}

View file

@ -17,7 +17,7 @@
</div>
<div *ngIf="streams?.length > 0" class="streaming-on">
<hr>
<span class="label">{{'MediaDetails.StreamingOn' | translate }}:</span>
<span class="label">{{'MediaDetails.StreamingOn' | translate }}</span>
<div>
<span *ngFor="let stream of streams">
<img class="stream-small" [matTooltip]="stream.streamingProvider" src="https://image.tmdb.org/t/p/original{{stream.logo}}">
@ -26,11 +26,11 @@
</div>
<hr>
<div>
<span class="label">{{'MediaDetails.Status' | translate }}:</span>
{{movie.status}}
<span class="label">{{'MediaDetails.Status' | translate }}</span>
<span id="status"> {{ this.movie.status | translateStatus }}</span>
</div>
<div>
<span class="label">{{'MediaDetails.Availability' | translate }}:</span>
<span class="label">{{'MediaDetails.Availability' | translate }}</span>
<span *ngIf="movie.available"> {{'Common.Available' | translate}}</span>
<span *ngIf="!movie.available"> {{'Common.NotAvailable' | translate}}</span>
</div>
@ -44,23 +44,23 @@
</div>
<div *ngIf="request">
<span class="label">{{'Requests.RequestedBy' | translate }}: </span>
<span id="requestedByInfo">{{request.requestedUser.userAlias}}</span>
<span class="label">{{'MediaDetails.RequestedBy' | translate }}</span>
<span id="requestedByInfo"> {{request.requestedUser.userAlias}}</span>
</div>
<div *ngIf="request">
<span class="label">{{'Requests.RequestDate' | translate }}:</span>
{{request.requestedDate | date}}
<span class="label">{{'MediaDetails.RequestDate' | translate }}</span>
{{request.requestedDate | amUserLocale | amDateFormat: 'LL'}}
</div>
<div *ngIf="request && request.denied">
<span class="label">{{'Requests.DeniedReason' | translate }}: </span>
<span class="label">{{'MediaDetails.DeniedReason' | translate }}</span>
<span id="deniedReasonInfo">{{request.deniedReason}}</span>
</div>
<div *ngIf="movie.quality">
<span class="label">{{'MediaDetails.Quality' | translate }}:</span>
<span class="label">{{'MediaDetails.Quality' | translate }}</span>
<div>{{movie.quality | quality}}</div>
</div>
@ -77,34 +77,34 @@
<hr>
<span class="label">{{'MediaDetails.TheatricalRelease' | translate }}:</span>
{{movie.releaseDate | date: 'mediumDate'}}
<span class="label">{{'MediaDetails.TheatricalRelease' | translate }}</span>
{{movie.releaseDate | amUserLocale | amDateFormat: 'LL': 'mediumDate'}}
<div *ngIf="movie.digitalReleaseDate">
<span class="label">{{'MediaDetails.DigitalRelease' | translate }}:</span>
{{movie.digitalReleaseDate | date: 'mediumDate'}}
<span class="label">{{'MediaDetails.DigitalRelease' | translate }}</span>
{{movie.digitalReleaseDate | amUserLocale | amDateFormat: 'LL': 'mediumDate'}}
</div>
<div *ngIf="movie.voteCount">
<span class="label">{{'MediaDetails.Votes' | translate }}:</span>
<span class="label">{{'MediaDetails.Votes' | translate }}</span>
{{movie.voteCount | thousandShort: 1}}
</div>
<div>
<span class="label">{{'MediaDetails.Runtime' | translate }}:</span>
<span class="label">{{'MediaDetails.Runtime' | translate }}</span>
{{'MediaDetails.Minutes' | translate:{runtime: movie.runtime} }}
</div>
<div *ngIf="movie.revenue">
<span class="label">{{'MediaDetails.Revenue' | translate }}:</span>
<span class="label">{{'MediaDetails.Revenue' | translate }}</span>
{{movie.revenue | currency: 'USD'}}
</div>
<div *ngIf="movie.budget">
<span class="label">{{'MediaDetails.Budget' | translate }}:</span>
<span class="label">{{'MediaDetails.Budget' | translate }}</span>
{{movie.budget | currency: 'USD'}}
</div>
<hr />
<div class="genre-button-container" *ngIf="movie.genres">
<span class="label">{{'MediaDetails.Genres' | translate }}:</span>
<span class="label">{{'MediaDetails.Genres' | translate }}</span>
<div>
<mat-chip-list>
<mat-chip selected *ngFor="let genre of movie.genres">
@ -116,7 +116,7 @@
<hr />
<div class="keyword-button-container" *ngIf="movie?.keywords?.keywordsValue?.length > 0">
<span class="label">{{'MediaDetails.Keywords' | translate }}:</span>
<span class="label">{{'MediaDetails.Keywords' | translate }}</span>
<mat-chip-list>
<mat-chip selected *ngFor="let keyword of movie.keywords.keywordsValue">
{{keyword.name}}

View file

@ -2,6 +2,7 @@ import { Component, Inject } from "@angular/core";
import { IDenyDialogData } from "../interfaces/interfaces";
import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { RequestService, MessageService } from "../../../../services";
import { TranslateService } from "@ngx-translate/core";
import { RequestType, IRequestEngineResult } from "../../../../interfaces";
@Component({
@ -13,7 +14,8 @@ export class DenyDialogComponent {
public dialogRef: MatDialogRef<DenyDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: IDenyDialogData,
private requestService: RequestService,
public messageService: MessageService) {}
public messageService: MessageService,
private translate: TranslateService) {}
public denyReason: string;
@ -30,7 +32,7 @@ export class DenyDialogComponent {
}
if (result.result) {
this.messageService.send("Denied Request", "Ok");
this.messageService.send(this.translate.instant("Requests.DeniedRequest"), "Ok");
this.data.denied = true;
} else {
this.messageService.send(result.errorMessage, "Ok");

View file

@ -11,7 +11,7 @@
<div *ngIf="streams?.length > 0" id="streamingContainer" class="streaming-on-container">
<hr>
<div class="streaming-on-content">
<span class="label">{{'MediaDetails.StreamingOn' | translate }}:</span>
<span class="label">{{'MediaDetails.StreamingOn' | translate }}</span>
<div>
<span *ngFor="let stream of sortBy('order')">
<img class="stream-small" id="stream{{stream.streamingProvider}}" [matTooltip]="stream.streamingProvider" src="https://image.tmdb.org/t/p/original{{stream.logo}}">
@ -21,44 +21,44 @@
</div>
<hr>
<div *ngIf="tv.status">
<span class="label">{{'MediaDetails.Status' | translate }}:</span>
<span id="status"> {{tv.status}}</span>
<span class="label">{{'MediaDetails.Status' | translate }}</span>
<span id="status"> {{ tv.status | translateStatus }}</span>
</div>
<span class="label">First Aired:</span>
{{tv.firstAired | date: 'mediumDate'}}
<span class="label">{{'MediaDetails.FirstAired' | translate }}</span>
{{tv.firstAired | amLocal | amUserLocale | amDateFormat: 'LL' }}
</div>
<div *ngIf="seasonCount">
<span class="label">Seasons:</span>
<span class="label">{{'MediaDetails.Seasons' | translate }}</span>
{{seasonCount}}
</div>
<div *ngIf="totalEpisodes">
<span class="label">Episodes:</span>
<span class="label">{{'MediaDetails.Episodes' | translate }}</span>
{{totalEpisodes}}
</div>
<div *ngIf="advancedOptions && request?.rootPathOverrideTitle">
<span class="label">{{'MediaDetails.RootFolderOverride' | translate }}:</span>
<span class="label">{{'MediaDetails.RootFolderOverride' | translate }}</span>
<div>{{request.rootPathOverrideTitle}}</div>
</div>
<div *ngIf="advancedOptions && request?.qualityOverrideTitle">
<span class="label">{{'MediaDetails.QualityOverride' | translate }}:</span>
<span class="label">{{'MediaDetails.QualityOverride' | translate }}</span>
<div>{{request.qualityOverrideTitle}}</div>
</div>
<div>
<span class="label">{{'MediaDetails.Runtime' | translate }}:</span>
<span class="label">{{'MediaDetails.Runtime' | translate }}</span>
{{'MediaDetails.Minutes' | translate:{ runtime: tv.runtime} }}
</div>
<div *ngIf="tv.network">
<span class="label">Network:</span>
<span class="label">{{'MediaDetails.Network' | translate }}</span>
{{tv.network.name}}
</div>
<div class="genre-button-container" *ngIf="tv.genres">
<span class="label">{{'MediaDetails.Genres' | translate }}:</span>
<span class="label">{{'MediaDetails.Genres' | translate }}</span>
<div>
<mat-chip-list>
<mat-chip selected *ngFor="let genre of tv.genres">

View file

@ -43,5 +43,5 @@ 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);
}
}
}

View file

@ -6,7 +6,7 @@
</mat-panel-title>
<mat-panel-description>
{{'Requests.RequestedBy' | translate}} '{{request.requestedUser.userAlias}}' on
{{request.requestedDate | amLocal | amDateFormat: 'LL' }}
{{request.requestedDate | amLocal | amUserLocale | amDateFormat: 'LL' }}
<span *ngIf="request.denied"> - {{request.deniedReason}}</span>
</mat-panel-description>
</mat-expansion-panel-header>

View file

@ -0,0 +1,19 @@
import { Pipe, PipeTransform } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
@Pipe({
name: 'translateStatus'
})
export class TranslateStatusPipe implements PipeTransform {
constructor(private translateService: TranslateService) {}
transform(value: string): string {
const textKey = 'MediaDetails.StatusValues.' + value;
const text = this.translateService.instant(textKey);
if (text !== textKey) {
return text;
} else {
return value;
}
}
}

View file

@ -1,5 +1,6 @@
import { ModuleWithProviders, NgModule } from "@angular/core";
import { HumanizePipe } from "./HumanizePipe";
import { TranslateStatusPipe } from "./TranslateStatus";
import { ThousandShortPipe } from "./ThousandShortPipe";
import { SafePipe } from "./SafePipe";
import { QualityPipe } from "./QualityPipe";
@ -7,8 +8,8 @@ import { UserLocalePipe } from "./UserLocalePipe";
@NgModule({
imports: [],
declarations: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe],
exports: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe],
declarations: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, TranslateStatusPipe ],
exports: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, TranslateStatusPipe ],
})
export class PipeModule {

View file

@ -48,7 +48,7 @@
<ng-container matColumnDef="requestedDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.RequestDate' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.requestedDate | amLocal | amDateFormat: 'LL'}} </td>
<td mat-cell *matCellDef="let element"> {{element.requestedDate | amLocal | amUserLocale | amDateFormat: 'LL'}} </td>
</ng-container>
<ng-container matColumnDef="requestStatus">

View file

@ -58,12 +58,12 @@
<ng-container matColumnDef="requestedDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.RequestDate' | translate}} </th>
<td mat-cell id="requestedDate{{element.id}}" *matCellDef="let element"> {{element.requestedDate | amLocal | amDateFormat: 'LL'}} </td>
<td mat-cell id="requestedDate{{element.id}}" *matCellDef="let element"> {{element.requestedDate | amLocal | amUserLocale | amDateFormat: 'LL'}} </td>
</ng-container>
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.Status' | translate}} </th>
<td mat-cell id="status{{element.id}}" *matCellDef="let element"> {{element.status}} </td>
<td mat-cell id="status{{element.id}}" *matCellDef="let element"> {{element.status |translateStatus }} </td>
</ng-container>

View file

@ -1,17 +1,17 @@
<div class="small-middle-container">
<mat-tab-group>
<div class="buttons">
<mat-tab label="Movies">
<mat-tab label="{{ 'NavigationBar.Filter.Movies' | translate }}">
<ng-template matTabContent>
<movies-grid (onOpenOptions)="onOpenOptions($event)"></movies-grid>
</ng-template>
</mat-tab>
<mat-tab label="TV Shows">
<mat-tab label="{{ 'NavigationBar.Filter.TvShows' | translate }}">
<ng-template matTabContent>
<tv-grid (onOpenOptions)="onOpenOptions($event)"></tv-grid>
</ng-template>
</mat-tab>
<mat-tab label="Albums">
<mat-tab label="{{ 'NavigationBar.Filter.Music' | translate }}">
<ng-template matTabContent>
<albums-grid (onOpenOptions)="onOpenOptions($event)"></albums-grid>
</ng-template>

View file

@ -44,7 +44,7 @@
<ng-container matColumnDef="requestedDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{'Requests.RequestDate' | translate}} </th>
<td id="requestedDate{{element.id}}" mat-cell *matCellDef="let element">
{{element.requestedDate | amLocal | amDateFormat: 'LL'}}
{{element.requestedDate | amLocal | amUserLocale | amDateFormat: 'LL'}}
</td>
</ng-container>
@ -56,7 +56,7 @@
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> {{'Requests.Status' | translate}} </th>
<td mat-cell id="status{{element.id}}" *matCellDef="let element">
{{element.parentRequest.status}}
{{element.parentRequest.status | translateStatus }}
</td>
</ng-container>

View file

@ -99,11 +99,11 @@
<div id="releaseDate">{{ 'Requests.TheatricalRelease' | translate: {date: request.releaseDate |
amLocal | amDateFormat: 'LL'} }}</div>
amLocal | amUserLocale | amDateFormat: 'LL'} }}</div>
<div *ngIf="request.digitalReleaseDate" id="digitalReleaseDate">{{ 'Requests.DigitalRelease' |
translate: {date: request.digitalReleaseDate | amLocal | amDateFormat: 'LL'} }}</div>
translate: {date: request.digitalReleaseDate | amLocal | amUserLocale | amDateFormat: 'LL'} }}</div>
<div id="requestedDate">{{ 'Requests.RequestDate' | translate }} {{request.requestedDate | amLocal
| amDateFormat: 'LL'}}</div>
| amUserLocale | amDateFormat: 'LL'}}</div>
<br />
</div>
<div *ngIf="isAdmin">

View file

@ -22,7 +22,7 @@
<div class="col-sm-5 small-padding">
<div>
<a href="http://www.imdb.com/title/{{node.imdbId}}/" target="_blank">
<h4 class="request-title">{{node.title}} ({{node.releaseDate | amLocal | amDateFormat: 'YYYY'}})</h4>
<h4 class="request-title">{{node.title}} ({{node.releaseDate | amLocal| amUserLocale | amDateFormat: 'YYYY'}})</h4>
</a>
</div>
<br />
@ -32,7 +32,7 @@
</div>
<div>Release Date: {{node.releaseDate | amLocal | amDateFormat: 'LL'}}</div>
<div>Release Date: {{node.releaseDate | amLocal | amUserLocale | amDateFormat: 'LL'}}</div>
<div *ngIf="isAdmin">
<div *ngIf="node.qualityOverrideTitle" class="quality-override">{{ 'Requests.QualityOverride' | translate }}
<span>{{node.qualityOverrideTitle}} </span>

View file

@ -103,7 +103,7 @@
amDateFormat: 'LL'} }}</span>
<span *ngIf="result.digitalReleaseDate" class="label label-info" id="releaseDateLabel"
target="_blank">{{ 'Search.DigitalDate' | translate: {date: result.digitalReleaseDate |
amLocal | amDateFormat: 'LL'} }}</span>
amLocal | amUserLocale | amDateFormat: 'LL'} }}</span>
<a *ngIf="result.homepage" href="{{result.homepage}}" id="homePageLabel" target="_blank"><span
class="label label-info" [translate]="'Search.Movies.HomePage'"></span></a>

View file

@ -18,7 +18,7 @@
</div>
<small>Updated at {{data.updateDate | date}}</small>
<small>Updated at {{data.updateDate | amUserLocale | amDateFormat: 'LL' }}</small>
</mat-dialog-content>

View file

@ -39,18 +39,18 @@
<div class="form-group">
<mat-slide-toggle id="importJellyfinUsers" [(ngModel)]="settings.importJellyfinUsers">Import Jellyfin Users</mat-slide-toggle>
</div>
<div *ngIf="jellyfinUsers">
<p>Jellyfin Users excluded from Import</p>
<p-autoComplete [(ngModel)]="bannedJellyfinUsers" [suggestions]="filteredJellyfinUsers" [multiple]="true" field="username" (completeMethod)="filterJellyfinList($event)"></p-autoComplete>
</div>
</div>
</div>
<div class="col-md-6">
<h4>Default Roles</h4>
<h3>Default Roles</h3>
<hr>
<div *ngFor="let c of claims">
<div class="form-group">
<div>
@ -60,7 +60,10 @@
</div>
</div>
<h4>Default Request Limits</h4>
<h3>Default Request Limits</h3>
<hr>
<div class="form-group">
<label for="movieRequestLimit" class="control-label">Movie Request Limit</label>
<div>
@ -68,12 +71,38 @@
</div>
</div>
<mat-label>Movie Request Limit Type</mat-label>
<mat-select id="movieRequestLimitType" [(value)]="settings.movieRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
<div class="form-group">
<label for="episodeRequestLimit" class="control-label">Episode Request Limit</label>
<div>
<input type="text" [(ngModel)]="settings.episodeRequestLimit" class="form-control form-small form-control-custom" id="episodeRequestLimit" name="episodeRequestLimit" value="{{settings?.episodeRequestLimit}}">
</div>
</div>
<mat-label>Episode Request Limit Type</mat-label>
<mat-select id="episodeRequestLimitType" [(value)]="settings.episodeRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
<div class="form-group">
<label for="episodeRequestLimit" class="control-label">Music Request Limit</label>
<div>
<input type="text" [(ngModel)]="settings.musicRequestLimit" class="form-control form-small form-control-custom" id="musicRequestLimit" name="musicRequestLimit" value="{{settings?.musicRequestLimit}}">
</div>
</div>
<mat-label>Music Request Limit Type</mat-label>
<mat-select id="musicRequestLimitType" [(value)]="settings.musicRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
<mat-form-field>
<mat-label [translate]="'UserPreferences.StreamingCountry'"></mat-label>

View file

@ -1,8 +1,8 @@
import { Component, OnInit } from "@angular/core";
import { EmbyService, IdentityService, JellyfinService, JobService, NotificationService, PlexService, SettingsService } from "../../services";
import { ICheckbox, IUserManagementSettings, RequestLimitType } from "../../interfaces";
import { ICheckbox, IUserManagementSettings } from "../../interfaces";
import { IUsersModel } from "../../interfaces";
import { EmbyService, JellyfinService, IdentityService, JobService, NotificationService, PlexService, SettingsService } from "../../services";
@Component({
templateUrl: "./usermanagement.component.html",
@ -31,6 +31,9 @@ export class UserManagementComponent implements OnInit {
public enableImportButton = false;
public countries: string[];
public requestLimitTypes: RequestLimitType[] = [RequestLimitType.Day, RequestLimitType.Week, RequestLimitType.Month];
public RequestLimitType = RequestLimitType;
constructor(private readonly settingsService: SettingsService,
private readonly notificationService: NotificationService,
private readonly identityService: IdentityService,
@ -120,7 +123,7 @@ export class UserManagementComponent implements OnInit {
if (x === true) {
this.notificationService.success("Successfully saved the User Management Settings");
} else {
this.notificationService.success( "There was an error when saving the Ombi settings");
this.notificationService.success( "There was an error when saving the settings");
}
});
}

View file

@ -1,6 +1,6 @@
<form [formGroup]="form" (ngSubmit)="onSubmit()" *ngIf="form">
<h1 id="advancedOptionsTitle">
<i class="fas fa-sliders-h"></i> Advanced Search
<i class="fas fa-sliders-h"></i> {{ "Search.AdvancedSearchHeader" | translate }}
</h1>
<hr />
<div class="alert alert-info" role="alert">
@ -14,25 +14,26 @@
<div class="row">
<div style="margin: 2%;">
<span>Please choose what type of media you are searching for:</span>
<span>{{ "Search.AdvancedSearchInstructions" | translate }}</span>
</div>
<div class="col-md-12">
<div class="md-form-field">
<mat-radio-group formControlName="type" aria-label="Select an option">
<mat-radio-button value="movie">Movies </mat-radio-button>
<mat-radio-button style="padding-left: 5px;" value="tv">TV Shows </mat-radio-button>
<mat-radio-button value="movie">{{ "NavigationBar.Filter.Movies" | translate }} </mat-radio-button>
<mat-radio-button style="padding-left: 5px;" value="tv">{{ "NavigationBar.Filter.TvShows" | translate }} </mat-radio-button>
</mat-radio-group>
</div>
</div>
<div class="col-md-12" style="margin-top:1%">
<mat-form-field appearance="outline" floatLabel=auto>
<mat-label>Year of Release</mat-label>
<mat-label>{{ "Search.YearOfRelease" | translate }}</mat-label>
<input matInput id="releaseYear" name="releaseYear" formControlName="releaseYear">
</mat-form-field>
</div>
<div class="col-md-12">
<mat-label>{{ "Search.YearOfRelease" | translate }}</mat-label>
<genre-select [form]="form" [mediaType]="form.controls.type.value"></genre-select>
</div>
@ -41,7 +42,7 @@
</div>
<div class="col-md-12">
<span style="margin: 1%;">Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb</span>
<span style="margin: 1%;">{{ "Search.KeywordSearchingDisclaimer" | translate }}</span>
<keyword-search [form]="form"></keyword-search>
</div>

View file

@ -1,6 +1,6 @@
<mat-form-field appearance="outline" floatLabel=auto class="example-chip-list">
<mat-label>Genres</mat-label>
<mat-label>{{ "MediaDetails.Genres" | translate }}</mat-label>
<mat-chip-list #chipList aria-label="Fruit selection">
<mat-chip
*ngFor="let word of form.controls.genreIds.value"

View file

@ -1,5 +1,5 @@
<mat-form-field class="example-chip-list" appearance="outline" floatLabel=auto>
<mat-label>Keywords</mat-label>
<mat-label>{{ "Filter.Keywords" | translate }}</mat-label>
<mat-chip-list #chipList aria-label="Fruit selection">
<mat-chip
*ngFor="let word of form.controls.keywordIds.value"

View file

@ -1,5 +1,5 @@
<mat-form-field class="example-chip-list" appearance="outline" floatLabel=auto>
<mat-label>Watch Providers</mat-label>
<mat-label>{{ 'Filter.WatchProviders' | translate }}</mat-label>
<mat-chip-list #chipList aria-label="Fruit selection">
<mat-chip
*ngFor="let word of form.controls.watchProviders.value"

View file

@ -20,8 +20,8 @@
<mat-expansion-panel-header>
<mat-panel-title>
<mat-checkbox *ngIf="!season.seasonAvailable && isSeasonCheckable(season)" (click)="$event.stopPropagation();" (change)="seasonChanged($event, season)">
Season {{season.seasonNumber}}</mat-checkbox>
<span *ngIf="season.seasonAvailable || !isSeasonCheckable(season)">Season {{season.seasonNumber}}</span>
{{ 'MediaDetails.EpisodeSelector.SeasonNumber' | translate: { number: season.seasonNumber } }}</mat-checkbox>
<span *ngIf="season.seasonAvailable || !isSeasonCheckable(season)">{{ 'MediaDetails.EpisodeSelector.SeasonNumber' | translate: { number: season.seasonNumber } }}</span>
</mat-panel-title>
<mat-panel-description>
<!-- Description -->

View file

@ -3,6 +3,7 @@ import { MatCheckboxChange } from "@angular/material/checkbox";
import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog";
import { ISearchTvResultV2 } from "../../interfaces/ISearchTvResultV2";
import { MessageService } from "../../services";
import { TranslateService } from "@ngx-translate/core";
import { ISeasonsViewModel, IEpisodesRequests, INewSeasonRequests, ITvRequestViewModelV2, IRequestEngineResult, RequestType } from "../../interfaces";
import { RequestServiceV2 } from "../../services/requestV2.service";
import { AdminRequestDialogComponent } from "../admin-request-dialog/admin-request-dialog.component";
@ -23,7 +24,8 @@ export class EpisodeRequestComponent {
}
constructor(public dialogRef: MatDialogRef<EpisodeRequestComponent>, @Inject(MAT_DIALOG_DATA) public data: EpisodeRequestData,
private requestService: RequestServiceV2, private notificationService: MessageService, private dialog: MatDialog) { }
private requestService: RequestServiceV2, private notificationService: MessageService, private dialog: MatDialog,
private translate: TranslateService) { }
public async submitRequests() {
@ -35,7 +37,7 @@ export class EpisodeRequestComponent {
});
if (!selected && !this.data.series.requestAll && !this.data.series.firstSeason && !this.data.series.latestSeason) {
this.notificationService.send("You need to select some episodes!", "OK");
this.notificationService.send(this.translate.instant("Requests.NeedToSelectEpisodes"), "OK");
return;
}
@ -123,7 +125,7 @@ export class EpisodeRequestComponent {
private postRequest(requestResult: IRequestEngineResult) {
if (requestResult.result) {
this.notificationService.send(
`Request for ${this.data.series.title} has been added successfully`);
this.translate.instant("Requests.RequestAddedSuccessfully", { title: this.data.series.title }));
this.data.series.seasonRequests.forEach((season) => {
season.episodes.forEach((ep) => {

View file

@ -38,6 +38,7 @@ import { MatTreeModule } from '@angular/material/tree';
import { MomentModule } from "ngx-moment";
import { NgModule } from "@angular/core";
import { SidebarModule } from "primeng/sidebar";
import { PipeModule } from "../pipes/pipe.module";
import { TheMovieDbService } from "../services";
import { TranslateModule } from "@ngx-translate/core";
import { TruncateModule } from "@yellowspot/ng-truncate";
@ -87,6 +88,7 @@ import { WatchProvidersSelectComponent } from "./components/watch-providers-sele
MatTreeModule,
MatStepperModule,
MatSnackBarModule,
PipeModule,
],
exports: [
TranslateModule,

View file

@ -7,15 +7,15 @@
</div>
<mat-tab-group>
<mat-tab label="Profile">
<mat-tab label="{{'UserPreferences.Profile' | translate}}">
<div class="tab-content">
<div class="row user-type-row">
<div class="col-5 col-sm-3 col-md-2">
User Type:
{{'UserPreferences.UserType' | translate}}
</div>
<div class="col-7 col-sm-9 col-md-10">
{{UserType[user?.userType]}}
{{'UserTypeLabel.' + user?.userType | translate }}
</div>
</div>
@ -58,7 +58,7 @@
<div class="col-12">
<a href="https://play.google.com/store/apps/details?id=com.tidusjar.Ombi&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1"
target="_blank"><img width="200" alt="Get it on Google Play"
src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" /></a>
src="https://play.google.com/intl/{{ selectedLang }}/badges/static/images/badges/{{ selectedLang }}_badge_web_generic.png" /></a>
</div>
<div class="col-12">
<a href="https://apps.apple.com/us/app/ombi/id1335260043" target="_blank"><img
@ -66,7 +66,9 @@
src="{{baseUrl}}/images/appstore.svg" /></a>
</div>
<div class="col-12">
<button style="margin-left:13px; margin-top: 20px;" mat-raised-button color="accent" type="button" (click)="openMobileApp($event)">Open Mobile App</button>
<button style="margin-left:13px; margin-top: 20px;" mat-raised-button color="accent" type="button" (click)="openMobileApp($event)">
{{'NavigationBar.OpenMobileApp' | translate}}
</button>
</div>
</div>
</div>
@ -75,15 +77,15 @@
</div>
</mat-tab>
<mat-tab *ngIf="user?.userType === UserType.LocalUser" label="Security">
<mat-tab *ngIf="user?.userType === UserType.LocalUser" label="{{'UserPreferences.Security' | translate}}">
<div class="tab-content">
<h2>Change Details</h2>
<h2>{{'UserPreferences.ChangeDetails' | translate}}</h2>
<form novalidate [formGroup]="passwordForm" (ngSubmit)="updatePassword()">
<div class="row">
<div class="col-md-6 col-12">
<span>You need your current password to make any changes here</span>
<span>{{'UserPreferences.NeedCurrentPassword' | translate}}</span>
<mat-form-field appearance="outline" floatLabel=always>
<mat-label>Current Password</mat-label>
<mat-label>{{'UserPreferences.CurrentPassword' | translate}}</mat-label>
<input id="currentPassword" matInput type="password" formControlName="currentPassword">
</mat-form-field>
</div>
@ -91,7 +93,7 @@
<div class="row">
<div class="col-md-6 col-12">
<mat-form-field appearance="outline" floatLabel=always>
<mat-label>Email Address</mat-label>
<mat-label>{{'UserPreferences.EmailAddress' | translate}}</mat-label>
<input id="email" matInput formControlName="emailAddress">
</mat-form-field>
</div>
@ -100,7 +102,7 @@
<div class="row">
<div class="col-md-6 col-12">
<mat-form-field appearance="outline" floatLabel=always>
<mat-label>New Password</mat-label>
<mat-label>{{'UserPreferences.NewPassword' | translate}}</mat-label>
<input id="newPassword" matInput type="password" formControlName="password">
</mat-form-field>
</div>
@ -108,12 +110,14 @@
<div class="row">
<div class="col-md-6 col-12">
<mat-form-field appearance="outline" floatLabel=always>
<mat-label>New Password Confirm</mat-label>
<mat-label>{{'UserPreferences.NewPasswordConfirm' | translate}}</mat-label>
<input id="confirmPassword" matInput type="password" formControlName="confirmPassword">
</mat-form-field>
</div>
</div>
<button id="submitSecurity" mat-raised-button color="accent" type="submit">Update</button>
<button id="submitSecurity" mat-raised-button color="accent" type="submit">
{{'Common.Update' | translate}}
</button>
</form>
</div>

View file

@ -133,7 +133,7 @@ export class UserPreferenceComponent implements OnInit {
currentPassword: values.currentPassword
}).subscribe(x => {
if (x.successful) {
this.notification.success("Updated your information");
this.notification.success(this.translate.instant("UserPreferences.UpdatedYourInformation"));
this.user.emailAddress = values.emailAddress;
} else {
this.notification.error(x.errors[0]);

View file

@ -50,7 +50,7 @@
</div>
<div class="col-6">
<mat-label>Movie Request Limit Type</mat-label>
<mat-select [(value)]="user.movieRequestLimitType">
<mat-select id="movieRequestLimitType" [(value)]="user.movieRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
@ -65,7 +65,7 @@
</div>
<div class="col-6">
<mat-label>Episode Request Limit Type</mat-label>
<mat-select [(value)]="user.episodeRequestLimitType">
<mat-select id="episodeRequestLimitType" [(value)]="user.episodeRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
@ -80,7 +80,7 @@
</div>
<div class="col-6">
<mat-label>Music Request Limit Type</mat-label>
<mat-select [(value)]="user.musicRequestLimitType">
<mat-select id="musicRequestLimitType" [(value)]="user.musicRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>

View file

@ -118,7 +118,7 @@
<p-sidebar [(visible)]="showBulkEdit" position="right" [modal]="false">
<p-sidebar [(visible)]="showBulkEdit" position="right" [modal]="false" [style]="{width:'40em'}">
<div>
<div *ngFor="let c of availableClaims">
<div class="form-group">
@ -129,19 +129,52 @@
</div>
</div>
</div>
<div class="row">
<div class="col-6">
<mat-form-field appearance="outline" class="full">
<mat-label>Movie Request Limit</mat-label>
<input matInput id="movieRequestLimit" name="movieRequestLimit" [(ngModel)]="bulkMovieLimit">
</mat-form-field>
</mat-form-field></div>
<div class="col-6">
<mat-label>Movie Request Limit Type</mat-label>
<mat-select id="movieRequestLimitType" [(value)]="movieRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
</div></div>
<div class="row">
<div class="col-6">
<mat-form-field appearance="outline" class="full">
<mat-label>Episode Request Limit</mat-label>
<input matInput id="episodeRequestLimit" name="episodeRequestLimit" [(ngModel)]="bulkEpisodeLimit">
</mat-form-field>
</div>
<div class="col-6">
<mat-label>Episode Request Limit Type</mat-label>
<mat-select id="episodeRequestLimitType" [(value)]="episodeRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
</div>
</div>
<div class="row">
<div class="col-6">
<mat-form-field appearance="outline" class="full">
<mat-label>Music Request Limit</mat-label>
<input matInput id="musicRequestLimit" name="musicRequestLimit" [(ngModel)]="bulkMusicLimit">
</mat-form-field>
</div>
<div class="col-6">
<mat-label>Music Request Limit Type</mat-label>
<mat-select id="musicRequestLimitType" [(value)]="musicRequestLimitType">
<mat-option *ngFor="let value of requestLimitTypes" [value]="value">
{{RequestLimitType[value]}}
</mat-option>
</mat-select>
</div>
</div>
<mat-form-field appearance="outline" class="full">
<mat-label [translate]="'UserPreferences.StreamingCountry'"></mat-label>
<mat-select [(value)]="bulkStreaming">
@ -152,7 +185,7 @@
</mat-form-field>
<button type="button" mat-raised-button (click)="bulkUpdate()">Update Users</button>
<button type="button" mat-raised-button color="primary" (click)="bulkUpdate()">Update Users</button>
</p-sidebar>
</div>
</div>

View file

@ -87,4 +87,8 @@
table {
width: 100%;
}
::ng-deep .p-sidebar {
background: $background-dark !important;
}

View file

@ -1,5 +1,5 @@
import { AfterViewInit, Component, OnInit, ViewChild } from "@angular/core";
import { ICheckbox, ICustomizationSettings, IEmailNotificationSettings, IUser } from "../interfaces";
import { ICheckbox, ICustomizationSettings, IEmailNotificationSettings, IUser, RequestLimitType } from "../interfaces";
import { IdentityService, NotificationService, SettingsService } from "../services";
import { CustomizationFacade } from "../state/customization";
@ -32,6 +32,12 @@ export class UserManagementComponent implements OnInit {
public plexEnabled: boolean;
public countries: string[];
public requestLimitTypes: RequestLimitType[] = [RequestLimitType.Day, RequestLimitType.Week, RequestLimitType.Month];
public RequestLimitType = RequestLimitType;
public musicRequestLimitType: RequestLimitType;
public episodeRequestLimitType: RequestLimitType;
public movieRequestLimitType: RequestLimitType;
constructor(private identityService: IdentityService,
private settingsService: SettingsService,
@ -95,6 +101,15 @@ export class UserManagementComponent implements OnInit {
if (this.bulkStreaming) {
x.streamingCountry = this.bulkStreaming;
}
if (this.musicRequestLimitType) {
x.musicRequestLimitType = this.musicRequestLimitType;
}
if (this.episodeRequestLimitType) {
x.episodeRequestLimitType = this.episodeRequestLimitType;
}
if (this.movieRequestLimitType) {
x.movieRequestLimitType = this.movieRequestLimitType;
}
this.identityService.updateUser(x).subscribe(y => {
if (!y.successful) {
this.notificationService.error(`Could not update user ${x.userName}. Reason ${y.errors[0]}`);
@ -108,6 +123,9 @@ export class UserManagementComponent implements OnInit {
this.bulkEpisodeLimit = undefined;
this.bulkMusicLimit = undefined;
this.bulkStreaming = undefined;
this.movieRequestLimitType = undefined;
this.episodeRequestLimitType = undefined;
this.musicRequestLimitType = undefined;
}
public isAllSelected() {

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Продължаване",
"Available": "Налично",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Частично налично",
"Monitored": "Наблюдавано",
"NotAvailable": "Не е налично",
@ -22,6 +24,7 @@
"RequestDenied": "Заявката е отказана",
"NotRequested": "Не е заявено",
"Requested": "Заявено",
"Search": "Търсене",
"Request": "Заявка",
"Denied": "Отказано",
"Approve": "Одобряване",
@ -32,9 +35,9 @@
},
"Cancel": "Отказ",
"Submit": "Потвърждаване",
"Search": "Търсене",
"movie": "Филм",
"tvShow": "Тв предаване"
"Update": "Update",
"tvShow": "Тв предаване",
"movie": "Филм"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Електронна поща",
@ -89,12 +92,15 @@
"MoviesTab": "Филми",
"TvTab": "Тв предавания",
"MusicTab": "Музика",
"AdvancedSearch": "Можете да попълните някое от долупосочените, за да откриете нова медия. Всички резултати са сортирани по популярност",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Предложения",
"NoResults": "Съжаляваме, не намерихме никакви резултати!",
"DigitalDate": "Дигитално издание: {{date}}",
"TheatricalRelease": "Кино премиера: {{date}}",
"ViewOnPlex": "Преглед в Plex",
"ViewOnEmby": "Преглед в Emby",
"ViewOnJellyfin": "Преглед в Jellyfin",
"RequestAdded": "Заявката за {{title}} е успешно добавена",
"Similar": "Подобни",
"Refine": "Уточнете",
@ -122,8 +128,9 @@
"Season": "Сезон {{seasonNumber}}",
"SelectAllInSeason": "Избиране на всичко в сезона {{seasonNumber}}"
},
"AdvancedSearch": "Можете да попълните някое от долупосочените, за да откриете нова медия. Всички резултати са сортирани по популярност",
"ViewOnJellyfin": "Преглед в Jellyfin"
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Заявки",
@ -151,6 +158,7 @@
"Remove": "Премахване",
"Deny": "Отказване",
"DenyReason": "Причина за отхвърляне",
"DeniedReason": "Причина за отхвърляне",
"Season": "Сезон",
"GridTitle": "Заглавие",
"AirDate": "Дата на излъчване",
@ -185,10 +193,18 @@
"Delete": "Изтриване на заявка",
"Approve": "Одобряване на заявка",
"ChangeAvailability": "Маркиране като налично",
"Approved": "Избраните елементи са одобрени успешно",
"Deleted": "Избраните елементи са изтрити успешно"
"Deleted": "Избраните елементи са изтрити успешно",
"Approved": "Избраните елементи са одобрени успешно"
},
"DeniedReason": "Причина за отхвърляне"
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Проблеми",
@ -224,14 +240,17 @@
"Delete": "Изтриване на проблем",
"DeletedIssue": "Проблемът е изтрит",
"Chat": "Чат",
"Requested": "Заявено"
"Requested": "Заявено",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Изчистване на филтъра",
"FilterHeaderAvailability": "Наличност",
"FilterHeaderRequestStatus": "Състояние",
"Approved": "Одобрени",
"PendingApproval": "Чака одобрение"
"PendingApproval": "Чака одобрение",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Телевизия: {{remaining}}/{{total}} оставащи",
@ -257,23 +276,39 @@
"ViewCollection": "Преглед на колекцията",
"NotEnoughInfo": "За съжаление все още няма достатъчно информация за това предаване!",
"AdvancedOptions": "Разширени настройки",
"AutoApproveOptions": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR) и ще бъде автоматично одобрена! Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"AutoApproveOptionsTv": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR) и ще бъде автоматично одобрена! Ако заявката вече е обработена от Sonarr, програмата няма да промени основната папка или профила на качеството ако сте ги задали. Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"AutoApproveOptionsTvShort": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR)! Ако заявката вече е обработена от Sonarr, програмата няма да промени основната папка или профила на качеството ако сте ги задали. Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"QualityProfilesSelect": "Изберете профил на качеството",
"RootFolderSelect": "Изберете основна папка",
"Status": "Състояние",
"Availability": "Наличност",
"LanguageProfileSelect": "Изберете езиков профил",
"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": "Състояние на заявката",
"Quality": "Качество",
"RootFolderOverride": "Ръчно задаване на основната папка",
"QualityOverride": "Ръчно задаване на качеството",
"Genres": "Жанрове",
"TheatricalRelease": "Кино премиера",
"DigitalRelease": "Дигитална версия",
"Votes": "Гласове",
"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}} Минути",
"Revenue": "Приходи",
"Budget": "Бюджет",
"Keywords": "Ключови думи/тагове",
"Revenue": "Revenue:",
"Budget": "Budget:",
"Keywords": "Keywords/Tags:",
"Casts": {
"CastTitle": "В ролите"
},
@ -281,23 +316,25 @@
"AllSeasonsTooltip": "Това ще заяви всеки сезон на това предаване",
"FirstSeasonTooltip": "Това ще заяви само първия сезон на това предаване",
"LatestSeasonTooltip": "Това ще заяви само последния сезон на това предаване",
"NoEpisodes": "За съжаление все още няма данни за епизоди на това предаване!"
"NoEpisodes": "За съжаление все още няма данни за епизоди на това предаване!",
"SeasonNumber": "Season {{number}}"
},
"AutoApproveOptions": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR) и ще бъде автоматично одобрена! Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"AutoApproveOptionsTv": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR) и ще бъде автоматично одобрена! Ако заявката вече е обработена от Sonarr, програмата няма да промени основната папка или профила на качеството ако сте ги задали. Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"AutoApproveOptionsTvShort": "Можете да конфигурирате заявката си тук. След като бъде създадена, тя ще бъде изпратена до вашето записващо приложение (DVR)! Ако заявката вече е обработена от Sonarr, програмата няма да промени основната папка или профила на качеството ако сте ги задали. Моля, обърнете внимание, че тази стъпка не е задължителна и можете да натиснете бутона Заявка за да я пропуснете!",
"LanguageProfileSelect": "Изберете езиков профил",
"PleaseSelectUser": "Моля, изберете потребител",
"RadarrConfiguration": "Конфигурация на Radarr",
"ReProcessRequest": "Повтаряне на заявка",
"RequestOnBehalf": "Заявете от името на",
"SonarrConfiguration": "Конфигурация на Sonarr",
"StreamingOn": "Поточното изпълнение е включено"
"RadarrConfiguration": "Конфигурация на Radarr",
"RequestOnBehalf": "Заявете от името на",
"PleaseSelectUser": "Моля, изберете потребител",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Повтаряне на заявка"
},
"Discovery": {
"PopularTab": "Популярни",
"TrendingTab": "Актуални",
"UpcomingTab": "Предстоящи",
"SeasonalTab": "Сезонни",
"RecentlyRequestedTab": "Наскоро заявени",
"Movies": "Филми",
"Combined": "Комбинирано",
"Tv": "Телевизия",
@ -313,20 +350,35 @@
"Writer": "Писател",
"ExecProducer": "Изпълнителен продуцент"
},
"NoSearch": "Не са намерени съвпадения!",
"RecentlyRequestedTab": "Наскоро заявени",
"SeasonalTab": "Сезонни"
"NoSearch": "Не са намерени съвпадения!"
},
"UserPreferences": {
"Welcome": "Добре дошли, {{username}}!",
"OmbiLanguage": "Език",
"DarkMode": "Тъмен режим",
"LanguageDescription": "Това е езикът, на който искате да се показва интерфейсът на Ombi.",
"LegacyApp": "Стартирайте старото приложение",
"MobileQRCode": "Мобилен QR код",
"NoQrCode": "Моля, свържете се с вашия администратор, за да активирате QR кодовете",
"Updated": "Обновяването е успешно",
"StreamingCountry": "Страна на поточно предаване",
"StreamingCountryDescription": "Това е кодът на държавата, за който ще показваме поточна информация. Ако сте в САЩ, моля изберете САЩ и ще имате поточна информация, свързана със САЩ.",
"Updated": "Обновяването е успешно"
"LanguageDescription": "Това е езикът, на който искате да се показва интерфейсът на Ombi.",
"MobileQRCode": "Мобилен QR код",
"LegacyApp": "Стартирайте старото приложение",
"NoQrCode": "Моля, свържете се с вашия администратор, за да активирате QR кодовете",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Fortsæt",
"Available": "Tilgængelig",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Delvist tilgængelig",
"Monitored": "Overvåget",
"NotAvailable": "Ikke tilgængelig",
@ -22,6 +24,7 @@
"RequestDenied": "Anmodning afvist",
"NotRequested": "Ikke anmodet",
"Requested": "Anmodet",
"Search": "Search",
"Request": "Anmod",
"Denied": "Afvist",
"Approve": "Godkendt",
@ -31,7 +34,10 @@
"Validation": "Tjek venligst dine indtastede værdier"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-mail-adresse",
@ -86,12 +92,15 @@
"MoviesTab": "Film",
"TvTab": "Tv-serier",
"MusicTab": "Musik",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Forslag",
"NoResults": "Beklager, vi fandt ingen resultater!",
"DigitalDate": "Digital udgivelse: {{date}}",
"TheatricalRelease": "Biografudgivelse: {{date}}",
"ViewOnPlex": "Se på Plex",
"ViewOnEmby": "Se på Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "{{title}} er anmodet med succes",
"Similar": "Lignende",
"Refine": "Refine",
@ -118,7 +127,10 @@
"SubmitRequest": "Send anmodning",
"Season": "Sæson {{seasonNumber}}",
"SelectAllInSeason": "Vælg alle i sæson {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Anmodninger",
@ -146,6 +158,7 @@
"Remove": "Fjern",
"Deny": "Afvis",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Sæson",
"GridTitle": "Titel",
"AirDate": "Sendt",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problemer",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Nulstil filter",
"FilterHeaderAvailability": "Tilgængelighed",
"FilterHeaderRequestStatus": "Status",
"Approved": "Godkendt",
"PendingApproval": "Afventer godkendelse"
"PendingApproval": "Afventer godkendelse",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Tv: {{remaining}}/{{total}} Resterende",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Status",
"Availability": "Tilgængelighed",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Tilsidesæt rodmappe",
"QualityOverride": "Tilsidesæt kvalitet",
"Genres": "Genres",
"TheatricalRelease": "Biografudgivelse",
"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"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show"
}
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Populære",
"TrendingTab": "Aktuelle",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Film",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Velkommen til {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,14 +14,17 @@
"Common": {
"ContinueButton": "Weiter",
"Available": "Verfügbar",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Teilweise verfügbar",
"Monitored": "Überwacht",
"NotAvailable": "Nicht verfügbar",
"ProcessingRequest": "Anfrage wird bearbeitet",
"PendingApproval": "Genehmigung ausstehend",
"RequestDenied": "Anfrage abgelehnt",
"NotRequested": "Nicht angefragt",
"NotRequested": "Nicht angefordert",
"Requested": "Angefordert",
"Search": "Search",
"Request": "Anfrage",
"Denied": "Abgelehnt",
"Approve": "Genehmigen",
@ -31,20 +34,23 @@
"Validation": "Bitte überprüfen Sie die eingegebenen Werte"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-Mail-Adresse",
"ResetPasswordButton": "Passwort zurücksetzen"
},
"LandingPage": {
"OnlineHeading": "Gerade Online",
"OnlineHeading": "Gerade online",
"OnlineParagraph": "Der Mediaserver ist gerade online",
"PartiallyOnlineHeading": "Teilweise Online",
"PartiallyOnlineHeading": "Teilweise online",
"PartiallyOnlineParagraph": "Der Mediaserver ist teilweise online.",
"MultipleServersUnavailable": "Es sind {{serversUnavailable}} von {{totalServers}} Servern offline.",
"SingleServerUnavailable": "Es sind {{serversUnavailable}} von {{totalServers}} Servern offline.",
"OfflineHeading": "Derzeit Offline",
"OfflineHeading": "Derzeit offline",
"OfflineParagraph": "Der Mediaserver ist derzeit offline.",
"CheckPageForUpdates": "Überprüfe diese Seite für kontinuierliche Website-Updates."
},
@ -86,12 +92,15 @@
"MoviesTab": "Filme",
"TvTab": "Serien",
"MusicTab": "Musik",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Vorschläge",
"NoResults": "Es tut uns leid, wir haben keine Ergebnisse gefunden!",
"DigitalDate": "Veröffentlichung der digitalen Version: {{date}}",
"TheatricalRelease": "Kinostart: {{date}}",
"ViewOnPlex": "In Plex anschauen",
"ViewOnEmby": "In Emby anschauen",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Anfrage für {{title}} wurde erfolgreich hinzugefügt",
"Similar": "Ähnliche",
"Refine": "Auswahl verfeinern",
@ -118,7 +127,10 @@
"SubmitRequest": "Anfrage einreichen",
"Season": "Staffel {{seasonNumber}}",
"SelectAllInSeason": "Markiere alles in Staffel {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Anfragen",
@ -146,6 +158,7 @@
"Remove": "Entfernen",
"Deny": "Ablehnen",
"DenyReason": "Ablehnungsgrund",
"DeniedReason": "Denied Reason",
"Season": "Staffel",
"GridTitle": "Titel",
"AirDate": "Erstausstrahlung",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Probleme",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Filter zurücksetzen",
"FilterHeaderAvailability": "Verfügbarkeit",
"FilterHeaderRequestStatus": "Status",
"Approved": "Bestätigt",
"PendingApproval": "Genehmigung ausstehend"
"PendingApproval": "Genehmigung ausstehend",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} verbleibend",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Status",
"Availability": "Verfügbarkeit",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Anfrage Status",
"Quality": "Quality",
"RootFolderOverride": "Stammverzeichnis Überschreiben",
"QualityOverride": "Qualitäts Überschreiben",
"Genres": "Genres",
"TheatricalRelease": "Kinostart",
"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": "Besetzung"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Dies wird jede Saison für diese Show anfordern",
"FirstSeasonTooltip": "Dies wird nur die erste Saison für diese Show anfordern",
"LatestSeasonTooltip": "Dies wird nur die letzte Saison für diese Show anfordern"
}
"LatestSeasonTooltip": "Dies wird nur die letzte Saison für diese Show anfordern",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Beliebt",
"TrendingTab": "Angesagt",
"UpcomingTab": "Demnächst",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filme",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Erstausstrahlung",
"Writer": "AutorIn",
"ExecProducer": "Ausführender Produzent"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Willkommen {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -16,6 +16,8 @@
"Common": {
"ContinueButton": "Continue",
"Available": "Available",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Partially Available",
"Monitored": "Monitored",
"NotAvailable": "Not Available",
@ -35,6 +37,7 @@
},
"Cancel": "Cancel",
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
@ -92,6 +95,7 @@
"TvTab": "TV Shows",
"MusicTab": "Music",
"AdvancedSearch":"You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader":"Advanced Search",
"Suggestions": "Suggestions",
"NoResults": "Sorry, we didn't find any results!",
"DigitalDate": "Digital Release: {{date}}",
@ -125,7 +129,10 @@
"SubmitRequest": "Submit Request",
"Season": "Season {{seasonNumber}}",
"SelectAllInSeason": "Select All in Season {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Requests",
@ -190,7 +197,16 @@
"ChangeAvailability":"Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
}
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Issues",
@ -226,14 +242,17 @@
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted",
"Chat":"Chat",
"Requested":"Requested"
"Requested":"Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Clear Filter",
"FilterHeaderAvailability": "Availability",
"FilterHeaderRequestStatus": "Status",
"Approved": "Approved",
"PendingApproval": "Pending Approval"
"PendingApproval": "Pending Approval",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} remaining",
@ -265,21 +284,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"
},
@ -287,13 +318,17 @@
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!"
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"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": {
@ -329,6 +364,24 @@
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode":"Mobile QR Code",
"LegacyApp":"Launch Legacy App",
"NoQrCode":"Please contact your administrator to enable QR codes"
"NoQrCode":"Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Continuar",
"Available": "Disponible",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Disponible parcialmente",
"Monitored": "Monitoreado",
"NotAvailable": "No disponible",
@ -22,6 +24,7 @@
"RequestDenied": "Solicitud denegada",
"NotRequested": "No solicitado",
"Requested": "Solicitado",
"Search": "Search",
"Request": "Solicitar",
"Denied": "Denegado",
"Approve": "Aprobar",
@ -31,7 +34,10 @@
"Validation": "Por favor, comprueba los datos introducidos"
},
"Cancel": "Cancelar",
"Submit": "Enviar"
"Submit": "Enviar",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Correo electrónico",
@ -86,12 +92,15 @@
"MoviesTab": "Películas",
"TvTab": "Series",
"MusicTab": "Música",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Sugerencias",
"NoResults": "¡Lo sentimos, no encontramos ningún resultado!",
"DigitalDate": "Versión digital: {{date}}",
"TheatricalRelease": "En cines: {{date}}",
"ViewOnPlex": "Ver en Plex",
"ViewOnEmby": "Ver en Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "La solicitud de {{title}} se ha añadido correctamente",
"Similar": "Similar",
"Refine": "Filtros",
@ -118,7 +127,10 @@
"SubmitRequest": "Enviar solicitud",
"Season": "Temporada {{seasonNumber}}",
"SelectAllInSeason": "Seleccionar todo en temporada {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Solicitudes",
@ -142,10 +154,11 @@
"ChangeRootFolder": "Carpeta raíz",
"ChangeQualityProfile": "Perfil de calidad",
"MarkUnavailable": "Marcar como no disponible",
"MarkAvailable": "Marcar como disponible",
"MarkAvailable": "Marcar Disponible",
"Remove": "Eliminar",
"Deny": "Denegar",
"DenyReason": "Razón Denegada",
"DeniedReason": "Denied Reason",
"Season": "Temporada",
"GridTitle": "Título",
"AirDate": "Fecha de estreno",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problemas",
@ -214,14 +238,19 @@
"MarkedAsResolved": "¡Este problema ha sido marcado como resuelto!",
"MarkedAsInProgress": "¡Este problema se ha marcado como en progreso!",
"Delete": "Borrar problema",
"DeletedIssue": "El problema ha sido borrado"
"DeletedIssue": "El problema ha sido borrado",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Reiniciar filtro",
"FilterHeaderAvailability": "Disponibilidad",
"FilterHeaderRequestStatus": "Estado",
"Approved": "Aprobado",
"PendingApproval": "Pendiente de aprobación"
"PendingApproval": "Pendiente de aprobación",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} restantes",
@ -247,36 +276,65 @@
"ViewCollection": "Ver Colección",
"NotEnoughInfo": "Desafortunadamente todavía no hay suficiente información sobre este programa!",
"AdvancedOptions": "Opciones Avanzadas",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Seleccione un Perfil de Calidad",
"RootFolderSelect": "Seleccione una Carpeta Raíz",
"Status": "Estado",
"Availability": "Disponibilidad",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Estado de solicitud",
"Quality": "Calidad",
"RootFolderOverride": "Sobreescribir carpeta raíz",
"QualityOverride": "Sobreescribir calidad",
"Genres": "Géneros",
"TheatricalRelease": "En cines",
"DigitalRelease": "Estreno Digital",
"Votes": "Votos",
"Runtime": "Duración",
"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}} Minutos",
"Revenue": "Ingresos",
"Budget": "Presupuesto",
"Keywords": "Palabras Clave/Etiquetas",
"Revenue": "Revenue:",
"Budget": "Budget:",
"Keywords": "Keywords/Tags:",
"Casts": {
"CastTitle": "Enviar pantalla"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Esto solicitará cada temporada para este programa",
"FirstSeasonTooltip": "Esto solo solicitará la primera temporada para este programa",
"LatestSeasonTooltip": "Esto solo solicitará la última temporada para este programa"
}
"LatestSeasonTooltip": "Esto solo solicitará la última temporada para este programa",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Popular",
"TrendingTab": "Tendencias",
"UpcomingTab": "Próximamente",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Películas",
"Combined": "Combinado",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Emitido por primera vez",
"Writer": "Guionistas",
"ExecProducer": "Productor ejecutivo"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Bienvenido {{username}}!",
"OmbiLanguage": "Idioma",
"DarkMode": "Modo Oscuro"
"DarkMode": "Modo Oscuro",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Continuer",
"Available": "Disponible",
"Approved": "Approuvée",
"Pending": "En attente",
"PartiallyAvailable": "Partiellement disponible",
"Monitored": "Suivi",
"NotAvailable": "Non disponible",
@ -22,6 +24,7 @@
"RequestDenied": "Demande refusée",
"NotRequested": "Non demandé",
"Requested": "Demandé",
"Search": "Rechercher",
"Request": "Demander",
"Denied": "Refusé",
"Approve": "Approuver",
@ -31,10 +34,13 @@
"Validation": "Veuillez vérifier les valeurs entrées"
},
"Cancel": "Annuler",
"Submit": "Envoyer"
"Submit": "Envoyer",
"Update": "Mettre à jour",
"tvShow": "Série",
"movie": "Film"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Adresse Email",
"EmailAddressPlaceholder": "Adresse e-mail",
"ResetPasswordButton": "Réinitialiser le mot de passe"
},
"LandingPage": {
@ -51,24 +57,24 @@
"NavigationBar": {
"Discover": "Découvrir",
"Search": "Rechercher",
"Requests": "En attente",
"UserManagement": "Gestion des utilisateurs",
"Requests": "Demandes",
"UserManagement": "Utilisateurs",
"Issues": "Problèmes",
"Vote": "Vote",
"Donate": "Faire un don !",
"DonateLibraryMaintainer": "Faire un don au mainteneur de la bibliothèque",
"DonateTooltip": "Cest pour convaincre ma femme de me laisser passer mon temps libre à développer Ombi ;)",
"DonateTooltip": "Cest pour convaincre ma femme de me laisser passer mon temps libre à développer Ombi 😁",
"UpdateAvailableTooltip": "Mise à jour disponible !",
"Settings": "Paramètres",
"Welcome": "Bienvenue {{username}}",
"UpdateDetails": "Détails de la mise à jour",
"UpdateDetails": "Mettre à jour les informations",
"Logout": "Déconnexion",
"OpenMobileApp": "Ouvrir l'application mobile",
"OpenMobileApp": "Ouvrir l'application",
"RecentlyAdded": "Ajouts récents",
"ChangeTheme": "Changer de thème",
"Calendar": "Calendrier",
"UserPreferences": "Paramètres",
"FeatureSuggestion": "Suggérer une fonctionnalité",
"UserPreferences": "Préférences",
"FeatureSuggestion": "Suggestions",
"FeatureSuggestionTooltip": "Vous avez une bonne idée ? Suggérez-la ici !",
"Filter": {
"Movies": "Films",
@ -86,12 +92,15 @@
"MoviesTab": "Films",
"TvTab": "Séries",
"MusicTab": "Musique",
"AdvancedSearch": "Vous pouvez remplir l'un des éléments ci-dessous pour découvrir de nouveaux médias. Tous les résultats sont triés par popularité",
"AdvancedSearchHeader": "Recherche avancée",
"Suggestions": "Suggestions",
"NoResults": "Désolé, nous n'avons trouvé aucun résultat !",
"DigitalDate": "Sortie numérique: {{date}}",
"TheatricalRelease": "Sortie en salle: {{date}}",
"DigitalDate": "Sortie numérique : {{date}}",
"TheatricalRelease": "Sortie en salle : {{date}}",
"ViewOnPlex": "Regarder sur Plex",
"ViewOnEmby": "Regarder sur Emby",
"ViewOnJellyfin": "Regarder sur Jellyfin",
"RequestAdded": "La demande pour {{title}} a été ajoutée avec succès",
"Similar": "Similaires",
"Refine": "Affiner",
@ -101,7 +110,7 @@
"UpcomingMovies": "Films à venir",
"TopRatedMovies": "Films les mieux notés",
"NowPlayingMovies": "Films à l'affiche",
"HomePage": "Accueil",
"HomePage": "Site du film",
"Trailer": "Bande-annonce"
},
"TvShows": {
@ -118,7 +127,10 @@
"SubmitRequest": "Envoyer la demande",
"Season": "Saison {{seasonNumber}}",
"SelectAllInSeason": "Tout sélectionner dans la saison {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Veuillez choisir le type de média que vous recherchez :",
"YearOfRelease": "Année de sortie",
"KeywordSearchingDisclaimer": "Veuillez noter que la recherche de mots-clés n'est pas très fiable en raison de données incohérentes dans TheMovieDb"
},
"Requests": {
"Title": "Demandes",
@ -139,13 +151,14 @@
"RequestDate": "Date de la demande",
"QualityOverride": "Remplacement de la qualité :",
"RootFolderOverride": "Remplacement du répertoire racine :",
"ChangeRootFolder": "Modifier le répertoire racine",
"ChangeQualityProfile": "Changer le profil de qualité",
"ChangeRootFolder": "Répertoire racine",
"ChangeQualityProfile": "Profil de qualité",
"MarkUnavailable": "Marquer comme non disponible",
"MarkAvailable": "Marquer comme disponible",
"Remove": "Supprimer",
"Deny": "Refuser",
"DenyReason": "Raison de refus",
"DenyReason": "Motif de refus",
"DeniedReason": "Motif de refus",
"Season": "Saison",
"GridTitle": "Titre",
"AirDate": "Date de diffusion",
@ -153,7 +166,7 @@
"ReportIssue": "Signaler un problème",
"Filter": "Filtre",
"Sort": "Trier",
"SeasonNumberHeading": "Saison: {seasonNumber}",
"SeasonNumberHeading": "Saison : {seasonNumber}",
"SortTitleAsc": "Titre ▲",
"SortTitleDesc": "Titre ▼",
"SortRequestDateAsc": "Date de la demande ▲",
@ -167,20 +180,31 @@
"NextMinutes": "Une autre demande sera ajoutée dans {{time}} minutes",
"NextMinute": "Une autre demande sera ajoutée dans {{time}} minute"
},
"AllRequests": "Toutes les requêtes",
"PendingRequests": "Requêtes en attente",
"ProcessingRequests": "Requêtes en cours",
"AvailableRequests": "Requêtes disponibles",
"DeniedRequests": "Requêtes refusées",
"RequestsToDisplay": "Requêtes à afficher",
"AllRequests": "Toutes les demandes",
"PendingRequests": "Demandes en attente",
"ProcessingRequests": "Demandes en cours",
"AvailableRequests": "Demandes disponibles",
"DeniedRequests": "Demandes refusées",
"RequestsToDisplay": "Demandes à afficher",
"RequestsTitle": "Titre",
"Details": "Détails",
"Options": "Options",
"RequestPanel": {
"Delete": "Supprimer la demande",
"Approve": "Autoriser la demande",
"ChangeAvailability": "Marquer comme Disponible"
}
"Approve": "Approuver la demande",
"ChangeAvailability": "Marquer comme Disponible",
"Deleted": "Éléments sélectionnés supprimés avec succès",
"Approved": "Éléments sélectionnés approuvés avec succès"
},
"SuccessfullyApproved": "Approuvée avec succès",
"NowAvailable": "La demande est maintenant disponible",
"NowUnavailable": "La demande est maintenant indisponible",
"SuccessfullyReprocessed": "La demande a été retraitée avec succès",
"DeniedRequest": "Demande refusée",
"RequestCollection": "Demander la collection",
"CollectionSuccesfullyAdded": "La collection {{name}} a été ajoutée avec succès !",
"NeedToSelectEpisodes": "Vous devez sélectionner des épisodes !",
"RequestAddedSuccessfully": "La demande de {{title}} a été ajoutée avec succès"
},
"Issues": {
"Title": "Problèmes",
@ -188,7 +212,7 @@
"InProgressTitle": "Problèmes en cours",
"ResolvedTitle": "Problèmes résolus",
"ColumnTitle": "Titre",
"Count": "Count",
"Count": "Nombre",
"Category": "Catégorie",
"Status": "Statut",
"Details": "Détails",
@ -203,31 +227,36 @@
"ReportedBy": "Signalé par",
"IssueDialog": {
"Title": "Signaler un problème",
"DescriptionPlaceholder": "Veuillez décrire le problème rencontré",
"DescriptionPlaceholder": "Veuillez décrire le problème",
"TitlePlaceholder": "Titre court de votre problème",
"SelectCategory": "Sélectionner une catégorie",
"IssueCreated": "Votre rapport d'erreur a été créée"
"IssueCreated": "Votre problème a été créé"
},
"Outstanding": "Des rapports d'erreurs sont en attente",
"Outstanding": "Des problèmes ont été signalés",
"ResolvedDate": "Date de résolution",
"CreatedDate": "Signalé le",
"MarkedAsResolved": "Ce problème a maintenant été marqué comme résolu !",
"MarkedAsInProgress": "Ce problème a maintenant été marqué comme en cours de traitement !",
"Delete": "Supprimer rapport d'erreur",
"DeletedIssue": "Votre rapport d'erreur a été supprimé"
"Delete": "Supprimer le problème",
"DeletedIssue": "Problème supprimé",
"Chat": "Discuter",
"Requested": "Demandé",
"UserOnDate": "{{user}} le {{date}}"
},
"Filter": {
"ClearFilter": "Effacer les filtres",
"FilterHeaderAvailability": "Disponibilité",
"FilterHeaderRequestStatus": "Statut",
"Approved": "Validée",
"PendingApproval": "En attente de validation"
"Approved": "Approuvée",
"PendingApproval": "En attente d'approbation",
"WatchProviders": "Fournisseurs de contenu",
"Keywords": "Mots-clés"
},
"UserManagment": {
"TvRemaining": "TV : {{remaining}}/{{total}} restant(s)",
"TvRemaining": "Séries : {{remaining}}/{{total}} restant(s)",
"MovieRemaining": "Films : {{remaining}}/{{total}} restant(s)",
"MusicRemaining": "Musique : {{remaining}}/{{total}} restant(s)",
"TvDue": "TV : {{date}}",
"TvDue": "Séries : {{date}}",
"MovieDue": "Film : {{date}}",
"MusicDue": "Musique : {{date}}"
},
@ -237,7 +266,7 @@
},
"MediaDetails": {
"Denied": "Refusé",
"RecommendationsTitle": "Suggestions",
"RecommendationsTitle": "Recommandations",
"SimilarTitle": "Similaires",
"VideosTitle": "Vidéos",
"AlbumsTitle": "Albums",
@ -245,41 +274,70 @@
"ClearSelection": "Désélectionner",
"RequestSelectedAlbums": "Demander les Albums sélectionnés",
"ViewCollection": "Afficher la Collection",
"NotEnoughInfo": "Malheureusement, il n'y a pas encore assez d'informations à propos de ce média !",
"NotEnoughInfo": "Malheureusement, il n'y a pas encore assez d'informations à propos de cette série !",
"AdvancedOptions": "Options Avancées",
"AutoApproveOptions": "Vous pouvez configurer la demande ici. Une fois demandée, elle sera envoyée à votre application de DVR et sera automatiquement approuvée ! Veuillez noter que ceci est optionnel, appuyez simplement sur \"Demander\" pour sauter !",
"AutoApproveOptionsTv": "Vous pouvez configurer la demande ici. Une fois demandée, elle sera envoyée à votre application de DVR et sera automatiquement approuvée ! Si la demande est déjà dans Sonarr, nous ne changerons pas le dossier racine ou le profil de qualité si vous la définissez ! Veuillez noter que ceci est optionnel, appuyez simplement sur \"Demander\" pour sauter !",
"AutoApproveOptionsTvShort": "Vous pouvez configurer la demande ici. Une fois demandée, elle sera envoyée à votre application de DVR ! Si la demande est déjà dans Sonarr, nous ne changerons pas le dossier racine ou le profil de qualité si vous la définissez ! Veuillez noter que ceci est optionnel, appuyez simplement sur \"Demander\" pour sauter !",
"QualityProfilesSelect": "Sélectionner un Profil de Qualité",
"RootFolderSelect": "Sélectionner un Dossier Racine",
"Status": "Statut",
"Availability": "Disponibilité",
"LanguageProfileSelect": "Sélectionnez un profil de langue",
"Status": "Statut :",
"StatusValues": {
"Planned": "Planifié",
"In Production": "En Production",
"Released": "Sorti",
"Returning Series": "Série en cours",
"Ended": "Finie",
"Canceled": "Annulée"
},
"Seasons": "Saisons :",
"Episodes": "Épisodes :",
"Availability": "Disponibilité :",
"RequestStatus": "Statut de la Demande",
"Quality": "Qualité",
"RootFolderOverride": "Remplacer le Dossier Racine",
"QualityOverride": "Remplacer la Qualité",
"Genres": "Genres",
"TheatricalRelease": "Sortie en salle",
"DigitalRelease": "Sorti en Numérique",
"Votes": "Votes",
"Runtime": "Durée de visionnage",
"Quality": "Qualité :",
"RootFolderOverride": "Remplacement du répertoire racine :",
"QualityOverride": "Remplacement de la qualité :",
"Network": "Diffuseur :",
"Genres": "Genres :",
"FirstAired": "Première diffusion :",
"TheatricalRelease": "Sortie :",
"DigitalRelease": "Sortie numérique :",
"Votes": "Votes :",
"Runtime": "Durée :",
"Minutes": "{{runtime}} Minutes",
"Revenue": "Recettes",
"Budget": "Coût de Production",
"Keywords": "Mots Clés / Tags",
"Revenue": "Recettes :",
"Budget": "Budget :",
"Keywords": "Mots-clés / Tags :",
"Casts": {
"CastTitle": "Casting"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Cette action demandera toutes les saisons de cette série",
"FirstSeasonTooltip": "Cette action ne demandera que la Première Saison de cette série",
"LatestSeasonTooltip": "Cette action ne demandera que la Dernière Saison de cette série"
}
"LatestSeasonTooltip": "Cette action ne demandera que la Dernière Saison de cette série",
"NoEpisodes": "Il n'y a malheureusement pas encore d'informations d'épisode pour cette série !",
"SeasonNumber": "Saison {{number}}"
},
"SonarrConfiguration": "Configuration Sonarr",
"RadarrConfiguration": "Configuration Radarr",
"RequestOnBehalf": "Demander au nom de",
"PleaseSelectUser": "Veuillez sélectionner un utilisateur",
"StreamingOn": "En streaming sur :",
"RequestedBy": "Demandé par :",
"RequestDate": "Date de la demande :",
"DeniedReason": "Motif de refus :",
"ReProcessRequest": "Refaire une demande"
},
"Discovery": {
"PopularTab": "Populaire",
"TrendingTab": "Tendances",
"UpcomingTab": "Prochainement",
"SeasonalTab": "De saison",
"RecentlyRequestedTab": "Demandé récemment",
"Movies": "Films",
"Combined": "Tous",
"Tv": "TV",
"Tv": "Séries",
"CardDetails": {
"Availability": "Disponibilité",
"Studio": "Studio",
@ -291,11 +349,36 @@
"FirstAired": "Première Diffusion",
"Writer": "Scénariste",
"ExecProducer": "Producteur Exécutif"
}
},
"NoSearch": "Désolé, rien ne correspond à votre recherche !"
},
"UserPreferences": {
"Welcome": "Bienvenue {{username}}!",
"Welcome": "Bienvenue {{username}} !",
"OmbiLanguage": "Langue",
"DarkMode": "Mode Sombre"
"DarkMode": "Mode Sombre",
"Updated": "Mise à jour réussie",
"StreamingCountry": "Pays de diffusion",
"StreamingCountryDescription": "C'est le code du pays pour lequel nous afficherons des informations de diffusion. Si vous êtes en France, veuillez sélectionner la France et vous aurez des informations de streaming en relation avec la France.",
"LanguageDescription": "C'est la langue dans laquelle vous souhaitez que l'interface Ombi soit affichée.",
"MobileQRCode": "QR Code mobile",
"LegacyApp": "Lancer l'ancienne application",
"NoQrCode": "Veuillez contacter votre administrateur pour activer les QR codes",
"UserType": "Type d'utilisateur :",
"ChangeDetails": "Modifier les informations",
"NeedCurrentPassword": "Vous avez besoin de votre mot de passe actuel pour effectuer des modifications ici",
"CurrentPassword": "Mot de passe actuel",
"EmailAddress": "Adresse e-mail",
"NewPassword": "Nouveau mot de passe",
"NewPasswordConfirm": "Confirmation du nouveau mot de passe",
"Security": "Sécurité",
"Profile": "Profil",
"UpdatedYourInformation": "Informations mises à jour"
},
"UserTypeLabel": {
"1": "Utilisateur local",
"2": "Utilisateur Plex",
"3": "Utilisateur Emby",
"4": "Utilisateur Emby Connect",
"5": "Utilisateur Jellyfin"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Tovább",
"Available": "Elérhető",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Részlegesen elérhető",
"Monitored": "Figyelve",
"NotAvailable": "Nem elérhető",
@ -22,6 +24,7 @@
"RequestDenied": "Kérés megtagadva",
"NotRequested": "Nincs kérve",
"Requested": "Kérve",
"Search": "Search",
"Request": "Kérés",
"Denied": "Megtagadva",
"Approve": "Jóváhagyva",
@ -31,7 +34,10 @@
"Validation": "Kérjük, ellenőrizze a beírt értékeket"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-mail cím",
@ -86,12 +92,15 @@
"MoviesTab": "Filmek",
"TvTab": "Sorozatok",
"MusicTab": "Zene",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Javaslatok",
"NoResults": "Sajnáljuk, nem találtunk semmit!",
"DigitalDate": "Digitális kiadás: {{date}}",
"TheatricalRelease": "Mozis kiadás: {{date}}",
"ViewOnPlex": "Megnézés Plexen",
"ViewOnEmby": "Megnézés Emby-n",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Kérés sikeresen leadva erre: {{title}}",
"Similar": "Hasonló",
"Refine": "Finomítás",
@ -118,7 +127,10 @@
"SubmitRequest": "Kérés küldése",
"Season": "Évad {{seasonNumber}}",
"SelectAllInSeason": "Egész {{seasonNumber}}. évad kiválasztása"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Kérések",
@ -146,6 +158,7 @@
"Remove": "Törlés",
"Deny": "Elutasítás",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Évad",
"GridTitle": "Cím",
"AirDate": "Bemutató",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problémák",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Szűrő törlése",
"FilterHeaderAvailability": "Elérhetőség",
"FilterHeaderRequestStatus": "Állapot",
"Approved": "Jóváhagyva",
"PendingApproval": "Jóváhagyásra vár"
"PendingApproval": "Jóváhagyásra vár",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} maradt",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Állapot",
"Availability": "Elérhetőség",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Gyökér mappa felülírása",
"QualityOverride": "Minőség felülírása",
"Genres": "Genres",
"TheatricalRelease": "Mozis kiadás",
"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"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show"
}
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Népszerű",
"TrendingTab": "Felkapott",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filmek",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Üdv {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -3,50 +3,56 @@
"SignInButton": "Accedi",
"UsernamePlaceholder": "Nome utente",
"PasswordPlaceholder": "Password",
"RememberMe": "Ricordati di me",
"RememberMe": "Ricordami",
"SignInWith": "Accedi con {{appName}}",
"SignInWithPlex": "Accedi con Plex",
"ForgottenPassword": "Hai dimenticato la password?",
"ForgottenPassword": "Password dimenticata?",
"Errors": {
"IncorrectCredentials": "Username o password non corretta"
"IncorrectCredentials": "Nome utente o password non corretti"
}
},
"Common": {
"ContinueButton": "Continua",
"Available": "Disponibile",
"PartiallyAvailable": "Parzialmente Disponibile",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Parzialmente disponibile",
"Monitored": "Monitorato",
"NotAvailable": "Non Disponibile",
"NotAvailable": "Non disponibile",
"ProcessingRequest": "Richiesta in elaborazione",
"PendingApproval": "In attesa di approvazione",
"RequestDenied": "Richiesta negata",
"NotRequested": "Non richiesto",
"Requested": "Richiesto",
"NotRequested": "Non richiesta",
"Requested": "Richiesta",
"Search": "Search",
"Request": "Richiesta",
"Denied": "Rifiutato",
"Denied": "Negata",
"Approve": "Approva",
"PartlyAvailable": "Parzialmente Disponibile",
"PartlyAvailable": "Parzialmente disponibile",
"ViewDetails": "Visualizza Dettagli",
"Errors": {
"Validation": "Per favore, controlla i valori che hai inserito"
"Validation": "Per favore, controlla i valori inseriti"
},
"Cancel": "Annulla",
"Submit": "Invia"
"Submit": "Invia",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Indirizzo e-mail",
"ResetPasswordButton": "Reimposta la password"
"ResetPasswordButton": "Reimposta password"
},
"LandingPage": {
"OnlineHeading": "Attualmente Online",
"OnlineHeading": "Attualmente in linea",
"OnlineParagraph": "Il media server è attualmente online",
"PartiallyOnlineHeading": "Parzialmente in linea",
"PartiallyOnlineParagraph": "Il media server è parzialmente in linea.",
"MultipleServersUnavailable": "Ci sono {{serversUnavailable}} server offline su {{totalServers}}.",
"SingleServerUnavailable": "C'è {{serversUnavailable}} server offline su {{totalServers}}.",
"OfflineHeading": "Attualmente Offline",
"OfflineParagraph": "Il media server è attualmente offline.",
"CheckPageForUpdates": "Controlla questa pagina per ottenere aggiornamenti del sito."
"OfflineParagraph": "Il server dei media è attualmente offline.",
"CheckPageForUpdates": "Controlla questa pagina per aggiornamenti continui del sito."
},
"NavigationBar": {
"Discover": "Scopri",
@ -55,16 +61,16 @@
"UserManagement": "Gestione degli utenti",
"Issues": "Problemi",
"Vote": "Vota",
"Donate": "Fai una donazione!",
"Donate": "Dona!",
"DonateLibraryMaintainer": "Dona al manutentore della libreria",
"DonateTooltip": "Questo è come convinco mia moglie a farmi spendere il mio tempo libero nello sviluppo di Ombi ;)",
"UpdateAvailableTooltip": "Aggiornamento disponibile!",
"Settings": "Impostazioni",
"Welcome": "Benvenuto {{username}}",
"UpdateDetails": "Aggiorna i tuoi dati",
"Welcome": "Ti diamo il benvenuto {{username}}",
"UpdateDetails": "Aggiorna dettagli",
"Logout": "Esci",
"OpenMobileApp": "Apri l'applicazione mobile",
"RecentlyAdded": "Aggiunto di recente",
"OpenMobileApp": "Apri l'app Mobile",
"RecentlyAdded": "Aggiunti di recente",
"ChangeTheme": "Cambia Tema",
"Calendar": "Calendario",
"UserPreferences": "Preferenze",
@ -82,17 +88,20 @@
},
"Search": {
"Title": "Cerca",
"Paragraph": "Vuoi vedere qualcosa che non è attualmente disponibile? Nessun problema, basta cercare qui sotto e richiederlo!",
"Paragraph": "Vuoi vedere qualcosa non attualmente disponibile? Nessun problema, cercalo sotto e richiedilo!",
"MoviesTab": "Film",
"TvTab": "Serie TV",
"MusicTab": "Musica",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Suggerimenti",
"NoResults": "Ci dispiace, non abbiamo trovato alcun risultato!",
"DigitalDate": "Rilascio digitale {{date}}",
"TheatricalRelease": "Rilascio Teatrale: {{date}}",
"NoResults": "Spiacenti, non abbiamo trovato nulla!",
"DigitalDate": "Uscita in digitale: {{date}}",
"TheatricalRelease": "Uscita nei cinema: {{date}}",
"ViewOnPlex": "Guarda su Plex",
"ViewOnEmby": "Guarda su Emby",
"RequestAdded": "La richiesta per {{title}} è stata aggiunta correttamente",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "La richiesta per {{title}} è stata aggiunta con successo",
"Similar": "Simili",
"Refine": "Affina",
"SearchBarPlaceholder": "Digita qui per cercare",
@ -105,24 +114,27 @@
"Trailer": "Trailer"
},
"TvShows": {
"Popular": "Popolare",
"Trending": "Tendenze",
"MostWatched": "Più Visti",
"Popular": "Popolari",
"Trending": "Di tendenza",
"MostWatched": "Più viste",
"MostAnticipated": "Più attese",
"Results": "Risultati",
"AirDate": "Data di trasmissione:",
"AirDate": "Data trasmissione:",
"AllSeasons": "Tutte le stagioni",
"FirstSeason": "Prima Stagione",
"LatestSeason": "Ultima Stagione",
"Select": "Seleziona ...",
"FirstSeason": "Prima stagione",
"LatestSeason": "Ultima stagione",
"Select": "Seleziona...",
"SubmitRequest": "Invia richiesta",
"Season": "Stagione {{seasonNumber}}",
"SelectAllInSeason": "Seleziona Tutto nella Stagione {{seasonNumber}}"
}
"SelectAllInSeason": "Seleziona tutto nella stagione {{seasonNumber}}"
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Richieste",
"Paragraph": "Qui sotto puoi vedere le tue e tutte le altre richieste con il loro stato di download e approvazione.",
"Paragraph": "Sotto puoi vedere le richieste tue e altrui, con il loro stato di download e di approvazione.",
"MoviesTab": "Film",
"ArtistName": "Artista",
"AlbumName": "Nome Album",
@ -131,41 +143,42 @@
"RequestedBy": "Richiesta da",
"Status": "Stato",
"RequestStatus": "Stato della richiesta",
"Denied": " Rifiutato:",
"TheatricalRelease": "Rilascio Teatrale: {{date}}",
"ReleaseDate": "Rilasciato: {{date}}",
"TheatricalReleaseSort": "Rilascio Teatrale",
"DigitalRelease": "Rilascio digitale {{date}}",
"Denied": "Negata:",
"TheatricalRelease": "Uscita nei cinema: {{date}}",
"ReleaseDate": "Rilasciato il {{date}}",
"TheatricalReleaseSort": "Uscita nei cinema",
"DigitalRelease": "Uscita in digitale: {{date}}",
"RequestDate": "Data della richiesta",
"QualityOverride": "Sovrascrivi qualità:",
"RootFolderOverride": "Sovrascrivi cartella principale:",
"ChangeRootFolder": "Modifica cartella principale",
"ChangeQualityProfile": "Modifica il profilo della qualità",
"MarkUnavailable": "Segna come Non disponibile",
"MarkAvailable": "Segna come Disponibile",
"Remove": "Elimina",
"QualityOverride": "Specifica qualità:",
"RootFolderOverride": "Specifica cartella radice:",
"ChangeRootFolder": "Cartella radice",
"ChangeQualityProfile": "Profilo qualità",
"MarkUnavailable": "Rendi non disponibile",
"MarkAvailable": "Rendi disponibile",
"Remove": "Rimuovi",
"Deny": "Nega",
"DenyReason": "Nega Motivo",
"DeniedReason": "Denied Reason",
"Season": "Stagione",
"GridTitle": "Titolo",
"AirDate": "Data di trasmissione",
"GridStatus": "Stato",
"ReportIssue": "Segnala Problema",
"ReportIssue": "Segnala problema",
"Filter": "Filtra",
"Sort": "Ordina",
"SeasonNumberHeading": "Stagione: {seasonNumber}",
"SortTitleAsc": "Titolo ▲",
"SortTitleDesc": "Titolo ▼",
"SortRequestDateAsc": "Data Richiesta",
"SortRequestDateDesc": "Data Richiesta",
"SortRequestDateAsc": "Data richiesta ▲",
"SortRequestDateDesc": "Data richiesta ▼",
"SortStatusAsc": "Stato ▲",
"SortStatusDesc": "Status ▼",
"SortStatusDesc": "Stato ▼",
"Remaining": {
"Quota": "{{remaining}}/{{total}} richieste rimanenti",
"NextDays": "Un'altra richiesta verrà aggiunta tra {{time}} giorni",
"NextHours": "Un'altra richiesta verrà aggiunta tra {{time}} ore",
"NextMinutes": "Un'altra richiesta verrà aggiunta tra {{time}} minuti",
"NextMinute": "Un'altra richiesta verrà aggiunta tra {{time}} minuti"
"NextMinutes": "Un'altra richiesta sarà aggiunta in {{time}} minuti",
"NextMinute": "Un'altra richiesta sarà aggiunta in {{time}} minuto"
},
"AllRequests": "Tutte le Richieste",
"PendingRequests": "Richieste in Attesa",
@ -179,27 +192,38 @@
"RequestPanel": {
"Delete": "Elimina Richiesta",
"Approve": "Approva Richiesta",
"ChangeAvailability": "Segna come Disponibile"
}
"ChangeAvailability": "Segna come Disponibile",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problemi",
"PendingTitle": "Problemi in sospeso",
"InProgressTitle": "Problemi in risoluzione",
"ResolvedTitle": "Problemi risolti",
"PendingTitle": "Problemi In Attesa",
"InProgressTitle": "Problemi In Corso",
"ResolvedTitle": "Problemi Risolti",
"ColumnTitle": "Titolo",
"Count": "Count",
"Category": "Categoria",
"Status": "Stato",
"Details": "Dettagli",
"Description": "Descrizione",
"NoComments": "Non ci sono commenti!",
"MarkInProgress": "Segna come in risoluzione",
"MarkResolved": "Segna come risolto",
"NoComments": "Nessun Commento!",
"MarkInProgress": "Senza In Corso",
"MarkResolved": "Segna Risolto",
"SendMessageButton": "Invia",
"Subject": "Oggetto",
"Comments": "Commenti",
"WriteMessagePlaceholder": "Scrivi qui il tuo messaggio...",
"WriteMessagePlaceholder": "Scrivi il tuo messaggio qui...",
"ReportedBy": "Segnalato da",
"IssueDialog": {
"Title": "Segnala un problema",
@ -214,14 +238,19 @@
"MarkedAsResolved": "Questo problema è stato ora segnato come risolto!",
"MarkedAsInProgress": "Questo problema è stato ora segnato come in corso!",
"Delete": "Elimina problema",
"DeletedIssue": "Il problema è stato eliminato"
"DeletedIssue": "Il problema è stato eliminato",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Rimuovi filtro",
"FilterHeaderAvailability": "Disponibilità",
"FilterHeaderRequestStatus": "Stato",
"Approved": "Approvato",
"PendingApproval": "In attesa di approvazione"
"PendingApproval": "In attesa di approvazione",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} rimanenti",
@ -233,7 +262,7 @@
},
"Votes": {
"CompletedVotesTab": "Votati",
"VotesTab": "Voti Necessari"
"VotesTab": "Voti richiesti"
},
"MediaDetails": {
"Denied": "Rifiutato",
@ -247,36 +276,65 @@
"ViewCollection": "Visualizza Raccolta",
"NotEnoughInfo": "Sfortunatamente ancora non ci sono abbastanza informazioni su questo show!",
"AdvancedOptions": "Opzioni Avanzate",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Seleziona Un Profilo di Qualità",
"RootFolderSelect": "Seleziona Una Cartella di Root",
"Status": "Stato",
"Availability": "Disponibilità",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Stato Richiesta",
"Quality": "Qualità",
"RootFolderOverride": "Sovrascrivi cartella principale",
"QualityOverride": "Sovrascrivi qualità",
"Genres": "Generi",
"TheatricalRelease": "Rilascio Teatrale",
"DigitalRelease": "Rilascio Digitale",
"Votes": "Voti",
"Runtime": "Durata",
"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}} Minuti",
"Revenue": "Entrate",
"Budget": "Budget",
"Keywords": "Parole Chiave/Tag",
"Revenue": "Revenue:",
"Budget": "Budget:",
"Keywords": "Keywords/Tags:",
"Casts": {
"CastTitle": "Trasmetti"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Questo richiederà ogni stagione per questo show",
"FirstSeasonTooltip": "Questo richiederà solo la Prima Stagione per questo show",
"LatestSeasonTooltip": "Questo richiederà solo l'Ultima Stagione per questo show"
}
"LatestSeasonTooltip": "Questo richiederà solo l'Ultima Stagione per questo show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Popolare",
"TrendingTab": "Tendenze",
"UpcomingTab": "In arrivo",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Film",
"Combined": "Combinato",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Prima Trasmissione",
"Writer": "Scrittore",
"ExecProducer": "Produttore Esecutivo"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Benvenuto {{username}}!",
"OmbiLanguage": "Lingua",
"DarkMode": "Modalità Scura"
"DarkMode": "Modalità Scura",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Doorgaan",
"Available": "Beschikbaar",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Deels Beschikbaar",
"Monitored": "Gemonitord",
"NotAvailable": "Niet Beschikbaar",
@ -22,6 +24,7 @@
"RequestDenied": "Verzoek geweigerd",
"NotRequested": "Niet verzocht",
"Requested": "Aangevraagd",
"Search": "Search",
"Request": "Aanvragen",
"Denied": "Afgewezen",
"Approve": "Accepteer",
@ -31,7 +34,10 @@
"Validation": "Controleer de ingevulde waardes"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-mail adres",
@ -86,12 +92,15 @@
"MoviesTab": "Films",
"TvTab": "TV Series",
"MusicTab": "Muziek",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Suggesties",
"NoResults": "Sorry, er zijn geen resultaten gevonden!",
"DigitalDate": "Digitale Uitgave: {{date}}",
"TheatricalRelease": "Bioscoop Uitgave: {{date}}",
"ViewOnPlex": "Bekijk op Plex",
"ViewOnEmby": "Bekijk op Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Aanvraag voor {{title}} is succesvol toegevoegd",
"Similar": "Vergelijkbaar",
"Refine": "Verfijn",
@ -118,7 +127,10 @@
"SubmitRequest": "Verzoek Indienen",
"Season": "Seizoen {{seasonNumber}}",
"SelectAllInSeason": "Selecteer Alles in het Seizoen {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Verzoeken",
@ -146,6 +158,7 @@
"Remove": "Verwijderen",
"Deny": "Weigeren",
"DenyReason": "Reden van afwijzing",
"DeniedReason": "Denied Reason",
"Season": "Seizoen",
"GridTitle": "Titel",
"AirDate": "Uitzenddatum",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problemen",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Verwijder Filter",
"FilterHeaderAvailability": "Beschikbaarheid",
"FilterHeaderRequestStatus": "Status",
"Approved": "Goedgekeurd",
"PendingApproval": "In afwachting van goedkeuring"
"PendingApproval": "In afwachting van goedkeuring",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Tv: {{remaining}}/{{total}} Resterend",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Status",
"Availability": "Beschikbaarheid",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Aanvraagstatus",
"Quality": "Quality",
"RootFolderOverride": "Hoofdmap overschrijven",
"QualityOverride": "Kwaliteit overschrijven",
"Genres": "Genres",
"TheatricalRelease": "Bioscoop Uitgave",
"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": "Acteurs"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Dit verzoekt ieder seizoen van deze serie",
"FirstSeasonTooltip": "Dit verzoekt alleen het eerste seizoen van deze serie",
"LatestSeasonTooltip": "Dit verzoekt alleen het laatste seizoen van deze show"
}
"LatestSeasonTooltip": "Dit verzoekt alleen het laatste seizoen van deze show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Populair",
"TrendingTab": "Populair",
"UpcomingTab": "Aankomend",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Films",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Eerste uitzending",
"Writer": "Schrijver",
"ExecProducer": "Uitvoerende producent"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Welkom {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Gå videre",
"Available": "Tilgjengelig",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Delvis tilgjengelig",
"Monitored": "Overvåket",
"NotAvailable": "Ikke tilgjengelig",
@ -22,6 +24,7 @@
"RequestDenied": "Forespørsel avslått",
"NotRequested": "Ikke forespurt",
"Requested": "Forespurt",
"Search": "Search",
"Request": "Forespørsel",
"Denied": "Avslått",
"Approve": "Godkjenn",
@ -31,7 +34,10 @@
"Validation": "Kontroller de angitte verdiene"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-postadresse",
@ -86,12 +92,15 @@
"MoviesTab": "Filmer",
"TvTab": "TV serier",
"MusicTab": "Musikk",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Forslag",
"NoResults": "Beklager, vi fant ingen resultater!",
"DigitalDate": "Digital utgivelse: {{date}}",
"TheatricalRelease": "Kinopremiere: {{date}}",
"ViewOnPlex": "Spill av på Plex",
"ViewOnEmby": "Spill av på Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Forespørsel om {{title}} er lagt til",
"Similar": "Lignende",
"Refine": "Spesifiser",
@ -118,7 +127,10 @@
"SubmitRequest": "Send forespørsel",
"Season": "Sesong {{seasonNumber}}",
"SelectAllInSeason": "Velg alle i sesong {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Forespørsler",
@ -146,6 +158,7 @@
"Remove": "Fjern",
"Deny": "Avslå",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Sesong",
"GridTitle": "Tittel",
"AirDate": "Sendedato",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Mangler",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Tøm filter",
"FilterHeaderAvailability": "Tilgjengelighet",
"FilterHeaderRequestStatus": "Status",
"Approved": "Godkjent",
"PendingApproval": "Venter på godkjenning"
"PendingApproval": "Venter på godkjenning",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} gjenstående",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Status",
"Availability": "Tilgjengelighet",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Overstyring av rotmappe",
"QualityOverride": "Overstyr kvalitet",
"Genres": "Genres",
"TheatricalRelease": "Kinopremiere",
"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"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show"
}
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Populært",
"TrendingTab": "På vei opp",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filmer",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Velkommen {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Kontynuuj",
"Available": "Dostępne",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Częściowo dostępne",
"Monitored": "Monitorowane",
"NotAvailable": "Niedostępne",
@ -22,6 +24,7 @@
"RequestDenied": "Zgłoszenie odrzucone",
"NotRequested": "Niezgłoszone",
"Requested": "Zgłoszone",
"Search": "Search",
"Request": "Zgłoszenie",
"Denied": "Odrzucone",
"Approve": "Zatwierdź",
@ -31,7 +34,10 @@
"Validation": "Proszę sprawdzić wprowadzone wartości"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Adres e-mail",
@ -86,12 +92,15 @@
"MoviesTab": "Filmy",
"TvTab": "Seriale",
"MusicTab": "Muzyka",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Sugestie",
"NoResults": "Niestety nic nie znaleziono!",
"DigitalDate": "Wydanie cyfrowe: {{date}}",
"TheatricalRelease": "Premiera kinowa: {{date}}",
"ViewOnPlex": "Obejrzyj w Plex",
"ViewOnEmby": "Obejrzyj w Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Zgłoszenie dla {{title}} zostało pomyślnie dodane",
"Similar": "Podobne",
"Refine": "Zawęź",
@ -118,7 +127,10 @@
"SubmitRequest": "Dodaj zgłoszenie",
"Season": "Sezon {{seasonNumber}}",
"SelectAllInSeason": "Wybierz wszystkie w sezonie {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Zgłoszenia",
@ -146,6 +158,7 @@
"Remove": "Usuń",
"Deny": "Odrzuć",
"DenyReason": "Powód odrzucenia",
"DeniedReason": "Denied Reason",
"Season": "Sezon",
"GridTitle": "Tytuł",
"AirDate": "Data emisji",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problemy",
@ -190,7 +214,7 @@
"ColumnTitle": "Tytuł",
"Count": "Count",
"Category": "Kategoria",
"Status": "Stan",
"Status": "Status",
"Details": "Szczegóły",
"Description": "Opis",
"NoComments": "Brak komentarzy!",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Wyczyść filtr",
"FilterHeaderAvailability": "Dostępność",
"FilterHeaderRequestStatus": "Stan",
"FilterHeaderRequestStatus": "Status",
"Approved": "Zatwierdzone",
"PendingApproval": "Oczekujące na zatwierdzenie"
"PendingApproval": "Oczekujące na zatwierdzenie",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Seriale: pozostało {{remaining}}/{{total}}",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Stan",
"Availability": "Dostępność",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Status zgłoszenia",
"Quality": "Quality",
"RootFolderOverride": "Wymuszenie folderu głównego",
"QualityOverride": "Wymuszenie jakości",
"Genres": "Genres",
"TheatricalRelease": "Premiera kinowa",
"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": "Obsada"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Zgłoszenie obejmie wszystkie sezony tego serialu",
"FirstSeasonTooltip": "Zgłoszenie obejmie pierwszy sezon tego serialu",
"LatestSeasonTooltip": "Zgłoszenie obejmie najnowszy sezon tego serialu"
}
"LatestSeasonTooltip": "Zgłoszenie obejmie najnowszy sezon tego serialu",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Popularne",
"TrendingTab": "Zyskujące popularność",
"UpcomingTab": "Nadchodzące",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filmy",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Pierwsza emisja",
"Writer": "Scenarzysta",
"ExecProducer": "Producent wykonawczy"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Witaj {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -1,70 +1,76 @@
{
"Login": {
"SignInButton": "Iniciar sessão",
"UsernamePlaceholder": "Nome de Usuário",
"PasswordPlaceholder": "Palavra-passe",
"RememberMe": "Recorde-me",
"UsernamePlaceholder": "Nome de usuário",
"PasswordPlaceholder": "Senha",
"RememberMe": "Lembrar-me",
"SignInWith": "Entre com {{appName}}",
"SignInWithPlex": "Iniciar sessão com Plex",
"ForgottenPassword": "Esqueceu sua senha?",
"Errors": {
"IncorrectCredentials": "Usuário ou senha incorretos"
"IncorrectCredentials": "Nome de usuário ou senha incorretos"
}
},
"Common": {
"ContinueButton": "Continuar",
"Available": "Disponível",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Parcialmente Disponível",
"Monitored": "Monitored",
"NotAvailable": "Não disponível",
"ProcessingRequest": "Processando o pedido",
"Monitored": "Monitorado",
"NotAvailable": "Não Disponível",
"ProcessingRequest": "Processando Solicitação",
"PendingApproval": "Aprovação Pendente",
"RequestDenied": "Pedido Negado",
"RequestDenied": "Solicitação Negada",
"NotRequested": "Não Solicitado",
"Requested": "Pedido",
"Requested": "Solicitado",
"Search": "Search",
"Request": "Solicitar",
"Denied": "Recusado",
"Denied": "Negado",
"Approve": "Aprovar",
"PartlyAvailable": "Parcialmente Disponível",
"ViewDetails": "Ver detalhes",
"Errors": {
"Validation": "Por favor, verifique os valores inseridos"
"Validation": "Por favor, verifique os dados inseridos"
},
"Cancel": "Cancelar",
"Submit": "Submeter"
"Submit": "Submeter",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Email Address",
"ResetPasswordButton": "Nova senha"
"EmailAddressPlaceholder": "Endereço de e-mail",
"ResetPasswordButton": "Redefinir Senha"
},
"LandingPage": {
"OnlineHeading": "Online no momento",
"OnlineParagraph": "The media server is currently online",
"PartiallyOnlineHeading": "Partially Online",
"PartiallyOnlineParagraph": "The media server is partially online.",
"MultipleServersUnavailable": "There are {{serversUnavailable}} servers offline out of {{totalServers}}.",
"SingleServerUnavailable": "There is {{serversUnavailable}} server offline out of {{totalServers}}.",
"OfflineHeading": "Currently Offline",
"OfflineParagraph": "The media server is currently offline.",
"CheckPageForUpdates": "Check this page for continuous site updates."
"OnlineParagraph": "O servidor de mídia está atualmente online",
"PartiallyOnlineHeading": "Parcialmente Online",
"PartiallyOnlineParagraph": "O servidor de mídia está parcialmente online.",
"MultipleServersUnavailable": "Existem {{serversUnavailable}} servidores offline de um total de {{totalServers}}.",
"SingleServerUnavailable": "Existe {{serversUnavailable}} servidor offline de um total de {{totalServers}}.",
"OfflineHeading": "Offline Agora",
"OfflineParagraph": "O servidor de mídia está atualmente offline.",
"CheckPageForUpdates": "Verifique esta página para acompanhar as atualizações do site."
},
"NavigationBar": {
"Discover": "Discover",
"Search": "Search",
"Requests": "Requests",
"Search": "Pesquisar",
"Requests": "Solicitações",
"UserManagement": "User Management",
"Issues": "Issues",
"Vote": "Vote",
"Donate": "Donate!",
"DonateLibraryMaintainer": "Donate to Library Maintainer",
"Issues": "Problemas",
"Vote": "Votar",
"Donate": "Doações!",
"DonateLibraryMaintainer": "Doar para o Dono da Biblioteca",
"DonateTooltip": "This is how I convince my wife to let me spend my spare time developing Ombi 😁",
"UpdateAvailableTooltip": "Update Available!",
"Settings": "Settings",
"Welcome": "Welcome {{username}}",
"UpdateDetails": "Update Details",
"Logout": "Logout",
"OpenMobileApp": "Open Mobile App",
"RecentlyAdded": "Recently Added",
"UpdateAvailableTooltip": "Atualização Disponível!",
"Settings": "Configurações",
"Welcome": "Bem-vindo(a), {{username}}",
"UpdateDetails": "Detalhes da Atualização",
"Logout": "Desconectar",
"OpenMobileApp": "Abrir Aplicativo do Celular",
"RecentlyAdded": "Recentemente Adicionado",
"ChangeTheme": "Change Theme",
"Calendar": "Calendar",
"UserPreferences": "Preferences",
@ -81,91 +87,98 @@
"EveningWelcome": "Good evening!"
},
"Search": {
"Title": "Search",
"Paragraph": "Want to watch something that is not currently available? No problem, just search for it below and request it!",
"MoviesTab": "Movies",
"TvTab": "TV Shows",
"MusicTab": "Music",
"Suggestions": "Suggestions",
"NoResults": "Sorry, we didn't find any results!",
"DigitalDate": "Digital Release: {{date}}",
"TheatricalRelease": "Theatrical Release: {{date}}",
"Title": "Pesquisar",
"Paragraph": "Quer assistir a algo que não está disponível? Sem problemas, basta pesquisar abaixo e solicitar!",
"MoviesTab": "Filmes",
"TvTab": "Séries",
"MusicTab": "Músicas",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Sugestões",
"NoResults": "Desculpe, não encontramos nenhum resultado!",
"DigitalDate": "Lançamento Digital: {{date}}",
"TheatricalRelease": "Lançamento nos Cinemas: {{date}}",
"ViewOnPlex": "View On Plex",
"ViewOnEmby": "View On Emby",
"RequestAdded": "Request for {{title}} has been added successfully",
"Similar": "Similar",
"Refine": "Refine",
"SearchBarPlaceholder": "Type Here to Search",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "O pedido de {{title}} foi adicionado com sucesso",
"Similar": "Semelhantes",
"Refine": "Corrigir",
"SearchBarPlaceholder": "Digite Aqui para Pesquisar",
"Movies": {
"PopularMovies": "Popular Movies",
"UpcomingMovies": "Upcoming Movies",
"TopRatedMovies": "Top Rated Movies",
"NowPlayingMovies": "Now Playing Movies",
"HomePage": "Home Page",
"PopularMovies": "Filmes Populares",
"UpcomingMovies": "Filmes Em Breve",
"TopRatedMovies": "Filmes Mais Votados",
"NowPlayingMovies": "Filmes em Cartaz",
"HomePage": "Página Inicial",
"Trailer": "Trailer"
},
"TvShows": {
"Popular": "Popular",
"Trending": "Trending",
"MostWatched": "Most Watched",
"MostAnticipated": "Most Anticipated",
"Results": "Results",
"AirDate": "Air Date:",
"AllSeasons": "All Seasons",
"FirstSeason": "First Season",
"LatestSeason": "Latest Season",
"Select": "Select ...",
"SubmitRequest": "Submit Request",
"Trending": "Tendências",
"MostWatched": "Mais Assistidos",
"MostAnticipated": "Mais Aguardados",
"Results": "Resultados",
"AirDate": "Data de Exibição:",
"AllSeasons": "Todas as Temporadas",
"FirstSeason": "Primeira temporada",
"LatestSeason": "Última Temporada",
"Select": "Selecionar...",
"SubmitRequest": "Enviar solicitação",
"Season": "Season {{seasonNumber}}",
"SelectAllInSeason": "Select All in Season {{seasonNumber}}"
}
"SelectAllInSeason": "Selecione Tudo na Temporada {{seasonNumber}}"
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Requests",
"Paragraph": "Below you can see yours and all other requests, as well as their download and approval status.",
"MoviesTab": "Movies",
"Title": "Solicitações",
"Paragraph": "Abaixo, você pode ver o seu e todos os outros pedidos, bem como o seu download e status de aprovação.",
"MoviesTab": "Filmes",
"ArtistName": "Artist",
"AlbumName": "Album Name",
"TvTab": "TV Shows",
"MusicTab": "Music",
"TvTab": "Séries",
"MusicTab": "Músicas",
"RequestedBy": "Requested By",
"Status": "Status",
"RequestStatus": "Request status",
"Denied": " Denied:",
"TheatricalRelease": "Theatrical Release: {{date}}",
"ReleaseDate": "Released: {{date}}",
"TheatricalReleaseSort": "Theatrical Release",
"DigitalRelease": "Digital Release: {{date}}",
"Denied": " Negados:",
"TheatricalRelease": "Lançamento nos Cinemas: {{date}}",
"ReleaseDate": "Lançado: {{date}}",
"TheatricalReleaseSort": "Lançamento nos Cinemas",
"DigitalRelease": "Lançamento Digital: {{date}}",
"RequestDate": "Request Date",
"QualityOverride": "Quality Override:",
"RootFolderOverride": "Root Folder Override:",
"ChangeRootFolder": "Root Folder",
"ChangeQualityProfile": "Quality Profile",
"MarkUnavailable": "Mark Unavailable",
"MarkAvailable": "Mark Available",
"Remove": "Remove",
"Deny": "Deny",
"QualityOverride": "Substituição de Qualidade:",
"RootFolderOverride": "Substituição da Pasta Raiz:",
"ChangeRootFolder": "Pasta Raiz",
"ChangeQualityProfile": "Perfil de Qualidade",
"MarkUnavailable": "Marcar como Indisponível",
"MarkAvailable": "Marcar como Disponível",
"Remove": "Remover",
"Deny": "Negar",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Season",
"GridTitle": "Title",
"GridTitle": "Título",
"AirDate": "AirDate",
"GridStatus": "Status",
"ReportIssue": "Report Issue",
"Filter": "Filter",
"Sort": "Sort",
"SeasonNumberHeading": "Season: {seasonNumber}",
"SortTitleAsc": "Title ▲",
"SortTitleDesc": "Title ▼",
"SortRequestDateAsc": "Request Date ▲",
"SortRequestDateDesc": "Request Date ▼",
"ReportIssue": "Relatar Problema",
"Filter": "Filtro",
"Sort": "Ordenar por",
"SeasonNumberHeading": "Temporada: {seasonNumber}",
"SortTitleAsc": "Título ▲",
"SortTitleDesc": "Título ▼",
"SortRequestDateAsc": "Data da Solicitação ▲",
"SortRequestDateDesc": "Data da Solicitação ▼",
"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}} solicitações restantes",
"NextDays": "Outra solicitação será adicionada em {{time}} dias",
"NextHours": "Outra solicitação será adicionada em {{time}} horas",
"NextMinutes": "Outra solicitação será adicionada em {{time}} minutos",
"NextMinute": "Outra solicitação será adicionada em {{time}} minuto"
},
"AllRequests": "All Requests",
"PendingRequests": "Pending Requests",
@ -179,28 +192,39 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Issues",
"PendingTitle": "Pending Issues",
"InProgressTitle": "In Progress Issues",
"ResolvedTitle": "Resolved Issues",
"ColumnTitle": "Title",
"Title": "Problemas",
"PendingTitle": "Problemas pendentes",
"InProgressTitle": "Problemas em resolução",
"ResolvedTitle": "Problemas Resolvidos",
"ColumnTitle": "Título",
"Count": "Count",
"Category": "Category",
"Category": "Categoria",
"Status": "Status",
"Details": "Details",
"Description": "Description",
"NoComments": "No Comments!",
"MarkInProgress": "Mark In Progress",
"MarkResolved": "Mark Resolved",
"SendMessageButton": "Send",
"Subject": "Subject",
"Comments": "Comments",
"WriteMessagePlaceholder": "Write your message here...",
"ReportedBy": "Reported By",
"Details": "Detalhes",
"Description": "Descrição",
"NoComments": "Sem Comentários!",
"MarkInProgress": "Marcar como em andamento",
"MarkResolved": "Marcar como resolvido",
"SendMessageButton": "Enviar",
"Subject": "Assunto",
"Comments": "Comentários",
"WriteMessagePlaceholder": "Escreva sua mensagem aqui...",
"ReportedBy": "Reportado por",
"IssueDialog": {
"Title": "Report an issue",
"DescriptionPlaceholder": "Please describe the issue",
@ -214,26 +238,31 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Clear Filter",
"FilterHeaderAvailability": "Availability",
"ClearFilter": "Limpar Filtro",
"FilterHeaderAvailability": "Disponibilidade",
"FilterHeaderRequestStatus": "Status",
"Approved": "Approved",
"PendingApproval": "Pending Approval"
"Approved": "Aprovado",
"PendingApproval": "Aprovação Pendente",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"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": "Séries: {{remaining}}/{{total}} restantes",
"MovieRemaining": "Filmes: {{remaining}}/{{total}} restantes",
"MusicRemaining": "Músicas: {{remaining}}/{{total}} restantes",
"TvDue": "Série: {{date}}",
"MovieDue": "Filme: {{date}}",
"MusicDue": "Música: {{date}}"
},
"Votes": {
"CompletedVotesTab": "Voted",
"VotesTab": "Votes Needed"
"CompletedVotesTab": "Votado",
"VotesTab": "Votos necessários"
},
"MediaDetails": {
"Denied": "Denied",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Status",
"Availability": "Availability",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Theatrical 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"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show"
}
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Popular",
"TrendingTab": "Trending",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Movies",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Welcome {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Продолжить",
"Available": "Доступно",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Частично доступно",
"Monitored": "Мониторинг",
"NotAvailable": "Недоступно",
@ -22,6 +24,7 @@
"RequestDenied": "Запрос отклонен",
"NotRequested": "Не запрошено",
"Requested": "Запрошено",
"Search": "Search",
"Request": "Запросить",
"Denied": "Отказано",
"Approve": "Одобрить",
@ -31,7 +34,10 @@
"Validation": "Пожалуйста, проверьте введенные значения"
},
"Cancel": "Cancel",
"Submit": "Submit"
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Адрес эл. почты",
@ -86,12 +92,15 @@
"MoviesTab": "Фильмы",
"TvTab": "Сериалы",
"MusicTab": "Музыка",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Рекомендации",
"NoResults": "Извините, мы ничего не нашли!",
"DigitalDate": "Дигитальный релиз: {{date}}",
"TheatricalRelease": "Релиз в кинотеатрах: {{date}}",
"ViewOnPlex": "Смотреть в Plex",
"ViewOnEmby": "Смотреть в Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Запрос на {{title}} успешно добавлен",
"Similar": "Похожие",
"Refine": "Уточнить",
@ -118,7 +127,10 @@
"SubmitRequest": "Подать запрос",
"Season": "Сезон {{seasonNumber}}",
"SelectAllInSeason": "Выбрать все в сезоне {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Запросы",
@ -146,6 +158,7 @@
"Remove": "Удалить",
"Deny": "Отклонить",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Сезон",
"GridTitle": "Название",
"AirDate": "Дата",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available"
}
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Проблемы",
@ -214,14 +238,19 @@
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted"
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Сбросить фильтр",
"FilterHeaderAvailability": "Доступность",
"FilterHeaderRequestStatus": "Статус",
"Approved": "Одобрено",
"PendingApproval": "В ожидании одобрения"
"PendingApproval": "В ожидании одобрения",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Сериалы: {{remaining}}/{{total}} осталось",
@ -247,36 +276,65 @@
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"Status": "Статус",
"Availability": "Доступность",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Переопределение корневой папки",
"QualityOverride": "Переопределение качества",
"Genres": "Genres",
"TheatricalRelease": "Релиз в кинотеатрах",
"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"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show"
}
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Популярное",
"TrendingTab": "Сейчас смотрят",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Фильмы",
"Combined": "Combined",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Добро пожаловать, {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode"
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Pokračovať",
"Available": "Dostupné",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Čiastočne dostupné",
"Monitored": "Sledované",
"NotAvailable": "Nie je k dispozícii",
@ -22,6 +24,7 @@
"RequestDenied": "Požiadavka zamietnutá",
"NotRequested": "Nepožiadané",
"Requested": "Požiadané",
"Search": "Search",
"Request": "Požiadať",
"Denied": "Zamietnuté",
"Approve": "Schválené",
@ -31,7 +34,10 @@
"Validation": "Skontrolujte zadaný obsah"
},
"Cancel": "Zrušiť",
"Submit": "Odoslať"
"Submit": "Odoslať",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "Emailová adresa",
@ -86,12 +92,15 @@
"MoviesTab": "Filmy",
"TvTab": "Seriály",
"MusicTab": "Hudba",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Návrhy",
"NoResults": "Ľutujeme, nenašli sme žiadne výsledky!",
"DigitalDate": "Online vydanie: {{date}}",
"TheatricalRelease": "Kino vydanie: {{date}}",
"ViewOnPlex": "Zobraziť na Plex",
"ViewOnEmby": "Zobraziť na Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Žiadosť o {{title}} bola úspešne pridaná",
"Similar": "Podobné",
"Refine": "Filtrovať",
@ -118,7 +127,10 @@
"SubmitRequest": "Poslať žiadosť",
"Season": "Séria {{seasonNumber}}",
"SelectAllInSeason": "Vybrať všetko v danej sérii {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Požiadavky",
@ -146,6 +158,7 @@
"Remove": "Odstrániť",
"Deny": "Odmietnuť",
"DenyReason": "Odmietnuť dôvod",
"DeniedReason": "Denied Reason",
"Season": "Séria",
"GridTitle": "Názov",
"AirDate": "Dátum vysielania",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Odstrániž požiadavku",
"Approve": "Schváliť žiadosť",
"ChangeAvailability": "Označiť k dispozícií"
}
"ChangeAvailability": "Označiť k dispozícií",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problémy",
@ -214,14 +238,19 @@
"MarkedAsResolved": "Tento problém bol označený ako vyriešený!",
"MarkedAsInProgress": "Tento problém bol označený ako v priebehu riešenia!",
"Delete": "Odstrániť problém",
"DeletedIssue": "Problém bol odstránený"
"DeletedIssue": "Problém bol odstránený",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Vymazať filter",
"FilterHeaderAvailability": "Dostupnosť",
"FilterHeaderRequestStatus": "Stav",
"Approved": "Schválené",
"PendingApproval": "Čaká na schválenie"
"PendingApproval": "Čaká na schválenie",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "Seriál: {{remaining}}/{{total}} zostávajúce",
@ -247,36 +276,65 @@
"ViewCollection": "Pozrieť zbierku",
"NotEnoughInfo": "Bohužiaľ, o tomto seriáli nie je k dispozícií dostatok informácií!",
"AdvancedOptions": "Pokročilé možnosti",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Výber profilu kvality",
"RootFolderSelect": "Výber koreňového priečinka",
"Status": "Stav",
"Availability": "Dostupnosť",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Požiadať stav",
"Quality": "Kvalita",
"RootFolderOverride": "Prepísanie koreňového priečinku",
"QualityOverride": "Prepísanie kvality",
"Genres": "Žánre",
"TheatricalRelease": "Kino vydanie",
"DigitalRelease": "Digitálne vydanie",
"Votes": "Hlasy",
"Runtime": "Dĺžka",
"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}} minút",
"Revenue": "Výnos",
"Budget": "Rozpočet",
"Keywords": "Kľúčové slová/Tagy",
"Revenue": "Revenue:",
"Budget": "Budget:",
"Keywords": "Keywords/Tags:",
"Casts": {
"CastTitle": "Obsadenie"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Požiadať všetky sezóny série.",
"FirstSeasonTooltip": "Požiadať iba prvú sezónu série.",
"LatestSeasonTooltip": "Požiadať iba poslednú sezónu série"
}
"LatestSeasonTooltip": "Požiadať iba poslednú sezónu série",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Populárne",
"TrendingTab": "Trendy",
"UpcomingTab": "Čoskoro",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filmy",
"Combined": "Kombinované",
"Tv": "Seriály",
@ -291,11 +349,36 @@
"FirstAired": "Prvýkrát odvysielané",
"Writer": "Autor",
"ExecProducer": "Výkonný producent"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Vitaj {{username}}!",
"OmbiLanguage": "Jazyk",
"DarkMode": "Tmavý režim"
"DarkMode": "Tmavý režim",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}

View file

@ -14,6 +14,8 @@
"Common": {
"ContinueButton": "Fortsätt",
"Available": "Tillgänglig",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "Delvis tillgänglig",
"Monitored": "Övervakad",
"NotAvailable": "Inte tillgänglig",
@ -22,6 +24,7 @@
"RequestDenied": "Efterfrågan nekas",
"NotRequested": "Inte begärd",
"Requested": "Begärd",
"Search": "Search",
"Request": "Begär",
"Denied": "Nekad",
"Approve": "Godkänn",
@ -31,7 +34,10 @@
"Validation": "Vänligen kontrollera din angivna värden"
},
"Cancel": "Avbryt",
"Submit": "Skicka in"
"Submit": "Skicka in",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "E-postadress",
@ -86,12 +92,15 @@
"MoviesTab": "Filmer",
"TvTab": "TV-serier",
"MusicTab": "Musik",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "Förslag",
"NoResults": "Tyvärr hittade vi inte några resultat!",
"DigitalDate": "Digitalt releasedatum: {{date}}",
"TheatricalRelease": "Biopremiär: {{date}}",
"ViewOnPlex": "Visa på Plex",
"ViewOnEmby": "Visa på Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "Begäran av {{title}} har lagts till",
"Similar": "Liknande",
"Refine": "Förfina",
@ -118,7 +127,10 @@
"SubmitRequest": "Skicka begäran",
"Season": "Säsong {{seasonNumber}}",
"SelectAllInSeason": "Välj alla avsnitt i säsong {{seasonNumber}}"
}
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "Efterfrågningar",
@ -146,6 +158,7 @@
"Remove": "Ta bort",
"Deny": "Neka",
"DenyReason": "Anledning för nekande",
"DeniedReason": "Denied Reason",
"Season": "Säsong",
"GridTitle": "Titel",
"AirDate": "Releasedatum",
@ -179,8 +192,19 @@
"RequestPanel": {
"Delete": "Ta bort förfrågan",
"Approve": "Godkänn begäran",
"ChangeAvailability": "Markera Tillgänglig"
}
"ChangeAvailability": "Markera Tillgänglig",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "Problem",
@ -214,14 +238,19 @@
"MarkedAsResolved": "Detta problem har nu markerats som löst!",
"MarkedAsInProgress": "Detta problem har nu markerats som på pågående!",
"Delete": "Ta bort problem",
"DeletedIssue": "Problemet har tagits bort"
"DeletedIssue": "Problemet har tagits bort",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "Rensa filter",
"FilterHeaderAvailability": "Tillgänglighet",
"FilterHeaderRequestStatus": "Status",
"Approved": "Godkänd",
"PendingApproval": "Väntar på godkännande"
"PendingApproval": "Väntar på godkännande",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "TV: {{remaining}}/{{total}} återstående",
@ -247,36 +276,65 @@
"ViewCollection": "Visa samling",
"NotEnoughInfo": "Tyvärr finns det inte tillräckligt med information om denna serie ännu!",
"AdvancedOptions": "Avancerade inställningar",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Välj en kvalitetsprofil",
"RootFolderSelect": "Välj en rotmapp",
"Status": "Status",
"Availability": "Tillgänglighet",
"LanguageProfileSelect": "Select A Language Profile",
"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": "Status för begäran",
"Quality": "Kvalitet",
"RootFolderOverride": "Rotmappsöverskridande",
"QualityOverride": "Kvalitétsöverskridande",
"Genres": "Genrer",
"TheatricalRelease": "Biopremiär",
"DigitalRelease": "Digital release",
"Votes": "Röster",
"Runtime": "Speltid",
"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}} minuter",
"Revenue": "Intäkter",
"Budget": "Budget",
"Keywords": "Nyckelord/Taggar",
"Revenue": "Revenue:",
"Budget": "Budget:",
"Keywords": "Keywords/Tags:",
"Casts": {
"CastTitle": "Rollista"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "Detta kommer att begära varje säsong för denna serie",
"FirstSeasonTooltip": "Detta kommer endast att begära den första säsongen för denna serie",
"LatestSeasonTooltip": "Detta kommer endast att begära den senaste säsongen för denna serie"
}
"LatestSeasonTooltip": "Detta kommer endast att begära den senaste säsongen för denna serie",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Populära",
"TrendingTab": "Hetast just nu",
"UpcomingTab": "Kommande",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Filmer",
"Combined": "Kombinerad",
"Tv": "TV",
@ -291,11 +349,36 @@
"FirstAired": "Sändes första gången",
"Writer": "Författare",
"ExecProducer": "Exekutiv producent"
}
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Välkommen {{username}}!",
"OmbiLanguage": "Språk",
"DarkMode": "Mörkt läge"
"DarkMode": "Mörkt läge",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}
}

View file

@ -0,0 +1,384 @@
{
"Login": {
"SignInButton": "登入",
"UsernamePlaceholder": "帳戶名稱",
"PasswordPlaceholder": "密碼",
"RememberMe": "記住我",
"SignInWith": "Sign in with {{appName}}",
"SignInWithPlex": "Sign in with Plex",
"ForgottenPassword": "忘記密碼了嗎?",
"Errors": {
"IncorrectCredentials": "用戶名或密碼錯誤"
}
},
"Common": {
"ContinueButton": "繼續",
"Available": "已收錄",
"Approved": "Approved",
"Pending": "Pending",
"PartiallyAvailable": "部分已收錄",
"Monitored": "監控中",
"NotAvailable": "未收錄",
"ProcessingRequest": "處理請求",
"PendingApproval": "等待批准",
"RequestDenied": "請求被拒絕",
"NotRequested": "未申請",
"Requested": "已申請",
"Search": "Search",
"Request": "請求內容",
"Denied": "拒絕",
"Approve": "確認",
"PartlyAvailable": "部分已收錄",
"ViewDetails": "View Details",
"Errors": {
"Validation": "請檢查您輸入的數值"
},
"Cancel": "Cancel",
"Submit": "Submit",
"Update": "Update",
"tvShow": "TV Show",
"movie": "Movie"
},
"PasswordReset": {
"EmailAddressPlaceholder": "電郵地址",
"ResetPasswordButton": "重設密碼"
},
"LandingPage": {
"OnlineHeading": "上線中",
"OnlineParagraph": "服務器當前離線。",
"PartiallyOnlineHeading": "部分上線",
"PartiallyOnlineParagraph": "媒體服務器部分在綫。",
"MultipleServersUnavailable": "{{totalServers}} 中有{{serversUnavailable}} 個服務器離綫。",
"SingleServerUnavailable": "在{{totalServers}} 服务器中,有{{serversUnavailable}} 服務器離綫。",
"OfflineHeading": "離線中",
"OfflineParagraph": "服務器當前離線。",
"CheckPageForUpdates": "檢查此頁面以獲取持續的站點更新。"
},
"NavigationBar": {
"Discover": "Discover",
"Search": "搜索",
"Requests": "請求",
"UserManagement": "Users",
"Issues": "問題",
"Vote": "投票",
"Donate": "贊助",
"DonateLibraryMaintainer": "捐贈給維護者",
"DonateTooltip": "This is how I convince my wife to let me spend my spare time developing Ombi 😁",
"UpdateAvailableTooltip": "有可用的更新",
"Settings": "設定",
"Welcome": "歡迎您 {{username}}",
"UpdateDetails": "更新詳細資料",
"Logout": "登出",
"OpenMobileApp": "打開手機應用程序",
"RecentlyAdded": "最近新增",
"ChangeTheme": "Change Theme",
"Calendar": "Calendar",
"UserPreferences": "Preferences",
"FeatureSuggestion": "Features",
"FeatureSuggestionTooltip": "Have a great new idea? Suggest it here!",
"Filter": {
"Movies": "Movies",
"TvShows": "TV Shows",
"Music": "Music",
"People": "People"
},
"MorningWelcome": "Good morning!",
"AfternoonWelcome": "Good afternoon!",
"EveningWelcome": "Good evening!"
},
"Search": {
"Title": "搜索",
"Paragraph": "想觀看目前無法觀看的內容嗎?沒問題,只需在下面搜索並請求它!",
"MoviesTab": "電影",
"TvTab": "電視節目",
"MusicTab": "音樂",
"AdvancedSearch": "You can fill in any of the below to discover new media. All of the results are sorted by popularity",
"AdvancedSearchHeader": "Advanced Search",
"Suggestions": "建議",
"NoResults": "抱歉,我們沒有找到任何結果!",
"DigitalDate": "數字發行:{{date}}",
"TheatricalRelease": "劇場版:{{date}}",
"ViewOnPlex": "Play On Plex",
"ViewOnEmby": "Play On Emby",
"ViewOnJellyfin": "Play On Jellyfin",
"RequestAdded": "已成功添加對 {{title}} 的請求",
"Similar": "相似",
"Refine": "精簡",
"SearchBarPlaceholder": "在這裡輸入以搜尋",
"Movies": {
"PopularMovies": "熱門電影",
"UpcomingMovies": "即將上映的電影",
"TopRatedMovies": "评级最高的电影",
"NowPlayingMovies": "正在上映的電影",
"HomePage": "首頁",
"Trailer": "預告片"
},
"TvShows": {
"Popular": "流行的",
"Trending": "趨勢",
"MostWatched": "最受矚目",
"MostAnticipated": "最期待",
"Results": "結果",
"AirDate": "播出日期:",
"AllSeasons": "全季",
"FirstSeason": "第一季",
"LatestSeason": "最新一季",
"Select": "選擇...",
"SubmitRequest": "送出請求",
"Season": "Season {{seasonNumber}}",
"SelectAllInSeason": "選擇第 {{seasonNumber}} 季中的全部"
},
"AdvancedSearchInstructions": "Please choose what type of media you are searching for:",
"YearOfRelease": "Year of Release",
"KeywordSearchingDisclaimer": "Please note that Keyword Searching is very hit and miss due to the inconsistent data in TheMovieDb"
},
"Requests": {
"Title": "請求",
"Paragraph": "您可以在下方看到您的請求和所有其他請求,以及它們的下載和批准狀態。",
"MoviesTab": "電影",
"ArtistName": "Artist",
"AlbumName": "Album Name",
"TvTab": "電視節目",
"MusicTab": "音樂",
"RequestedBy": "Requested By",
"Status": "Status",
"RequestStatus": "Request status",
"Denied": " 拒絕:",
"TheatricalRelease": "劇場版:{{date}}",
"ReleaseDate": "發佈日期:{{date}}",
"TheatricalReleaseSort": "劇場版",
"DigitalRelease": "數字發行:{{date}}",
"RequestDate": "Request Date",
"QualityOverride": "質量覆蓋:",
"RootFolderOverride": "根文件夾覆蓋:",
"ChangeRootFolder": "根文件夹",
"ChangeQualityProfile": "質量設置",
"MarkUnavailable": "標記未收錄",
"MarkAvailable": "標記已收錄",
"Remove": "移除",
"Deny": "拒絕",
"DenyReason": "Deny Reason",
"DeniedReason": "Denied Reason",
"Season": "Season",
"GridTitle": "標題",
"AirDate": "Air Date",
"GridStatus": "狀態",
"ReportIssue": "回報問題",
"Filter": "篩選",
"Sort": "分類",
"SeasonNumberHeading": "季: {seasonNumber}",
"SortTitleAsc": "標題 ▲",
"SortTitleDesc": "標題 ▼",
"SortRequestDateAsc": "请求日期 ▲",
"SortRequestDateDesc": "请求日期 ▼",
"SortStatusAsc": "狀態 ▲",
"SortStatusDesc": "狀態 ▼",
"Remaining": {
"Quota": "{{remaining}}/{{total}} 個剩餘請求",
"NextDays": "將在 {{time}} 天內添加另一個請求",
"NextHours": "將在 {{time}} 小時內添加另一個請求",
"NextMinutes": "將在 {{time}} 分鐘內添加另一個請求",
"NextMinute": "將在 {{time}} 分鐘內添加另一個請求"
},
"AllRequests": "All Requests",
"PendingRequests": "Pending Requests",
"ProcessingRequests": "Processing Requests",
"AvailableRequests": "Available Requests",
"DeniedRequests": "Denied Requests",
"RequestsToDisplay": "Requests to display",
"RequestsTitle": "Title",
"Details": "Details",
"Options": "Options",
"RequestPanel": {
"Delete": "Delete Request",
"Approve": "Approve Request",
"ChangeAvailability": "Mark Available",
"Deleted": "Successfully deleted selected items",
"Approved": "Successfully approved selected items"
},
"SuccessfullyApproved": "Successfully Approved",
"NowAvailable": "Request is now available",
"NowUnavailable": "Request is now unavailable",
"SuccessfullyReprocessed": "Successfully Re-processed the request",
"DeniedRequest": "Denied Request",
"RequestCollection": "Request Collection",
"CollectionSuccesfullyAdded": "The collection {{name}} has been successfully added!",
"NeedToSelectEpisodes": "You need to select some episodes!",
"RequestAddedSuccessfully": "Request for {{title}} has been added successfully"
},
"Issues": {
"Title": "問題",
"PendingTitle": "未決問題",
"InProgressTitle": "進行中的問題",
"ResolvedTitle": "已解決的問題",
"ColumnTitle": "標題",
"Count": "Count",
"Category": "分類",
"Status": "狀態",
"Details": "詳細資料",
"Description": "描述信息",
"NoComments": "暫無評論!",
"MarkInProgress": "標記為進行中",
"MarkResolved": "標記為已解決",
"SendMessageButton": "發送",
"Subject": "主題",
"Comments": "評論",
"WriteMessagePlaceholder": "在這裡撰寫訊息...",
"ReportedBy": "報告者:",
"IssueDialog": {
"Title": "Report an issue",
"DescriptionPlaceholder": "Please describe the issue",
"TitlePlaceholder": "Short title of your issue",
"SelectCategory": "Select Category",
"IssueCreated": "Issue has been created"
},
"Outstanding": "There are outstanding issues",
"ResolvedDate": "Resolved date",
"CreatedDate": "Raised on",
"MarkedAsResolved": "This issue has now been marked as resolved!",
"MarkedAsInProgress": "This issue has now been marked as in progress!",
"Delete": "Delete issue",
"DeletedIssue": "Issue has been deleted",
"Chat": "Chat",
"Requested": "Requested",
"UserOnDate": "{{user}} on {{date}}"
},
"Filter": {
"ClearFilter": "清除篩選條件",
"FilterHeaderAvailability": "可用性",
"FilterHeaderRequestStatus": "狀態",
"Approved": "已通過審核",
"PendingApproval": "待決審核",
"WatchProviders": "Watch Providers",
"Keywords": "Keywords"
},
"UserManagment": {
"TvRemaining": "電視:{{remaining}}/{{total}} 剩餘",
"MovieRemaining": "電影:{{remaining}}/{{total}} 剩餘",
"MusicRemaining": "音樂:{{remaining}}/{{total}} 剩餘",
"TvDue": "電視:{{date}}",
"MovieDue": "電影:{{date}}",
"MusicDue": "音樂:{{date}}"
},
"Votes": {
"CompletedVotesTab": "已投票",
"VotesTab": "需要投票"
},
"MediaDetails": {
"Denied": "Denied",
"RecommendationsTitle": "Recommendations",
"SimilarTitle": "Similar",
"VideosTitle": "Videos",
"AlbumsTitle": "Albums",
"RequestAllAlbums": "Request All Albums",
"ClearSelection": "Clear Selection",
"RequestSelectedAlbums": "Request Selected Albums",
"ViewCollection": "View Collection",
"NotEnoughInfo": "Unfortunately there is not enough information about this show yet!",
"AdvancedOptions": "Advanced Options",
"AutoApproveOptions": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTv": "You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"AutoApproveOptionsTvShort": "You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it! Please note, this is optional, just press Request to skip!",
"QualityProfilesSelect": "Select A Quality Profile",
"RootFolderSelect": "Select A Root Folder",
"LanguageProfileSelect": "Select A Language Profile",
"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:",
"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:",
"Casts": {
"CastTitle": "Cast"
},
"EpisodeSelector": {
"AllSeasonsTooltip": "This will request every season for this show",
"FirstSeasonTooltip": "This will only request the First Season for this show",
"LatestSeasonTooltip": "This will only request the Latest Season for this show",
"NoEpisodes": "There unfortunately is no episode data for this show yet!",
"SeasonNumber": "Season {{number}}"
},
"SonarrConfiguration": "Sonarr Configuration",
"RadarrConfiguration": "Radarr Configuration",
"RequestOnBehalf": "Request on behalf of",
"PleaseSelectUser": "Please select a user",
"StreamingOn": "Streaming On:",
"RequestedBy": "Requested By:",
"RequestDate": "Request Date:",
"DeniedReason": "Denied Reason:",
"ReProcessRequest": "Re-Process Request"
},
"Discovery": {
"PopularTab": "Popular",
"TrendingTab": "Trending",
"UpcomingTab": "Upcoming",
"SeasonalTab": "Seasonal",
"RecentlyRequestedTab": "Recently Requested",
"Movies": "Movies",
"Combined": "Combined",
"Tv": "TV",
"CardDetails": {
"Availability": "Availability",
"Studio": "Studio",
"Network": "Network",
"UnknownNetwork": "Unknown",
"RequestStatus": "Request Status",
"Director": "Director",
"InCinemas": "In Cinemas",
"FirstAired": "First Aired",
"Writer": "Writer",
"ExecProducer": "Exec Producer"
},
"NoSearch": "Sorry, nothing matches your search!"
},
"UserPreferences": {
"Welcome": "Welcome {{username}}!",
"OmbiLanguage": "Language",
"DarkMode": "Dark Mode",
"Updated": "Successfully Updated",
"StreamingCountry": "Streaming Country",
"StreamingCountryDescription": "This is the country code that we will display streaming information for. If you are in the US please select US and you will have US related streaming information.",
"LanguageDescription": "This is the language you would like the Ombi interface to be displayed in.",
"MobileQRCode": "Mobile QR Code",
"LegacyApp": "Launch Legacy App",
"NoQrCode": "Please contact your administrator to enable QR codes",
"UserType": "User Type:",
"ChangeDetails": "Change Details",
"NeedCurrentPassword": "You need your current password to make any changes here",
"CurrentPassword": "Current Password",
"EmailAddress": "Email Address",
"NewPassword": "New Password",
"NewPasswordConfirm": "New Password Confirm",
"Security": "Security",
"Profile": "Profile",
"UpdatedYourInformation": "Updated your information"
},
"UserTypeLabel": {
"1": "Local User",
"2": "Plex User",
"3": "Emby User",
"4": "Emby Connect User",
"5": "Jellyfin User"
}
}

View file

@ -23,6 +23,7 @@
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
import 'cypress-wait-until';
Cypress.Commands.add("landingSettings", (enabled) => {
@ -66,7 +67,7 @@ Cypress.Commands.add('removeLogin', () => {
});
Cypress.Commands.add('verifyNotification', (text) => {
cy.contains(text);
cy.contains(text, {timeout: 10000});
});
Cypress.Commands.add('createUser', (username, password, claims) => {

View file

@ -10,7 +10,7 @@ describe("Movie Details Buttons", () => {
Page.adminOptionsDialog.requestButton.click();
cy.verifyNotification("Tom & Jerry (2021) has been successfully added");
cy.verifyNotification("Request for Tom & Jerry has been added successfully");
Page.requestedButton.should("be.visible");
});
@ -26,7 +26,7 @@ describe("Movie Details Buttons", () => {
Page.visit("651571");
Page.requestButton.click();
cy.verifyNotification("Breach (2020) has been successfully added");
cy.verifyNotification("Request for Breach has been added successfully");
Page.requestedButton.should("be.visible");
});
@ -62,7 +62,7 @@ describe("Movie Details Buttons", () => {
Page.visit("793723");
Page.requestButton.click();
cy.verifyNotification("Sentinelle (2021) has been successfully added");
cy.verifyNotification("Request for Sentinelle has been added successfully");
Page.requestedButton.should("be.visible");
@ -90,7 +90,7 @@ describe("Movie Details Buttons", () => {
Page.adminOptionsDialog.isOpen();
Page.adminOptionsDialog.requestButton.click();
cy.verifyNotification(
"Harry Potter and the Deathly Hallows: Part 1 (2010) has been successfully added"
"Request for Harry Potter and the Deathly Hallows: Part 1 has been added successfully"
);
cy.reload();
@ -98,6 +98,10 @@ describe("Movie Details Buttons", () => {
Page.markAvailableButton.should("exist");
Page.markAvailableButton.click();
cy.waitUntil(() => {
return Page.availableButton.should("be.visible");
})
cy.verifyNotification("Request is now available");
Page.availableButton.should("exist");
});
@ -111,7 +115,7 @@ describe("Movie Details Buttons", () => {
Page.adminOptionsDialog.isOpen();
Page.adminOptionsDialog.requestButton.click();
cy.verifyNotification(
"Harry Potter and the Philosopher's Stone (2001) has been successfully added"
"Request for Harry Potter and the Philosopher's Stone has been added successfully"
);
cy.reload();

View file

@ -42,7 +42,7 @@ describe("Discover Cards Requests Tests", () => {
Page.adminOptionsDialog.isOpen();
Page.adminOptionsDialog.requestButton.click();
cy.verifyNotification("has been successfully added!");
cy.verifyNotification("has been added successfully");
card.requestButton.should("not.exist");
card.availabilityText.should("have.text", "Pending");
@ -91,7 +91,7 @@ describe("Discover Cards Requests Tests", () => {
card.requestButton.should("be.visible");
card.requestButton.click();
cy.verifyNotification("has been successfully added!");
cy.verifyNotification("has been added successfully");
card.requestButton.should("not.exist");
card.availabilityText.should("have.text", "Pending");

View file

@ -1,3 +1,3 @@
{
"version": "4.2.10"
"version": "4.3.0"
}