Compare commits

..

24 Commits

Author SHA1 Message Date
Bogdan
c77d820763 Fix tests for storing last search time for books 2024-02-17 23:47:11 +02:00
Servarr
3327ed0f49 Automated API Docs update 2024-02-17 23:47:03 +02:00
Mark McDowall
44009e980b Fixed: A potential issue when extra files for multiple authors have the same relative path
(cherry picked from commit a6a68b4cae7688506c45ff6cf10989fe6596c274)

Closes #1650
2024-02-17 23:09:31 +02:00
Mark McDowall
02fd733223 Fixed: Don't convert author/book selection filter to lower case in state
(cherry picked from commit ca52eb76ca2e286479f1803f399d5f5b563cfb41)

Closes #692
2024-02-17 23:06:18 +02:00
Bogdan
2fa9576d05 New: Missing/Cutoff Unmet searches will search for books that haven't been searched recently first
Closes #2088

Simplify filter expression for cutoff unmet album search
2024-02-17 23:04:22 +02:00
Mark McDowall
c7ee278ee4 New: Store last search time for BookSearch
(cherry picked from commit 9af57c6786eedd9beda4e1c6b8cdca20d165b622)
2024-02-17 22:58:01 +02:00
Bogdan
d72c27ceed Fixed: Refresh tags state to clear removed tags by housekeeping
(cherry picked from commit 2510f44c25bee6fede27d9fa2b9614176d12cb55)

(cherry picked from commit ed27bcf213bdbc5cede650f89eb65593dc9631b4)
2024-02-14 03:11:46 +02:00
Bogdan
7a20fe2288 Improve messaging on indexer specified download client is not available
(cherry picked from commit 84e657482d37eed35f09c6dab3c2b8b5ebd5bac4)
2024-02-14 03:11:36 +02:00
Bogdan
042b62a2a5 Show download client ID as hint in select options
(cherry picked from commit c0b17d9345367ab6500b7cca6bb70c1e3b930284)
2024-02-14 03:11:22 +02:00
abcasada
88141e9d63 Hints for week column and short dates in UI settings
(cherry picked from commit 4558f552820b52bb1f9cd97fdabe03654ce9924a)

(cherry picked from commit f1d343218cdbd5a63abeb2eb97bba1105dc8035d)
2024-02-14 03:11:11 +02:00
Weblate
7fa1114edf Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Magyar <kochnorbert@icloud.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translation: Servarr/Readarr
2024-02-12 00:54:08 +02:00
Bogdan
d4262532e2 Ignore tests temporarily 2024-02-12 00:52:33 +02:00
Bogdan
a21f83aae1 Some translations for Manual Import dropdowns 2024-02-12 00:05:20 +02:00
Bogdan
d659e86a7d Fixed: Progress bar for authors and books 2024-02-12 00:04:45 +02:00
Weblate
0b924005ec Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Hicabi Erdem <bilgi@hicabierdem.com>
Co-authored-by: Magyar <kochnorbert@icloud.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: aghus <aghus.m@outlook.com>
Co-authored-by: bai0012 <baicongrui@gmail.com>
Co-authored-by: savin-msk <ns@a77.io>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translation: Servarr/Readarr
2024-02-11 05:10:12 +02:00
Mark McDowall
ba2fad5d9c Fixed: Don't use sub folder to check for free disk space for update
(cherry picked from commit f722d49b3a9efefa65bef1b24d90be9332ca62ea)

Closes #3299
2024-02-07 09:00:22 +02:00
Mark McDowall
58416cee67 New: Log database engine version on startup
(cherry picked from commit 6ab1d8e16b29e98b4d2ebb68e0356f6f2d3a2c10)
2024-02-07 08:58:46 +02:00
Mark McDowall
38124313c7 Fixed: Redirecting after login
(cherry picked from commit 745b92daf4bf4b9562ffe52dad84a12a5561add5)
2024-02-07 08:58:33 +02:00
Bogdan
3fc9f6c0a4 Bump version to 0.3.19 2024-02-04 12:55:21 +02:00
Weblate
79ce5abd53 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: aghus <aghus.m@outlook.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2024-02-03 22:42:17 +02:00
Weblate
7f01d597cb Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Crocmou <slaanesh8854@gmail.com>
Co-authored-by: Magyar <kochnorbert@icloud.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Stas Panasiuk <temnyip@gmail.com>
Co-authored-by: fordas <fordas15@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translation: Servarr/Readarr
2024-02-01 08:22:34 +02:00
Bogdan
31f35df71d Only bind shortcut for pending changes confirmation when it's shown
(cherry picked from commit ded7c3c6e2459f041297d479c788febc5d061854)
2024-02-01 08:21:58 +02:00
Mark McDowall
faeb78801c Fixed: Monitored status being reset after refresh when author is edited manually
Resolves #54
2024-01-30 19:36:11 +02:00
Bogdan
bd5695f2dd Bump version to 0.3.18 2024-01-28 09:10:32 +02:00
53 changed files with 563 additions and 325 deletions

View File

@@ -9,7 +9,7 @@ variables:
testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '0.3.17'
majorVersion: '0.3.19'
minorVersion: $[counter('minorVersion', 1)]
readarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(readarrVersion)'

View File

@@ -90,7 +90,7 @@ class AuthorIndexOverview extends Component {
status,
titleSlug,
nextAiring,
statistics,
statistics = {},
images,
posterWidth,
posterHeight,
@@ -113,10 +113,11 @@ class AuthorIndexOverview extends Component {
} = this.props;
const {
bookCount,
sizeOnDisk,
bookFileCount,
totalBookCount
bookCount = 0,
availableBookCount = 0,
bookFileCount = 0,
totalBookCount = 0,
sizeOnDisk = 0
} = statistics;
const {
@@ -179,6 +180,7 @@ class AuthorIndexOverview extends Component {
monitored={monitored}
status={status}
bookCount={bookCount}
availableBookCount={availableBookCount}
bookFileCount={bookFileCount}
totalBookCount={totalBookCount}
posterWidth={posterWidth}

View File

@@ -85,7 +85,7 @@ class AuthorIndexPoster extends Component {
titleSlug,
status,
nextAiring,
statistics,
statistics = {},
images,
posterWidth,
posterHeight,
@@ -110,10 +110,11 @@ class AuthorIndexPoster extends Component {
} = this.props;
const {
bookCount,
sizeOnDisk,
bookFileCount,
totalBookCount
bookCount = 0,
availableBookCount = 0,
bookFileCount = 0,
totalBookCount = 0,
sizeOnDisk = 0
} = statistics;
const {
@@ -213,6 +214,7 @@ class AuthorIndexPoster extends Component {
monitored={monitored}
status={status}
bookCount={bookCount}
availableBookCount={availableBookCount}
bookFileCount={bookFileCount}
totalBookCount={totalBookCount}
posterWidth={posterWidth}

View File

@@ -11,14 +11,15 @@ function AuthorIndexProgressBar(props) {
monitored,
status,
bookCount,
availableBookCount,
bookFileCount,
totalBookCount,
posterWidth,
detailedProgressBar
} = props;
const progress = bookCount ? bookCount / totalBookCount * 100 : 100;
const text = `${bookCount} / ${totalBookCount}`;
const progress = bookCount ? (availableBookCount / bookCount) * 100 : 100;
const text = `${availableBookCount} / ${bookCount}`;
return (
<ProgressBar
@@ -29,7 +30,7 @@ function AuthorIndexProgressBar(props) {
size={detailedProgressBar ? sizes.MEDIUM : sizes.SMALL}
showText={detailedProgressBar}
text={text}
title={translate('BookFileCountBookCountTotalTotalBookCountInterp', [bookFileCount, bookCount, totalBookCount])}
title={translate('AuthorProgressBarText', { bookCount, availableBookCount, bookFileCount, totalBookCount })}
width={posterWidth}
/>
);
@@ -39,6 +40,7 @@ AuthorIndexProgressBar.propTypes = {
monitored: PropTypes.bool.isRequired,
status: PropTypes.string.isRequired,
bookCount: PropTypes.number.isRequired,
availableBookCount: PropTypes.number.isRequired,
bookFileCount: PropTypes.number.isRequired,
totalBookCount: PropTypes.number.isRequired,
posterWidth: PropTypes.number.isRequired,

View File

@@ -90,7 +90,7 @@ class AuthorIndexRow extends Component {
nextBook,
lastBook,
added,
statistics,
statistics = {},
genres,
ratings,
path,
@@ -110,10 +110,11 @@ class AuthorIndexRow extends Component {
} = this.props;
const {
bookCount,
bookFileCount,
totalBookCount,
sizeOnDisk
bookCount = 0,
availableBookCount = 0,
bookFileCount = 0,
totalBookCount = 0,
sizeOnDisk = 0
} = statistics;
const {
@@ -286,7 +287,7 @@ class AuthorIndexRow extends Component {
}
if (name === 'bookProgress') {
const progress = bookCount ? bookFileCount / bookCount * 100 : 100;
const progress = bookCount ? (availableBookCount / bookCount) * 100 : 100;
return (
<VirtualTableRowCell
@@ -297,8 +298,8 @@ class AuthorIndexRow extends Component {
progress={progress}
kind={getProgressBarKind(status, monitored, progress)}
showText={true}
text={`${bookCount} / ${totalBookCount}`}
title={translate('BookFileCountBookCountTotalTotalBookCountInterp', [bookFileCount, bookCount, totalBookCount])}
text={`${availableBookCount} / ${bookCount}`}
title={translate('AuthorProgressBarText', { bookCount, availableBookCount, bookFileCount, totalBookCount })}
width={125}
/>
</VirtualTableRowCell>

View File

@@ -16,8 +16,8 @@ function BookIndexProgressBar(props) {
detailedProgressBar
} = props;
const progress = bookCount ? bookFileCount / totalBookCount * 100 : 0;
const text = `${bookFileCount} / ${bookCount}`;
const progress = bookFileCount && bookCount ? (totalBookCount / bookCount) * 100 : 0;
const text = `${bookFileCount ? bookCount : 0} / ${totalBookCount}`;
return (
<ProgressBar
@@ -28,7 +28,11 @@ function BookIndexProgressBar(props) {
size={detailedProgressBar ? sizes.MEDIUM : sizes.SMALL}
showText={detailedProgressBar}
text={text}
title={translate('BookFileCountBookCountTotalTotalBookCountInterp', [bookFileCount, bookCount, totalBookCount])}
title={translate('BookProgressBarText', {
bookCount: bookFileCount ? bookCount : 0,
bookFileCount,
totalBookCount
})}
width={posterWidth}
/>
);

View File

@@ -27,14 +27,15 @@ class BookshelfBook extends Component {
title,
disambiguation,
monitored,
statistics,
statistics = {},
isSaving
} = this.props;
const {
bookFileCount,
totalBookCount,
percentOfBooks
bookCount = 0,
bookFileCount = 0,
totalBookCount = 0,
percentOfBooks = 0
} = statistics;
return (
@@ -59,10 +60,14 @@ class BookshelfBook extends Component {
percentOfBooks < 100 && monitored && styles.missingWanted,
percentOfBooks === 100 && styles.allBooks
)}
title={translate('BookFileCounttotalBookCountBooksDownloadedInterp', [bookFileCount, totalBookCount])}
title={translate('BookProgressBarText', {
bookCount: bookFileCount ? bookCount : 0,
bookFileCount,
totalBookCount
})}
>
{
totalBookCount === 0 ? '0/0' : `${bookFileCount}/${totalBookCount}`
totalBookCount === 0 ? '0/0' : `${bookFileCount ? bookCount : 0}/${totalBookCount}`
}
</div>
</div>

View File

@@ -25,7 +25,8 @@ function createMapStateToProps() {
const values = _.map(filteredItems.sort(sortByName), (downloadClient) => {
return {
key: downloadClient.id,
value: downloadClient.name
value: downloadClient.name,
hint: `(${downloadClient.id})`
};
});

View File

@@ -29,7 +29,7 @@ class SelectAuthorModalContent extends Component {
// Listeners
onFilterChange = ({ value }) => {
this.setState({ filter: value.toLowerCase() });
this.setState({ filter: value });
};
//
@@ -43,6 +43,7 @@ class SelectAuthorModalContent extends Component {
} = this.props;
const filter = this.state.filter;
const filterLower = filter.toLowerCase();
return (
<ModalContent onModalClose={onModalClose}>
@@ -66,7 +67,7 @@ class SelectAuthorModalContent extends Component {
<Scroller className={styles.scroller}>
{
items.map((item) => {
return item.authorName.toLowerCase().includes(filter) ?
return item.authorName.toLowerCase().includes(filterLower) ?
(
<SelectAuthorRow
key={item.id}

View File

@@ -52,7 +52,7 @@ class SelectBookModalContent extends Component {
// Listeners
onFilterChange = ({ value }) => {
this.setState({ filter: value.toLowerCase() });
this.setState({ filter: value });
};
//
@@ -68,6 +68,7 @@ class SelectBookModalContent extends Component {
} = this.props;
const filter = this.state.filter;
const filterLower = filter.toLowerCase();
return (
<ModalContent onModalClose={onModalClose}>
@@ -101,7 +102,7 @@ class SelectBookModalContent extends Component {
<TableBody>
{
items.map((item) => {
return item.title.toLowerCase().includes(filter) ?
return item.title.toLowerCase().includes(filterLower) ?
(
<SelectBookRow
key={item.id}

View File

@@ -295,11 +295,11 @@ class InteractiveImportModalContent extends Component {
const errorMessage = getErrorMessage(error, 'Unable to load manual import items');
const bulkSelectOptions = [
{ key: SELECT, value: 'Select...', disabled: true },
{ key: BOOK, value: 'Select Book' },
{ key: EDITION, value: 'Select Edition' },
{ key: QUALITY, value: 'Select Quality' },
{ key: RELEASE_GROUP, value: 'Select ReleaseGroup' }
{ key: SELECT, value: translate('SelectDropdown'), disabled: true },
{ key: BOOK, value: translate('SelectBook') },
{ key: EDITION, value: translate('SelectEdition') },
{ key: QUALITY, value: translate('SelectQuality') },
{ key: RELEASE_GROUP, value: translate('SelectReleaseGroup') }
];
if (allowAuthorChange) {

View File

@@ -14,12 +14,17 @@ function PendingChangesModal(props) {
isOpen,
onConfirm,
onCancel,
bindShortcut
bindShortcut,
unbindShortcut
} = props;
useEffect(() => {
bindShortcut('enter', onConfirm);
}, [bindShortcut, onConfirm]);
if (isOpen) {
bindShortcut('enter', onConfirm);
return () => unbindShortcut('enter', onConfirm);
}
}, [bindShortcut, unbindShortcut, isOpen, onConfirm]);
return (
<Modal
@@ -60,7 +65,8 @@ PendingChangesModal.propTypes = {
kind: PropTypes.oneOf(kinds.all),
onConfirm: PropTypes.func.isRequired,
onCancel: PropTypes.func.isRequired,
bindShortcut: PropTypes.func.isRequired
bindShortcut: PropTypes.func.isRequired,
unbindShortcut: PropTypes.func.isRequired
};
PendingChangesModal.defaultProps = {

View File

@@ -3,7 +3,7 @@ import React, { Component } from 'react';
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
import { fetchDelayProfiles, fetchDownloadClients, fetchImportLists, fetchIndexers, fetchNotifications, fetchReleaseProfiles } from 'Store/Actions/settingsActions';
import { fetchTagDetails } from 'Store/Actions/tagActions';
import { fetchTagDetails, fetchTags } from 'Store/Actions/tagActions';
import Tags from './Tags';
function createMapStateToProps() {
@@ -25,6 +25,7 @@ function createMapStateToProps() {
}
const mapDispatchToProps = {
dispatchFetchTags: fetchTags,
dispatchFetchTagDetails: fetchTagDetails,
dispatchFetchDelayProfiles: fetchDelayProfiles,
dispatchFetchImportLists: fetchImportLists,
@@ -41,6 +42,7 @@ class MetadatasConnector extends Component {
componentDidMount() {
const {
dispatchFetchTags,
dispatchFetchTagDetails,
dispatchFetchDelayProfiles,
dispatchFetchImportLists,
@@ -50,6 +52,7 @@ class MetadatasConnector extends Component {
dispatchFetchDownloadClients
} = this.props;
dispatchFetchTags();
dispatchFetchTagDetails();
dispatchFetchDelayProfiles();
dispatchFetchImportLists();
@@ -72,6 +75,7 @@ class MetadatasConnector extends Component {
}
MetadatasConnector.propTypes = {
dispatchFetchTags: PropTypes.func.isRequired,
dispatchFetchTagDetails: PropTypes.func.isRequired,
dispatchFetchDelayProfiles: PropTypes.func.isRequired,
dispatchFetchImportLists: PropTypes.func.isRequired,

View File

@@ -21,19 +21,19 @@ export const firstDayOfWeekOptions = [
];
export const weekColumnOptions = [
{ key: 'ddd M/D', value: 'Tue 3/25' },
{ key: 'ddd MM/DD', value: 'Tue 03/25' },
{ key: 'ddd D/M', value: 'Tue 25/3' },
{ key: 'ddd DD/MM', value: 'Tue 25/03' }
{ key: 'ddd M/D', value: 'Tue 3/25', hint: 'ddd M/D' },
{ key: 'ddd MM/DD', value: 'Tue 03/25', hint: 'ddd MM/DD' },
{ key: 'ddd D/M', value: 'Tue 25/3', hint: 'ddd D/M' },
{ key: 'ddd DD/MM', value: 'Tue 25/03', hint: 'ddd DD/MM' }
];
const shortDateFormatOptions = [
{ key: 'MMM D YYYY', value: 'Mar 25 2014' },
{ key: 'DD MMM YYYY', value: '25 Mar 2014' },
{ key: 'MM/D/YYYY', value: '03/25/2014' },
{ key: 'MM/DD/YYYY', value: '03/25/2014' },
{ key: 'DD/MM/YYYY', value: '25/03/2014' },
{ key: 'YYYY-MM-DD', value: '2014-03-25' }
{ key: 'MMM D YYYY', value: 'Mar 25 2014', hint: 'MMM D YYYY' },
{ key: 'DD MMM YYYY', value: '25 Mar 2014', hint: 'DD MMM YYYY' },
{ key: 'MM/D/YYYY', value: '03/25/2014', hint: 'MM/D/YYYY' },
{ key: 'MM/DD/YYYY', value: '03/25/2014', hint: 'MM/DD/YYYY' },
{ key: 'DD/MM/YYYY', value: '25/03/2014', hint: 'DD/MM/YYYY' },
{ key: 'YYYY-MM-DD', value: '2014-03-25', hint: 'YYYY-MM-DD' }
];
const longDateFormatOptions = [

View File

@@ -13,7 +13,7 @@ using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class BookInfoProxyFixture : CoreTest<BookInfoProxy>
{
private MetadataProfile _metadataProfile;

View File

@@ -15,7 +15,7 @@ using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class BookInfoProxySearchFixture : CoreTest<BookInfoProxy>
{
[SetUp]

View File

@@ -34,6 +34,7 @@ namespace NzbDrone.Core.Books
public List<string> Genres { get; set; }
public List<int> RelatedBooks { get; set; }
public Ratings Ratings { get; set; }
public DateTime? LastSearchTime { get; set; }
// These are Readarr generated/config
public string CleanTitle { get; set; }
@@ -90,6 +91,7 @@ namespace NzbDrone.Core.Books
Monitored = other.Monitored;
AnyEditionOk = other.AnyEditionOk;
LastInfoSync = other.LastInfoSync;
LastSearchTime = other.LastSearchTime;
Added = other.Added;
AddOptions = other.AddOptions;
}

View File

@@ -225,7 +225,12 @@ namespace NzbDrone.Core.Books
public Author UpdateAuthor(Author author)
{
_cache.Clear();
var storedAuthor = GetAuthor(author.Id);
// Never update AddOptions when updating an author, keep it the same as the existing stored author.
author.AddOptions = storedAuthor.AddOptions;
var updatedAuthor = _authorRepository.Update(author);
_eventAggregator.PublishEvent(new AuthorEditedEvent(updatedAuthor, storedAuthor));

View File

@@ -31,6 +31,7 @@ namespace NzbDrone.Core.Books
Book UpdateBook(Book book);
void SetBookMonitored(int bookId, bool monitored);
void SetMonitored(IEnumerable<int> ids, bool monitored);
void UpdateLastSearchTime(List<Book> books);
PagingSpec<Book> BooksWithoutFiles(PagingSpec<Book> pagingSpec);
List<Book> BooksBetweenDates(DateTime start, DateTime end, bool includeUnmonitored);
List<Book> AuthorBooksBetweenDates(Author author, DateTime start, DateTime end, bool includeUnmonitored);
@@ -303,6 +304,11 @@ namespace NzbDrone.Core.Books
}
}
public void UpdateLastSearchTime(List<Book> books)
{
_bookRepository.SetFields(books, b => b.LastSearchTime);
}
public void Handle(AuthorDeletedEvent message)
{
var books = GetBooksByAuthorMetadataId(message.Author.AuthorMetadataId);

View File

@@ -0,0 +1,69 @@
using System.Data;
using System.Text.RegularExpressions;
using FluentMigrator;
using NLog;
using NzbDrone.Common.Instrumentation;
namespace NzbDrone.Core.Datastore.Migration
{
[Maintenance(MigrationStage.BeforeAll, TransactionBehavior.None)]
public class DatabaseEngineVersionCheck : FluentMigrator.Migration
{
protected readonly Logger _logger;
public DatabaseEngineVersionCheck()
{
_logger = NzbDroneLogger.GetLogger(this);
}
public override void Up()
{
IfDatabase("sqlite").Execute.WithConnection(LogSqliteVersion);
IfDatabase("postgres").Execute.WithConnection(LogPostgresVersion);
}
public override void Down()
{
// No-op
}
private void LogSqliteVersion(IDbConnection conn, IDbTransaction tran)
{
using (var versionCmd = conn.CreateCommand())
{
versionCmd.Transaction = tran;
versionCmd.CommandText = "SELECT sqlite_version();";
using (var reader = versionCmd.ExecuteReader())
{
while (reader.Read())
{
var version = reader.GetString(0);
_logger.Info("SQLite {0}", version);
}
}
}
}
private void LogPostgresVersion(IDbConnection conn, IDbTransaction tran)
{
using (var versionCmd = conn.CreateCommand())
{
versionCmd.Transaction = tran;
versionCmd.CommandText = "SHOW server_version";
using (var reader = versionCmd.ExecuteReader())
{
while (reader.Read())
{
var version = reader.GetString(0);
var cleanVersion = Regex.Replace(version, @"\(.*?\)", "");
_logger.Info("Postgres {0}", cleanVersion);
}
}
}
}
}
}

View File

@@ -0,0 +1,14 @@
using FluentMigrator;
using NzbDrone.Core.Datastore.Migration.Framework;
namespace NzbDrone.Core.Datastore.Migration
{
[Migration(039)]
public class book_last_searched_time : NzbDroneMigrationBase
{
protected override void MainDbUpgrade()
{
Alter.Table("Books").AddColumn("LastSearchTime").AsDateTimeOffset().Nullable();
}
}
}

View File

@@ -42,12 +42,13 @@ namespace NzbDrone.Core.Datastore.Migration.Framework
serviceProvider = new ServiceCollection()
.AddLogging(b => b.AddNLog())
.AddFluentMigratorCore()
.Configure<RunnerOptions>(cfg => cfg.IncludeUntaggedMaintenances = true)
.ConfigureRunner(
builder => builder
.AddPostgres()
.AddNzbDroneSQLite()
.WithGlobalConnectionString(connectionString)
.WithMigrationsIn(Assembly.GetExecutingAssembly()))
.ScanIn(Assembly.GetExecutingAssembly()).For.All())
.Configure<TypeFilterOptions>(opt => opt.Namespace = "NzbDrone.Core.Datastore.Migration")
.Configure<ProcessorOptions>(opt =>
{

View File

@@ -59,13 +59,18 @@ namespace NzbDrone.Core.Download
{
var indexer = _indexerFactory.Find(indexerId);
if (indexer != null && indexer.DownloadClientId > 0)
if (indexer is { DownloadClientId: > 0 })
{
var client = availableProviders.SingleOrDefault(d => d.Definition.Id == indexer.DownloadClientId);
if (client == null || (filterBlockedClients && blockedProviders.Contains(client.Definition.Id)))
if (client == null)
{
throw new DownloadClientUnavailableException($"Indexer specified download client is not available");
throw new DownloadClientUnavailableException($"Indexer specified download client does not exist for {indexer.Name}");
}
if (filterBlockedClients && blockedProviders.Contains(client.Definition.Id))
{
throw new DownloadClientUnavailableException($"Indexer specified download client is not available due to recent failures for {indexer.Name}");
}
return client;

View File

@@ -14,7 +14,7 @@ namespace NzbDrone.Core.Extras.Files
List<TExtraFile> GetFilesByAuthor(int authorId);
List<TExtraFile> GetFilesByBook(int authorId, int bookId);
List<TExtraFile> GetFilesByBookFile(int bookFileId);
TExtraFile FindByPath(string path);
TExtraFile FindByPath(int authorId, string path);
}
public class ExtraFileRepository<TExtraFile> : BasicRepository<TExtraFile>, IExtraFileRepository<TExtraFile>
@@ -55,9 +55,9 @@ namespace NzbDrone.Core.Extras.Files
return Query(c => c.BookFileId == bookFileId);
}
public TExtraFile FindByPath(string path)
public TExtraFile FindByPath(int authorId, string path)
{
return Query(c => c.RelativePath == path).SingleOrDefault();
return Query(c => c.AuthorId == authorId && c.RelativePath == path).SingleOrDefault();
}
}
}

View File

@@ -18,7 +18,7 @@ namespace NzbDrone.Core.Extras.Files
{
List<TExtraFile> GetFilesByAuthor(int authorId);
List<TExtraFile> GetFilesByBookFile(int bookFileId);
TExtraFile FindByPath(string path);
TExtraFile FindByPath(int authorId, string path);
void Upsert(TExtraFile extraFile);
void Upsert(List<TExtraFile> extraFiles);
void Delete(int id);
@@ -59,9 +59,9 @@ namespace NzbDrone.Core.Extras.Files
return _repository.GetFilesByBookFile(bookFileId);
}
public TExtraFile FindByPath(string path)
public TExtraFile FindByPath(int authorId, string path)
{
return _repository.FindByPath(path);
return _repository.FindByPath(authorId, path);
}
public void Upsert(TExtraFile extraFile)

View File

@@ -41,8 +41,8 @@ namespace NzbDrone.Core.Extras.Others
}
var relativePath = author.Path.GetRelativePath(path);
var otherExtraFile = _otherExtraFileService.FindByPath(author.Id, relativePath);
var otherExtraFile = _otherExtraFileService.FindByPath(relativePath);
if (otherExtraFile != null)
{
var newPath = path + "-orig";
@@ -66,8 +66,8 @@ namespace NzbDrone.Core.Extras.Others
}
var relativePath = author.Path.GetRelativePath(path);
var otherExtraFile = _otherExtraFileService.FindByPath(author.Id, relativePath);
var otherExtraFile = _otherExtraFileService.FindByPath(relativePath);
if (otherExtraFile != null)
{
var subfolder = Path.GetDirectoryName(relativePath);

View File

@@ -1,12 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using NLog;
using NzbDrone.Common.Instrumentation.Extensions;
using NzbDrone.Core.Books;
using NzbDrone.Core.Datastore;
using NzbDrone.Core.DecisionEngine;
using NzbDrone.Core.Download;
using NzbDrone.Core.Messaging.Commands;
using NzbDrone.Core.Queue;
@@ -39,20 +39,31 @@ namespace NzbDrone.Core.IndexerSearch
_logger = logger;
}
private async Task SearchForMissingBooks(List<Book> books, bool userInvokedSearch)
private async Task SearchForBulkBooks(List<Book> books, bool userInvokedSearch)
{
_logger.ProgressInfo("Performing missing search for {0} books", books.Count);
var downloadedCount = 0;
foreach (var book in books)
foreach (var book in books.OrderBy(a => a.LastSearchTime ?? DateTime.MinValue))
{
var decisions = await _releaseSearchService.BookSearch(book.Id, false, userInvokedSearch, false);
List<DownloadDecision> decisions;
try
{
decisions = await _releaseSearchService.BookSearch(book.Id, false, userInvokedSearch, false);
}
catch (Exception ex)
{
_logger.Error(ex, "Unable to search for book: [{0}]", book);
continue;
}
var processed = await _processDownloadDecisions.ProcessDecisions(decisions);
downloadedCount += processed.Grabbed.Count;
}
_logger.ProgressInfo("Completed missing search for {0} books. {1} reports downloaded.", books.Count, downloadedCount);
_logger.ProgressInfo("Completed search for {0} books. {1} reports downloaded.", books.Count, downloadedCount);
}
public void Execute(BookSearchCommand message)
@@ -104,17 +115,11 @@ namespace NzbDrone.Core.IndexerSearch
var queue = _queueService.GetQueue().Where(q => q.Book != null).Select(q => q.Book.Id);
var missing = books.Where(e => !queue.Contains(e.Id)).ToList();
SearchForMissingBooks(missing, message.Trigger == CommandTrigger.Manual).GetAwaiter().GetResult();
SearchForBulkBooks(missing, message.Trigger == CommandTrigger.Manual).GetAwaiter().GetResult();
}
public void Execute(CutoffUnmetBookSearchCommand message)
{
Expression<Func<Book, bool>> filterExpression;
filterExpression = v =>
v.Monitored == true &&
v.Author.Value.Monitored == true;
var pagingSpec = new PagingSpec<Book>
{
Page = 1,
@@ -123,14 +128,14 @@ namespace NzbDrone.Core.IndexerSearch
SortKey = "Id"
};
pagingSpec.FilterExpressions.Add(filterExpression);
pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true);
var books = _bookCutoffService.BooksWhereCutoffUnmet(pagingSpec).Records.ToList();
var queue = _queueService.GetQueue().Where(q => q.Book != null).Select(q => q.Book.Id);
var missing = books.Where(e => !queue.Contains(e.Id)).ToList();
var cutoffUnmet = books.Where(e => !queue.Contains(e.Id)).ToList();
SearchForMissingBooks(missing, message.Trigger == CommandTrigger.Manual).GetAwaiter().GetResult();
SearchForBulkBooks(cutoffUnmet, message.Trigger == CommandTrigger.Manual).GetAwaiter().GetResult();
}
}
}

View File

@@ -136,6 +136,16 @@ namespace NzbDrone.Core.IndexerSearch
_logger.Debug("Total of {0} reports were found for {1} from {2} indexers", reports.Count, criteriaBase, indexers.Count);
// Update the last search time for all albums if at least 1 indexer was searched.
if (indexers.Any())
{
var lastSearchTime = DateTime.UtcNow;
_logger.Debug("Setting last search time to: {0}", lastSearchTime);
criteriaBase.Books.ForEach(a => a.LastSearchTime = lastSearchTime);
_bookService.UpdateLastSearchTime(criteriaBase.Books);
}
return _makeDownloadDecision.GetSearchDecision(reports, criteriaBase).ToList();
}

View File

@@ -449,8 +449,6 @@
"AudioFileMetadata": "Metadaten in Audiodateien schreiben",
"AuthorNameHelpText": "Der Name des auszuschließenden Autors/Buches (kann etwas Sinnvolles sein)",
"AutomaticallySwitchEdition": "Edition automatisch wechseln",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Gesamt: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} Bücher heruntergeladen",
"BookFilesCountMessage": "Keine Buchdateien",
"BookNaming": "Buchbenennung",
"Books": "Bücher",

View File

@@ -734,7 +734,6 @@
"WriteTagsAll": "Ολα τα αρχεία; μόνο αρχική εισαγωγή",
"WriteTagsSync": "Ολα τα αρχεία; μείνετε σε συγχρονισμό με το Goodreads",
"WriteMetadataTags": "Γράψτε ετικέτες μεταδεδομένων",
"BookFileCounttotalBookCountBooksDownloadedInterp": "Λήφθηκαν {0}/{1} βιβλία",
"BookFilesCountMessage": "Δεν υπάρχουν αρχεία βιβλίων",
"BookIndex": "ΠΕΡΙΕΧΟΜΕΝΑ ΒΙΒΛΙΟΥ",
"OnImportFailureHelpText": "Σε περίπτωση αποτυχίας εισαγωγής",
@@ -800,7 +799,6 @@
"MetadataProviderSource": "Πηγή παρόχου μεταδεδομένων",
"EnabledHelpText": "Επιλέξτε για να ενεργοποιήσετε το προφίλ απελευθέρωσης",
"EnableProfile": "Ενεργοποίηση προφίλ",
"BookFileCountBookCountTotalTotalBookCountInterp": "Βιβλίο {0} / {1} (Σύνολο: {2})",
"BookStudio": "Στούντιο Βιβλίου",
"CalibreContentServerText": "Η χρήση ενός Caliber Content Server (όχι Caliber Web) επιτρέπει στο Readarr να προσθέτει βιβλία στη βιβλιοθήκη Caliber και να ενεργοποιεί μετατροπές μεταξύ μορφών",
"IfYouDontAddAnImportListExclusionAndTheAuthorHasAMetadataProfileOtherThanNoneThenThisBookMayBeReaddedDuringTheNextAuthorRefresh": "Εάν δεν προσθέσετε εξαίρεση λίστας εισαγωγής και ο συγγραφέας έχει προφίλ μεταδεδομένων διαφορετικό από το \"Κανένα\", τότε αυτό το βιβλίο μπορεί να προστεθεί ξανά κατά την επόμενη ανανέωση του συγγραφέα.",

View File

@@ -59,6 +59,7 @@
"AuthorFolderFormat": "Author Folder Format",
"AuthorIndex": "Author Index",
"AuthorNameHelpText": "The name of the author/book to exclude (can be anything meaningful)",
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Total: {totalBookCount}, Files: {bookFileCount})",
"Authors": "Authors",
"AutoAdd": "Auto Add",
"AutoRedownloadFailed": "Redownload Failed",
@@ -92,8 +93,6 @@
"Book": "Book",
"BookAvailableButMissing": "Book Available, but Missing",
"BookEditor": "Book Editor",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Total: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} books downloaded",
"BookFilesCountMessage": "No book files",
"BookIndex": "Book Index",
"BookIsDownloading": "Book is downloading",
@@ -101,6 +100,7 @@
"BookList": "Book List",
"BookMonitoring": "Book Monitoring",
"BookNaming": "Book Naming",
"BookProgressBarText": "{bookCount} / {totalBookCount} (Files: {bookFileCount})",
"BookStudio": "Book Studio",
"BookTitle": "Book Title",
"Books": "Books",
@@ -833,6 +833,11 @@
"SearchSelected": "Search Selected",
"Security": "Security",
"SelectAll": "Select All",
"SelectBook": "Select Book",
"SelectDropdown": "Select...",
"SelectEdition": "Select Edition",
"SelectQuality": "Select Quality",
"SelectReleaseGroup": "Select Release Group",
"SelectedCountAuthorsSelectedInterp": "{0} Author(s) Selected",
"SelectedCountBooksSelectedInterp": "{0} Book(s) Selected",
"SendAnonymousUsageData": "Send Anonymous Usage Data",

View File

@@ -64,7 +64,7 @@
"CreateEmptyAuthorFoldersHelpText": "Crear carpetas de películas que faltan durante la exploración del disco",
"CreateGroup": "Crear grupo",
"CutoffHelpText": "Una vez que se alcanze esta calidad, Radarr no descargará películas",
"CutoffUnmet": "Límite no alcanzado",
"CutoffUnmet": "Umbrales no alcanzados",
"DatabaseMigration": "Migración de la base de datos",
"Dates": "Fechas",
"DelayProfile": "Perfil de retardo",
@@ -120,7 +120,7 @@
"EnableRSS": "Habilitar RSS",
"EnableSSL": "Habilitar SSL",
"EnableSslHelpText": " Requiere reiniciar la aplicación como administrador para que surta efecto",
"Ended": "Finalizado",
"Ended": "Terminado",
"ErrorLoadingContents": "Error cargando contenidos",
"ErrorLoadingPreviews": "Error al cargar las previsualizaciones",
"Exception": "Excepción",
@@ -149,27 +149,27 @@
"HasPendingChangesSaveChanges": "Guardar Cambios",
"History": "Historial",
"Host": "Host",
"Hostname": "Nombre del Host",
"ICalFeed": "iCal Feed",
"Hostname": "Nombre de host",
"ICalFeed": "Feed de iCal",
"ICalHttpUrlHelpText": "Copia esta URL a tu gestor(es) o haz click en subscribir si tu navegador soporta webcal",
"ICalLink": "iCal Link",
"IconForCutoffUnmet": "Icono de Corte no alcanzado",
"ICalLink": "Enlace de iCal",
"IconForCutoffUnmet": "Icono para Umbrales no alcanzados",
"IconTooltip": "Programado",
"IgnoredAddresses": "Direcciones Ignoradas",
"IgnoredAddresses": "Ignorar direcciones",
"IgnoredHelpText": "Este lanzamiento será rechazado si contiene uno ó más de estos términos (mayúsculas ó minúsculas)",
"IgnoredPlaceHolder": "Añadir nueva restricción",
"IllRestartLater": "Lo reiniciaré más tarde",
"ImportExtraFiles": "Importar Archivos Extra",
"ImportExtraFiles": "Importar archivos adicionales",
"ImportExtraFilesHelpText": "Importar archivos extra (subtítulos, info, etc) después de importar una película",
"ImportFailedInterp": "Importación fallida: {0}",
"ImportedTo": "Importado a",
"ImportedTo": "Importar a",
"Importing": "Importando",
"IncludeHealthWarningsHelpText": "Incluir Alertas de Salud",
"IncludeUnknownAuthorItemsHelpText": "Mostrar items sin ninguna película en la cola, esto incluye películas renombradas o cualquier otra cosa en la categoría de Radarr",
"IncludeUnmonitored": "Icluir No Monitoreados",
"IncludeUnmonitored": "Incluir sin monitorizar",
"Indexer": "Indexador",
"IndexerPriority": "Prioridad del Indexer",
"IndexerSettings": "Ajustes de Indexer",
"IndexerPriority": "Prioridad del indexador",
"IndexerSettings": "Ajustes de Indexador",
"Indexers": "Indexadores",
"Interval": "Intervalo",
"IsCutoffCutoff": "Corte",
@@ -181,10 +181,10 @@
"Local": "Local",
"LogFiles": "Archivos de Registro",
"LogLevel": "Nivel de Registro",
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "El registro de seguimiento se ha de habilitar solo temporalmente",
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "El registro de seguimiento sólo debe activarse temporalmente",
"Logging": "Registro de eventos",
"Logs": "Registros",
"LongDateFormat": "Formato Largo de Fecha",
"LongDateFormat": "Formato de Fecha Larga",
"ManualImport": "Importar Manualmente",
"MarkAsFailed": "Marcar como Fallida",
"MarkAsFailedMessageText": "Seguro que quieres marcar '{0}' como fallida?",
@@ -348,9 +348,9 @@
"SslCertPathHelpText": "Ruta al archivo pfx",
"StandardBookFormat": "Formato de Película Estándar",
"StartTypingOrSelectAPathBelow": "Comienza a escribir o selecciona una ruta debajo",
"StartupDirectory": "Directorio de arranque",
"StartupDirectory": "Directorio de Arranque",
"Status": "Estado",
"StatusEndedEnded": "Terminó",
"StatusEndedEnded": "Terminado",
"Style": "Estilo",
"SuccessMyWorkIsDoneNoFilesToRename": "Éxito! Mi trabajo está hecho, no hay archivos pendientes de renombrar.",
"SuccessMyWorkIsDoneNoFilesToRetag": "Éxito! Mi trabajo está hecho, no hay archivos pendientes de renombrar.",
@@ -393,8 +393,8 @@
"UnableToLoadHistory": "No se ha podido cargar la historia",
"UnableToLoadImportListExclusions": "No se pueden cargas las Excluidas de la Lista",
"UnableToLoadIndexerOptions": "No se han podido cargar las opciones del indexer",
"UnableToLoadIndexers": "No se pueden cargar los indexers",
"UnableToLoadLists": "No se puden cargar las Listas",
"UnableToLoadIndexers": "No se pueden cargar los indexadores",
"UnableToLoadLists": "No se pueden cargar las Listas",
"UnableToLoadMediaManagementSettings": "No se han podido cargar los ajustes de Manipulación multimedia",
"UnableToLoadMetadata": "No se pueden cargar los Metadatos",
"UnableToLoadNamingSettings": "No se han podido cargar los ajustes de renombrado",
@@ -518,7 +518,7 @@
"SettingsRemotePathMappingRemotePathHelpText": "Ruta de origen al directorio al que accede el Gestor de Descargas",
"TimeLeft": "Tiempo restante",
"DownloadClientCheckUnableToCommunicateMessage": "Incapaz de comunicarse con {0}.",
"IndexerPriorityHelpText": "Prioridad del Indexer de 1 (La más alta) a 50 (La más baja). Por defecto: 25. Se utiliza cuando se toman las versiones como un criterio para las versiones que de otro modo serían iguales, Radarr seguirá utilizando todos los indexadores habilitados para la sincronización y la búsqueda de RSS",
"IndexerPriorityHelpText": "Prioridad del Indexador de 1 (la más alta) a 50 (la más baja). Por defecto: 25. Usada para desempatar lanzamientos iguales cuando se capturan, Readarr seguirá usando todos los indexadores habilitados para Sincronización de RSS y Búsqueda.",
"Monitor": "Monitorear",
"MountCheckMessage": "El punto de montaje que contiene la ruta de una película es de read-only: ",
"OnBookFileDelete": "Al eliminar archivo de película",
@@ -533,7 +533,7 @@
"IndexerLongTermStatusCheckSingleClientMessage": "Indexers no disponible por errores durando más de 6 horas: {0}",
"IndexerRssHealthCheckNoAvailableIndexers": "Todos los indexers capaces de RSS están temporalmente desactivados debido a errores recientes con el indexer",
"IndexerSearchCheckNoInteractiveMessage": "No hay Indexers con Búsqueda Interactiva activada, Readarr no obtendrá ningún resultado en las búsquedas",
"IndexerStatusCheckSingleClientMessage": "Indexers no disponibles debido a errores: {0}",
"IndexerStatusCheckSingleClientMessage": "Indexadores no disponibles debido a errores: {indexerNames}",
"OnBookFileDeleteForUpgrade": "En archivo de película Eliminar para actualizar",
"OnBookFileDeleteForUpgradeHelpText": "En archivo de película Eliminar para actualizar",
"OnBookFileDeleteHelpText": "Al eliminar archivo de película",
@@ -562,7 +562,7 @@
"IndexerRssHealthCheckNoIndexers": "No hay indexers disponibles con sincronización RSS activada, Radarr no capturará nuevos estrenos automáticamente",
"IndexerSearchCheckNoAutomaticMessage": "No hay indexers con Búsqueda Automática disponibles, Radarr no dará ningún resultado de búsquedas automáticas",
"IndexerSearchCheckNoAvailableIndexersMessage": "Todos los indexers están temporalmente inactivos debido a errores recientes con ellos",
"IndexerStatusCheckAllClientMessage": "Los indexers no están disponibles debido a errores",
"IndexerStatusCheckAllClientMessage": "Todos los indexadores no están disponibles debido a errores",
"Label": "Etiqueta",
"MissingFromDisk": "Radarr no pudo encontrar el archivo en el disco, por lo que el archivo fue desvinculado de la película en la base de datos",
"RemotePathMappingCheckDownloadPermissions": "Radarr puede ver pero no acceder a la película descargada {0}. Probablemente sea un error de permisos.",
@@ -573,16 +573,16 @@
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent proporcionado por la aplicación llamó a la API",
"WriteTagsNo": "Nunca",
"FileWasDeletedByUpgrade": "Se eliminó el archivo para importar una actualización",
"IndexersSettingsSummary": "Indexers y restricciones de lanzamientos",
"IndexersSettingsSummary": "Indexadores y restricciones de lanzamiento",
"RestartRequiredHelpTextWarning": "Requiere reiniciar para que surta efecto",
"AddList": "Añadir Lista",
"RenameFiles": "Renombrar Archivos",
"Test": "Test",
"InstanceName": "Nombre de Instancia",
"InstanceNameHelpText": "Nombre de instancia en pestaña y para nombre de aplicación en Syslog",
"InstanceName": "Nombre de la Instancia",
"InstanceNameHelpText": "Nombre de la instancia en la pestaña y para la aplicación Syslog",
"Database": "Base de datos",
"ManualImportSelectEdition": "Importar Manualmente - Seleccionar Película",
"ImportListExclusions": "Borrar exclusión de lista de importación",
"ImportListExclusions": "Importar lista de exclusiones",
"ChooseImportMethod": "Elegir Modo de Importación",
"ClickToChangeReleaseGroup": "Clic para cambiar el grupo de lanzamiento",
"HardlinkCopyFiles": "Enlace permanente/Copiar archivos",
@@ -617,9 +617,9 @@
"IndexerTagsHelpText": "Solo utilizar este indexador para películas que coincidan con al menos una etiqueta. Déjelo en blanco para utilizarlo con todas las películas.",
"ImportListMissingRoot": "Falta la capeta raíz para las listas: {0}",
"ImportListMultipleMissingRoots": "Múltiples carpetas raíz faltan para las listas de importación: {0}",
"IndexerDownloadClientHelpText": "Especifica qué cliente de descargas se utiliza para las descargas de este indexador",
"HiddenClickToShow": "Oculto, clic para mostrar",
"HideAdvanced": "Ocultar Avanzado",
"IndexerDownloadClientHelpText": "Especifica qué cliente de descarga es usado para capturas desde este indexador",
"HiddenClickToShow": "Oculto, click para mostrar",
"HideAdvanced": "Ocultar avanzado",
"ShowAdvanced": "Mostrar Avanzado",
"ShownClickToHide": "Mostrado, clic para ocultar",
"ReplaceWithDash": "Reemplazar con Dash",
@@ -646,13 +646,13 @@
"RemoveCompleted": "Eliminación completada",
"RemoveDownloadsAlert": "Los ajustes de eliminación se han trasladado a los ajustes individuales del cliente de descarga en la tabla anterior.",
"RemoveFailed": "La eliminación falló",
"ApplyTagsHelpTextAdd": "Añadir: Añadir las etiquetas la lista existente de etiquetas",
"ApplyTagsHelpTextAdd": "Añadir: Añade las etiquetas a la lista de etiquetas existente",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Cómo añadir etiquetas a los clientes de descargas seleccionados",
"ApplyTagsHelpTextHowToApplyImportLists": "Cómo añadir etiquetas a las listas de importación seleccionadas",
"ApplyTagsHelpTextHowToApplyIndexers": "Cómo añadir etiquetas a los indexadores seleccionados",
"ApplyTagsHelpTextRemove": "Eliminar: Eliminar las etiquetas introducidas",
"ApplyTagsHelpTextReplace": "Reemplazar: Reemplazar las etiquetas con las etiquetas introducidas (no introducir etiquetas para eliminar todas las etiquetas)",
"DeleteSelectedDownloadClients": "Borrar gestor de descarga(s)",
"ApplyTagsHelpTextHowToApplyIndexers": "Cómo aplicar etiquetas a los indexadores seleccionados",
"ApplyTagsHelpTextRemove": "Eliminar: Elimina las etiquetas introducidas",
"ApplyTagsHelpTextReplace": "Reemplazar: Sustituye las etiquetas por las introducidas (introduce \"no tags\" para borrar todas las etiquetas)",
"DeleteSelectedDownloadClients": "Borrar Cliente de Descarga(s)",
"DeleteSelectedDownloadClientsMessageText": "¿Está seguro de querer eliminar {count} cliente(s) de descarga seleccionado(s)?",
"DeleteSelectedImportListsMessageText": "Seguro que quieres eliminar {count} lista(s) de importación seleccionada(s)?",
"DeleteSelectedIndexers": "Borrar indexer(s)",
@@ -696,7 +696,7 @@
"TotalSpace": "Espacio Total",
"IndexerDownloadClientHealthCheckMessage": "Indexadores con clientes de descarga inválidos: {0}.",
"ManageImportLists": "Gestionar Listas de Importación",
"ConnectionLostToBackend": "{appName} ha perdido su conexión con el backend y necesitará ser recargada para restaurar su funcionalidad.",
"ConnectionLostToBackend": "{appName} ha perdido su conexión con el backend y tendrá que ser recargado para recuperar su funcionalidad.",
"NotificationStatusSingleClientHealthCheckMessage": "Listas no disponibles debido a errores: {0}",
"NotificationStatusAllClientHealthCheckMessage": "Las listas no están disponibles debido a errores",
"ReleaseProfiles": "perfil de lanzamiento",
@@ -706,11 +706,11 @@
"Library": "Biblioteca",
"SomeResultsAreHiddenByTheAppliedFilter": "Algunos resultados están ocultos por el filtro aplicado",
"FreeSpace": "Espacio libre",
"LastDuration": "Duración",
"LastExecution": "Última ejecución",
"LastDuration": "Última Duración",
"LastExecution": "Última Ejecución",
"LastWriteTime": "Última Fecha de Escritura",
"ConnectionLost": "Conexión perdida",
"ConnectionLostReconnect": "Radarr intentará conectarse automáticamente, o haz clic en el botón de recarga abajo.",
"ConnectionLostReconnect": "{appName} intentará conectarse automáticamente, o puede hacer clic en recargar abajo.",
"NextExecution": "Siguiente ejecución",
"NoResultsFound": "No se han encontrado resultados",
"RecentChanges": "Cambios recientes",
@@ -724,7 +724,6 @@
"AuthorEditor": "Editor de Autor",
"Author": "Autor",
"BackupIntervalHelpText": "Intervalo para respaldar la base de datos y configuraciones de Readarr",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} libros descargados",
"BookList": "Lista de libros",
"BookFilesCountMessage": "No hay archivos de libros",
"AllowFingerprintingHelpText": "Utilizar la huella digital para mejorar la precisión de la coincidencia de libros",
@@ -736,13 +735,12 @@
"BookEditor": "Editor de Libro",
"ASIN": "ASIN",
"AnyEditionOkHelpText": "Readarr cambiará automáticamente a la edición que mejor coincida con los archivos descargados",
"AppUpdated": "{appName} Actualizada",
"AppUpdatedVersion": "{appName} ha sido actualizado a la versión `{version}`, para obtener los cambios más recientes necesitará recargar {appName}",
"AppUpdated": "{appName} Actualizado",
"AppUpdatedVersion": "{appName} ha sido actualizado a la versión `{version}`, para obtener los cambios más recientes, necesitará recargar {appName}",
"AuthorFolderFormat": "Formato de Carpeta de Autor",
"AuthorNameHelpText": "El nombre del autor/libro a excluir (puede ser cualquier cosa significativa)",
"BookMonitoring": "Monitoreo de libros",
"AllowFingerprintingHelpTextWarning": "Esto requiere que Readarr lea partes del archivo, lo que ralentizará los escaneos y puede provocar una alta actividad en el disco o en la red.",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Total: {2})",
"Book": "Libro",
"AutomaticallySwitchEdition": "Cambiar edición automáticamente",
"BookNaming": "Nombrado de libros",
@@ -765,7 +763,7 @@
"ListsSettingsSummary": "lista de importación",
"ExtraFileExtensionsHelpText": "Lista de archivos adicionales separados por coma para importar (.nfo será importado como .nfo-orig)",
"ExtraFileExtensionsHelpTextsExamples": "Ejemplos: '.sub, .nfo' o 'sub,nfo'",
"ImportLists": "lista de importación",
"ImportLists": "Importar listas",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "El cliente de descarga {downloadClientName} esta configurado para eliminar las descargas completadas. Esto puede causar que las descargas sean eliminadas del cliente antes que {1} las pueda importar.",
"Continuing": "Continua",
"DownloadClientQbittorrentSettingsContentLayout": "Diseño del contenido",
@@ -792,5 +790,11 @@
"Country": "País",
"AutoRedownloadFailed": "Descarga fallida",
"AutoRedownloadFailedFromInteractiveSearch": "Fallo al volver a descargar desde la búsqueda interactiva",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Búsqueda automática e intento de descarga de una versión diferente cuando se obtiene una versión fallida de la búsqueda interactiva"
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Búsqueda automática e intento de descarga de una versión diferente cuando se obtiene una versión fallida de la búsqueda interactiva",
"IgnoreDownload": "Ignorar descarga",
"IgnoreDownloads": "Ignorar descargas",
"IgnoreDownloadHint": "Detiene {appName} de procesar esta descarga más adelante",
"IgnoreDownloadsHint": "Detiene {appName} de procesar estas descargas más adelante",
"NoDownloadClientsFound": "No se han encontrado clientes de descarga",
"NoIndexersFound": "No se han encontrado indexadores"
}

View File

@@ -1,14 +1,14 @@
{
"AnalyticsEnabledHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"AnalyticsEnabledHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"Delete": "Poista",
"None": "Ei mitään",
"RootFolder": "Juurikansio",
"ShowPath": "Näytä tiedostosijainti",
"SslCertPasswordHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"SslCertPasswordHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"20MinutesTwenty": "20 minuuttia: {0}",
"45MinutesFourtyFive": "45 minuuttia: {0}",
"60MinutesSixty": "60 minuuttia: {0}",
"APIKey": "API-avain",
"APIKey": "Rajapinnan avain",
"About": "Tietoja",
"AddListExclusion": "Lisää listapoikkeus",
"AddingTag": "Tunniste lisätään",
@@ -22,7 +22,7 @@
"Authentication": "Tunnistautuminen",
"AuthenticationMethodHelpText": "Vaadi {appName}in käyttöön käyttäjätunnus ja salasana.",
"AuthorClickToChangeBook": "Vaihda kirjaa painamalla",
"AutoRedownloadFailedHelpText": "Hae ja pyri laaamaan eri julkaisu automaattisesti.",
"AutoRedownloadFailedHelpText": "Etsi ja pyri lataamaan eri julkaisu automaattisesti.",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Levyltä poistettavien kirjojen valvonta lopetetaan automaattisesti.",
"Automatic": "Automaattinen",
"BackupFolderHelpText": "Suhteelliset tiedostosijainnit ovat {appName}in AppData-kansiossa.",
@@ -31,7 +31,7 @@
"Backups": "Varmuuskopiot",
"BindAddress": "Sidososoite",
"BindAddressHelpText": "Toimiva IP-osoite, localhost tai * (tähti) kaikille verkkoliitännöille.",
"BindAddressHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"BindAddressHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"BookIsDownloading": "Kirjaa ladataan",
"BookIsDownloadingInterp": "Kirjaa ladataan - {0} % {1}",
"Branch": "Haara",
@@ -61,7 +61,7 @@
"Connections": "Yhteydet",
"CopyUsingHardlinksHelpText": "Hardlink-kytkösten avulla {appName} voi tuoda jaettavat torrentit ilman niiden täyttä kopiointia ja levytilan kaksinkertaista varausta. Tämä toimii vain lähde- ja kohdesijaintien ollessa samalla tallennusmedialla.",
"CopyUsingHardlinksHelpTextWarning": "Tiedostojen käsittelystä johtuvat lukitukset saattavat joskus estää jaettavien tiedostojen uudelleennimeämisen. Voit keskeyttää jakamisen väliaikaisesti ja käyttää {appName}in nimeämistoimintoa.",
"CreateEmptyAuthorFoldersHelpText": "Luo puuttuvat kirjailijakansiot levyn tarkistuksen yhteydessä",
"CreateEmptyAuthorFoldersHelpText": "Luo puuttuvat kirjailijakansiot kirjastotarkistusten yhteydessä",
"CreateGroup": "Luo ryhmä",
"CutoffHelpText": "Kun tämä laatu on saavutettu, Readarr ei enää lataa elokuvia",
"CutoffUnmet": "Katkaisutasoa ei savutettu",
@@ -115,7 +115,7 @@
"EnableColorImpairedModeHelpText": "Vaihtoehtoinen tyyli, joka auttaa erottamaan värikoodatut tiedot paremmin.",
"EnableCompletedDownloadHandlingHelpText": "Tuo valmistuneet lataukset lataustyökalusta automaattisesti.",
"EnableHelpText": "Luo metatietotiedostot tälle metatietotyypille.",
"EnableInteractiveSearch": "Käytä manuaalihakua",
"EnableInteractiveSearch": "Käytä manuaalihakuun",
"EnableRSS": "RSS-syöte",
"EnableSSL": "SSL-salaus",
"EnableSslHelpText": " Käyttöönotto vaatii uudelleenkäynnistyksen järjestelmänvavojan oikeuksilla.",
@@ -124,7 +124,7 @@
"ErrorLoadingPreviews": "Virhe ladattaessa esikatselua",
"Exception": "Poikkeus",
"FailedDownloadHandling": "Latauksen käsittely epäonnistui",
"FileDateHelpText": "Muuta tiedoston päiväys tuonnin ja uudelleentarkistuksen yhteydessä.",
"FileDateHelpText": "Muuta tiedoston päiväys tuonnin/kirjaston uudelleentarkistuksen yhteydessä.",
"FileManagement": "Tiedostojen hallinta",
"FileNames": "Tiedostonimet",
"Filename": "Tiedostonimi",
@@ -177,7 +177,7 @@
"IsTagUsedCannotBeDeletedWhileInUse": "Tunnistetta ei voi poistaa, koska se on käytössä",
"Language": "Kieli",
"LaunchBrowserHelpText": " Avaa readarrin verkkokäyttöliittymä verkkoselaimeen sovelluksen käynnistyksen yhteydessä.",
"LoadingBookFilesFailed": "Elokuvatiedostojen lataaminen epäonnistui",
"LoadingBookFilesFailed": "Kirjatiedostojen lataus epäonnistui",
"Local": "Paikalliset",
"LogFiles": "Lokitiedostot",
"LogLevel": "Lokikirjauksen laajuus",
@@ -200,7 +200,7 @@
"MinimumAge": "Vähimmäisikä",
"MinimumAgeHelpText": "Vain Usenet: NZB:n vähimmäisikä minuutteina, ennen niiden kaappausta. Tämän avulla uusille julkaisuille voidaan antaa aikaa levitä Usenet-palveluntarjoajalle.",
"MinimumFreeSpace": "Vapaan tilan vähimmäismäärä",
"MinimumFreeSpaceWhenImportingHelpText": "Estä tuonti, jos sen jälkeinen vapaa levytila olisi tässä määritettyä arvoa pienempi.",
"MinimumFreeSpaceWhenImportingHelpText": "Estä tuonti, jos sen jälkeinen vapaa levytila olisi tässä määritettyä pienempi.",
"MinimumLimits": "Vähimmäisrajoitukset",
"Missing": "Puuttuu",
"Mode": "Tila",
@@ -222,7 +222,7 @@
"OnGrabHelpText": "Kun julkaisu kaapataan",
"OnHealthIssueHelpText": "Vakausongelmat",
"OnRenameHelpText": "Uudelleennimeäminen",
"OnUpgradeHelpText": "Päivitys",
"OnUpgradeHelpText": "Päivitettäessä",
"OpenBrowserOnStart": "Avaa selain käynnistettäessä",
"Options": "Asetukset",
"Original": "Alkuperäiset",
@@ -234,7 +234,7 @@
"Path": "Tiedostosijainti",
"Permissions": "Käyttöoikeudet",
"Port": "Portti",
"PortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"PortHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"PortNumber": "Portin numero",
"PosterSize": "Julisteiden koko",
"PreviewRename": "Nimeämisen esikatselu",
@@ -244,7 +244,7 @@
"Protocol": "Protokolla",
"ProtocolHelpText": "Valitse käytettävä(t) protokolla(t) ja mitä käytetään ensisijaisesti valittaessa muutoin tasaveroisista julkaisuista.",
"Proxy": "Välityspalvelin",
"ProxyBypassFilterHelpText": "Käytä aliverkkotunnusten erottimena pilkkua (,) ja jokerimerkkinä tähteä ja pistettä (*.). Esimerkkejä: www.esimerkki.fi,*.esimerkki.fi.",
"ProxyBypassFilterHelpText": "Erota aliverkkotunnukset pilkuilla ja käytä jokerimerkkinä tähteä ja pistettä (*.). Esimerkki: www.esimerkki.fi,*.esimerkki.fi).",
"ProxyType": "Välityspalvelimen tyyppi",
"ProxyUsernameHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
"PublishedDate": "Julkaisupäivä",
@@ -261,7 +261,7 @@
"ReadarrTags": "Tunnisteet",
"Real": "Todellinen",
"Reason": "Syy",
"RecycleBinCleanupDaysHelpText": "Arvo \"0\" (nolla) poistaa automaattityhjennyksen käytöstä.",
"RecycleBinCleanupDaysHelpText": "Arvo \"0\" (nolla) poistaa automaattisen tyhjennyksen käytöstä.",
"RecycleBinCleanupDaysHelpTextWarning": "Määritettyä päiväystä vanhemmat tiedostot poistetaan roskakorista automaattisesti.",
"RecycleBinHelpText": "Pysyvän poiston sijaan kirjatiedostot siirretään tähän kansioon.",
"RecyclingBin": "Roskakori",
@@ -274,28 +274,28 @@
"ReleaseRejected": "Vapautus hylätty",
"ReleaseWillBeProcessedInterp": "Julkaisu käsitellään {0}",
"Reload": "Lataa uudelleen",
"RemotePathMappings": "Etäsijaintien kartoitukset",
"RemotePathMappings": "Etäsijaintien kohdistukset",
"Remove": "Poista",
"RemoveCompletedDownloadsHelpText": "Poista tuodut lataukset lataustyökalun historiasta",
"RemoveFailedDownloadsHelpText": "Poista epäonnistuneet lataukset lataustyökalun historiasta",
"RemoveFailedDownloadsHelpText": "Poista epäonnistuneet lataukset lataustyökalun historiasta.",
"RemoveFilter": "Poista suodatin",
"RemoveFromDownloadClient": "Poista lataustyökalusta",
"RemoveFromQueue": "Poista jonosta",
"RemoveHelpTextWarning": "Poistaminen poistaa latauksen ja sen sisältämät tiedostot lataustyökalusta.",
"RemoveSelected": "Poista valitut",
"RemoveTagExistingTag": "Olemassa oleva tunniste",
"RemoveTagExistingTag": "Tunniste on jo olemassa",
"RemoveTagRemovingTag": "Tunniste poistetaan",
"RemovedFromTaskQueue": "Poistettu tehtäväjonosta",
"RenameBooksHelpText": "Jos uudelleennimeäminen ei ole käytössä, käytetään nykyistä tiedostonimeä.",
"Reorder": "Järjestä uudelleen",
"ReplaceIllegalCharacters": "Kiellettyjen merkkien korvaus",
"ReplaceIllegalCharacters": "Korvaa kielletyt merkit",
"RequiredHelpText": "Tämän \"{0}\" -ehdon on täsmättävä mukautetun muodon käyttämiseksi. Muutoin riittää yksi \"{0}\" -vastaavuus.",
"RequiredPlaceHolder": "Lisää rajoitus",
"RescanAfterRefreshHelpTextWarning": "{appName} ei tunnista tiedostomuutoksia automaattisesti, jos asetuksena ei ole \"Aina\".",
"RescanAuthorFolderAfterRefresh": "Tutki kirjailijakansio päivityksen jälkeen uudelleen",
"Reset": "Uudista",
"ResetAPIKey": "Uudista API-avain",
"ResetAPIKeyMessageText": "Haluatko varmasti uudistaa API-avaimesi?",
"ResetAPIKey": "Korvaa rajapinnan avain",
"ResetAPIKeyMessageText": "Haluatko varmasti korvata rajapinnan avaimen uudella?",
"Restart": "Käynnistä uudelleen",
"RestartNow": "Käynnistä uudelleen nyt",
"RestartReadarr": "Käynnistä Radarr uudelleen",
@@ -344,8 +344,8 @@
"SourcePath": "Lähdesijainti",
"SslCertPasswordHelpText": "Pfx-tiedoston salasana",
"SslCertPathHelpText": "Polku pfx-tiedostoon",
"SslPortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"StandardBookFormat": "Elokuvan vakiomuoto",
"SslPortHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"StandardBookFormat": "Tavallisten kirjojen kaava",
"StartTypingOrSelectAPathBelow": "Aloita kirjoitus tai valitse sijainti alta",
"StartupDirectory": "Käynnistyskansio",
"Status": "Tila",
@@ -383,31 +383,31 @@
"UnableToAddANewMetadataProfilePleaseTryAgain": "Uutta laatuprofiilia ei voi lisätä, yritä uudelleen.",
"UnableToAddANewNotificationPleaseTryAgain": "Kytköksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewQualityProfilePleaseTryAgain": "Laatuprofiilin lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Etäsijainnin kartoituksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Etäsijainnin kohdistuksen lisäys epäonnistui. Yritä uudelleen.",
"UnableToAddANewRootFolderPleaseTryAgain": "Uutta mukautettua muotoa ei voi lisätä, yritä uudelleen.",
"UnableToLoadBackups": "Varmuuskopioiden lataus epäonnistui",
"UnableToLoadDelayProfiles": "Viiveprofiilien lataus epäonnistui.",
"UnableToLoadDelayProfiles": "Virhe ladattaessa viiveprofiileja",
"UnableToLoadDownloadClientOptions": "Lataustyökalun asetusten lataus epäonnistui",
"UnableToLoadDownloadClients": "Lataustyökalujen lataus ei onistu",
"UnableToLoadGeneralSettings": "Yleisten asetusten lataus epäonnistui.",
"UnableToLoadGeneralSettings": "Virhe ladattaessa yleisiä asetuksia",
"UnableToLoadHistory": "Historian lataus epäonnistui",
"UnableToLoadImportListExclusions": "Tuontilistojen poikkeuksien lataus epäonnistui",
"UnableToLoadIndexerOptions": "Tietolähdeasetusten lataus ei onnistu.",
"UnableToLoadImportListExclusions": "Tuontilistapoikkeusten lataus epäonnistui",
"UnableToLoadIndexerOptions": "Tietolähdeasetusten lataus ei onnistu",
"UnableToLoadIndexers": "Tietolähteiden lataus epäonnistui",
"UnableToLoadLists": "Tuontilistojen lataus epäonnistui.",
"UnableToLoadMediaManagementSettings": "Medianhallinnan asetuksien lataus epäonnistui.",
"UnableToLoadMetadata": "Metatietojen lataus epäonnistui.",
"UnableToLoadNamingSettings": "Nimeämisen asetuksien lataus epäonnistui.",
"UnableToLoadNotifications": "Kytkösten lataus epäonnistui.",
"UnableToLoadMediaManagementSettings": "Virhe ladattaessa mediatiedostojen hallinta-asetuksia",
"UnableToLoadMetadata": "Virhe ladattaessa metatietoja",
"UnableToLoadNamingSettings": "Virhe ladattaessa nimeämisasetuksia",
"UnableToLoadNotifications": "Virhe ladattaessa kytköksiä",
"UnableToLoadQualities": "Laatujen lataus epäonnistui.",
"UnableToLoadQualityDefinitions": "Laatumäärityksien lataus epäonnistui.",
"UnableToLoadQualityProfiles": "Laatuprofiilien lataus epäonnistui.",
"UnableToLoadQualityDefinitions": "Virhe ladattaessa laatumäärityksiä",
"UnableToLoadQualityProfiles": "Virhe ladattaessa laatuprofiileja",
"UnableToLoadReleaseProfiles": "Viiveprofiileja ei voi ladata",
"UnableToLoadRemotePathMappings": "Etäsijaintien kartoitusten lataus epäonnistui",
"UnableToLoadRemotePathMappings": "Etäsijaintien kohdistusten lataus epäonnistui",
"UnableToLoadRootFolders": "Juurikansioiden lataus epäonnistui.",
"UnableToLoadTags": "Tunnisteiden lataus ei onnistu",
"UnableToLoadTheCalendar": "Kalenterin lataus epäonnistui.",
"UnableToLoadUISettings": "Käyttöliittymän asetuksien lataus epäonnistui.",
"UnableToLoadUISettings": "Virhe ladattaesssa käyttöliittymän asetuksia",
"Ungroup": "Pura ryhmä",
"Unmonitored": "Valvomattomat",
"UnmonitoredHelpText": "Sisällytä ei-valvotut kirjat iCal-syötteeseen.",
@@ -418,7 +418,7 @@
"Updates": "Päivitykset",
"UpgradeAllowedHelpText": "Jos käytöstä poistettuja laatuja ei päivitetä.",
"Uptime": "Käyttöaika",
"UrlBaseHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"UrlBaseHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"UseHardlinksInsteadOfCopy": "Käytä hardlink-kytköksiä",
"UseProxy": "Käytä välityspalvelinta",
"Usenet": "Usenet",
@@ -431,12 +431,12 @@
"WeekColumnHeader": "Viikkosarakkeen otsikko",
"Year": "Vuosi",
"YesCancel": "Kyllä, peru",
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"DeleteRootFolderMessageText": "Haluatko varmasti poistaa juurikansion \"{name}\"?",
"LoadingBooksFailed": "Elokuvatiedostojen lataaminen epäonnistui",
"LoadingBooksFailed": "Kirjojen lataus epäonnistui",
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
"SslCertPathHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
"UnableToLoadMetadataProfiles": "Metatietoprofiileja ei voida ladata.",
"SslCertPathHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"UnableToLoadMetadataProfiles": "Metatietoprofiilien lataus epäonnistui",
"DownloadClientCheckDownloadingToRoot": "Lataustyökalu \"{0}\" tallentaa lataukset juurikansioon \"{1}\", mutta ne tulisi tallentaa muualle.",
"ReplaceIllegalCharactersHelpText": "Korvaa laittomat merkit vaihtoehtoisella merkinnällä. Jos ei valittu, ne poistetaan.",
"OutputPath": "Tallennussijainti",
@@ -483,20 +483,20 @@
"WriteTagsSync": "Kaikki tiedostot, Goodreads-synkronoinnilla",
"WriteTagsAll": "Kaikki tiedostot, alkuperäisen tuonnin yhteydessä",
"NoTagsHaveBeenAddedYet": "Tunnisteita ei ole vielä lisätty. Lisää tunnisteita määrittääksesi kirjailijoille viiveprofiileja, rajoituksia tai ilmoituksia. Paina '{0}' lukeaksesi lisää tunnisteista.",
"EnabledHelpText": "Käytä julkaisuprofiilia valitsemalla tämä.",
"EnabledHelpText": "Käytä julkaisuprofiilia merkitsemällä tämä.",
"CreateEmptyAuthorFolders": "Luo kirjailijoille tyhjät kansiot",
"RescanAfterRefreshHelpText": "Tutki kirjailijakansio uudelleen kirjailijan päivityksen jälkeen.",
"ThisCannotBeCancelled": "Tämän peruminen on aloituksen jälkeen mahdollista vain poistamalla kaikki tietolähteet käytöstä.",
"UnselectAll": "Tyhjennä valinnat",
"DeleteFilesHelpText": "Poista kirjatiedostot ja kirjailijakansio",
"MonitoredHelpText": "Kirjailijan kirjoja etsitään ja ne ladataan, jos ne ovat saatavilla.",
"ShouldMonitorHelpText": "Tältä tuontilistalta lisätyt kirjailijat lisätään ja niitä valvotaan.",
"ShouldMonitorHelpText": "Valvo tältä tuontilistalta lisättyjä uusia kirjailijoita ja kirjoja.",
"AuthorIndex": "Kirjailijahakemisto",
"BookEditor": "Kirjaeditori",
"BookIndex": "Kirjahakemisto",
"Book": "Kirja",
"AddedAuthorSettings": "Uuden kirjailijan oletusasetukset",
"AddImportListExclusionHelpText": "Estä kirjan lisäys Readarriin tuontilistoilta tai päivitettäessä kirjailijaa",
"AddImportListExclusionHelpText": "Estä {appName}ia lisäämästä kirjaa listoilta tai kirjailipäivitysten yhteydessä.",
"AddMissing": "Lisää puuttuvat",
"AddNewItem": "Lisää uusi kohde",
"AllAuthorBooks": "Kirjailijan kaikki kirjat",
@@ -506,16 +506,16 @@
"AllowAuthorChangeClickToChangeAuthor": "Paina vaihtaaksesi kirjailijaa",
"AllowedLanguages": "Sallitut kielet",
"AnyEditionOkHelpText": "Readarr vaihtaa automaattisesti versioon, joka vastaa ladattuja tiedostoja parhaiten",
"AuthorEditor": "Kirjailijan muokkaus",
"AuthorEditor": "Kirjailijaeditori",
"AudioFileMetadata": "Kirjoita metatiedot äänitiedostoihin",
"AuthorFolderFormat": "Kirjailijakansion muoto",
"AuthorFolderFormat": "Kirjailijakansion kaava",
"AuthorNameHelpText": "Poissuljettavan kirjailijan/kirjan nimi (voi olla mitä tahansa merkityksellistä)",
"Authors": "Kirjailijat",
"AutomaticallySwitchEdition": "Automaattinen version vaihto",
"DefaultQualityProfileIdHelpText": "Kansiosta löydetyille kirjailijoille oletustusarvoisesti asetettava laatuprofiili.",
"ConsoleLogLevel": "Valvontalokin laajuus",
"FilterSentryEventsHelpText": "Suodata tunnetut käyttäjävirheet pois analytiikkalähetyksistä",
"Label": "Tunniste",
"Label": "Nimi",
"LogRotateHelpText": "Lokien tallennuskansiossa säilytettävien lokitiedostojen enimmäismäärä",
"LogRotation": "Lokitiedostojen kierrätys",
"LogSqlHelpText": "Kirjaa kaikki SQL-kyselyt",
@@ -598,12 +598,12 @@
"PathHelpText": "Kirjakokoelmasi pääkansio.",
"PathHelpTextWarning": "Tämä ei voi olla sama kansio, johon lataustyökalusi tallentaa tiedostot.",
"DefaultMonitorOptionHelpText": "Kansiosta löydetyille kirjailijoille oletusarvoisesti asetettava kirjojen valvontataso.",
"RemotePathMappingCheckFileRemoved": "Tiedosto '{0}' poistettiin kesken käsittelyn.",
"RemotePathMappingCheckFileRemoved": "Tiedosto \"{0}\" poistettiin kesken käsittelyn.",
"Other": "Muut",
"RootFolderCheckSingleMessage": "Puuttuva juurikansio: {0}",
"RootFolderCheckSingleMessage": "Juurikansio puuttuu: {0}.",
"Save": "Tallenna",
"UpdateCheckStartupNotWritableMessage": "Päivitystä ei voida asentaa, koska käyttäjällä \"{1}\" ei ole kirjoitusoikeutta käynnistyskansioon \"{0}\".",
"UpdateCheckStartupTranslocationMessage": "Päivitystä ei voi asentaa, koska käynnistyskansio '{0}' sijaitsee 'App Translocation' -kansiossa.",
"UpdateCheckStartupTranslocationMessage": "Päivitystä ei voida asentaa, koska käynnistyskansio \"{0}\" sijaitsee \"App Translocation\" -kansiossa.",
"UpdateCheckUINotWritableMessage": "Päivityksen asennus ei onnistu, koska käyttäjällä \"{1}\" ei ole kirjoitusoikeutta käyttöliittymäkansioon \"{0}\".",
"Yesterday": "Eilen",
"UpdateAvailable": "Uusi päivitys on saatavilla",
@@ -615,36 +615,36 @@
"IndexerStatusCheckAllClientMessage": "Tietolähteet eivät ole käytettävissä virheiden vuoksi",
"MediaManagement": "Median hallinta",
"Metadata": "Metatiedot",
"OnBookFileDeleteHelpText": "Kun elokuvatiedosto poistetaan",
"OnBookFileDeleteHelpText": "Kun kirjatiedosto poistetaan",
"ProxyCheckFailedToTestMessage": "Välityspalvelintesti epäonnistui: {0}",
"Queued": "Lisätty jonoon",
"SearchFiltered": "Etsi suodatettuja",
"SearchFiltered": "Etsi suodatetuista",
"RemotePathMappingCheckFilesGenericPermissions": "Lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta {appName} ei näe sitä. Kansion käyttöoikeuksia on ehkä muokattava.",
"RemotePathMappingCheckImportFailed": "Kirjan tuonti epäonnistui. Katso tarkemmat tiedot lokista.",
"RemotePathMappingCheckImportFailed": "{appName} ei voinut tuoda julkaisua. Katso tarkemmat tiedot lokista.",
"CouldntFindAnyResultsForTerm": "Haku '{0}' ei tuottanut tuloksia.",
"IndexerSearchCheckNoAutomaticMessage": "Automaattihakua varten ei ole määritetty tietolähteitä ja tämän vuoksi {appName}in automaattihaku ei löydä tuloksia.",
"IndexerSearchCheckNoAvailableIndexersMessage": "Kaikki hakukelpoiset tietolähteet ovat tilapaisesti tavoittamattomissa viimeaikaisten tietolähdevirheiden vuoksi.",
"RemotePathMappingCheckDockerFolderMissing": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei löydy Docker-säiliöstä. Tarkista etäsijaintien kartoitukset ja säiliön tallennusmedian asetukset.",
"RemotePathMappingCheckDownloadPermissions": "Ladattu kirja \"{0}\" näkyy, mutta sitä ei voida käyttää. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckFilesBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckFolderPermissions": "Ladatauskansio \"{1}\" näkyy, mutta sitä ei voida käyttää. Todennäköinen syy on sijainnin käyttöoikeusvirhe.",
"RemotePathMappingCheckDockerFolderMissing": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei löydy Docker-säiliöstä. Tarkista etäsijaintien kohdistukset ja säiliön tallennusmedian asetukset.",
"RemotePathMappingCheckDownloadPermissions": "{appName} näkee ladatun kirjan \"{path}\", mutta ei voi avata sitä. Tämä johtuu todennäköisesti liian rajallisista käyttöoikeuksista.",
"RemotePathMappingCheckFilesBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckFolderPermissions": "{appName} näkee ladatun kansion \"{1}\", mutta ei voi avata sitä. Tämä johtuu todennäköisesti liian rajallisista käyttöoikeuksista.",
"RemotePathMappingCheckFilesLocalWrongOSPath": "Paikallinen lataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista lataustyökalun asetukset.",
"RemotePathMappingCheckFilesWrongOSPath": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etsijaintien kartoitukset lataustyökalun asetukset.",
"RemotePathMappingCheckFilesWrongOSPath": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etsijaintien kohdistukset lataustyökalun asetukset.",
"RemotePathMappingCheckGenericPermissions": "Lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta {appName} ei näe sitä. Kansion käyttöoikeuksia on ehkä muokattava.",
"RemotePathMappingCheckLocalFolderMissing": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckLocalFolderMissing": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kohdistus.",
"RemotePathMappingCheckLocalWrongOSPath": "Paikallinen lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista lataustyökalun asetukset.",
"RemotePathMappingCheckRemoteDownloadClient": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kartoitus.",
"RemotePathMappingCheckWrongOSPath": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckRemoteDownloadClient": "Etälataustyökalu \"{0}\" ilmoitti tiedostosijainniksi \"{1}\", mutta sitä ei näytä olevan olemassa. Todennäköinen syy on puuttuva tai virheellinen etäsijainnin kohdistus.",
"RemotePathMappingCheckWrongOSPath": "Etälataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RestartReloadNote": "Huomioi: {appName} käynnistyy palautusprosessin aikana automaattisesti uudelleen.",
"DownloadClientStatusCheckAllClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kartoitukset.",
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.",
"Connect": "Kytkökset",
"TimeLeft": "Aikaa jäljellä",
"ConnectSettingsSummary": "Ilmoitukset, kuten viestintä mediapalvelimille ja soittimille, sekä omat komentosarjat.",
"DownloadClientCheckNoneAvailableMessage": "Lataustyökaluja ei ole käytettävissä",
"DownloadClientCheckUnableToCommunicateMessage": "Viestintä lataustyökalun \"{0}\" kanssa ei onnistu.",
"DownloadClientStatusCheckSingleClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä: {0}",
"FailedToLoadQueue": "Jonon lataus epäonnistui.",
"FailedToLoadQueue": "Jonon lataus epäonnistui",
"FileWasDeletedByUpgrade": "Tiedosto poistettiin päivityksen tuontia varten.",
"HealthNoIssues": "Kokoonpanossasi ei ole ongelmia",
"IndexerRssHealthCheckNoAvailableIndexers": "Kaikki RSS-tietolähteet ovat tilapaisesti tavoittamattomissa viimeaikaisten tietolähdevirheiden vuoksi.",
@@ -652,10 +652,10 @@
"IndexerStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä virheiden vuoksi: {0}",
"MissingFromDisk": "Koska tiedostoa ei löytynyt levyltä, sen kytkös kirjastossa olevaan kirjaan poistettiin.",
"Monitor": "Valvonta",
"MountCheckMessage": "Elokuvareitin sisältävä kiinnike on asennettu vain luku -tilaan: ",
"OnBookFileDelete": "Kun elokuvatiedosto poistetaan",
"OnBookFileDeleteForUpgrade": "Kun elokuvatiedosto poistetaan päivitystä varten",
"OnBookFileDeleteForUpgradeHelpText": "Kun elokuvatiedosto poistetaan päivitystä varten",
"MountCheckMessage": "Kirjailijan sijainnin sisältävä media on kytketty vain luku -tilassa: ",
"OnBookFileDelete": "Kun kirjatiedosto poistetaan",
"OnBookFileDeleteForUpgrade": "Kun kirjatiedosto poistetaan päivitystä varten",
"OnBookFileDeleteForUpgradeHelpText": "Kun kirjatiedosto poistetaan päivitystä varten",
"OnGrab": "Kun julkaisu kaapataan",
"OnHealthIssue": "Vakausongelmat",
"OnRename": "Uudelleennimeäminen",
@@ -665,16 +665,16 @@
"QueueIsEmpty": "Jono on tyhjä",
"ReadarrSupportsAnyDownloadClient": "Monet torrent- ja Usenet-lataustyökalut ovat tuettuja.",
"RefreshAndScan": "Päivitä ja tarkista",
"RemotePathMappingCheckBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kartoitukset ja lataustyökalun asetukset.",
"RemotePathMappingCheckBadDockerPath": "Käytät Dockeria ja lataustyökalu \"{0}\" tallentaa lataukset kohteeseen \"{1}\", mutta se ei ole kelvollinen {2}-sijainti. Tarkista etäsijaintien kohdistukset ja lataustyökalun asetukset.",
"RootFolderCheckMultipleMessage": "Useita juurikansioita puuttuu: {0}",
"SettingsRemotePathMappingLocalPath": "Paikallinen sijainti",
"SettingsRemotePathMappingLocalPathHelpText": "Polku, jonka kautta etäsijaintia tulee käyttää paikallisesti.",
"SettingsRemotePathMappingRemotePath": "Etäsijainti",
"SettingsRemotePathMappingRemotePathHelpText": "Lataustyökalun käyttämän hakemiston juurisijainti",
"SettingsRemotePathMappingRemotePathHelpText": "Lataustyökalun käyttämän kansion juurisijainti.",
"SizeLimit": "Kokorajoitus",
"SystemTimeCheckMessage": "Järjestelmän ajassa on ainakin vuorokauden heitto eivätkä ajoitetut tehtävät tämän vuoksi toimi oikein ennen kuin se on korjattu.",
"UISettingsSummary": "Kalenterin, päiväyksen ja kellonajan sekä kielen ja heikentyneelle värinäölle sopivan tilan asetukset.",
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent-tiedon ilmoitti sovellus, joka kommunikoi API:n kanssa",
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent-tiedon ilmoitti rajapinnan kanssa viestinyt sovellus.",
"WatchLibraryForChangesHelpText": "Suorita automaattinen uudelleentutkinta, kun juurikansiossa havaitaan tiedostomuutoksia.",
"RestartRequiredHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
"AddList": "Lisää lista",
@@ -718,9 +718,9 @@
"ShowBannersHelpText": "Korvaa nimet bannerikuvilla.",
"StatusEndedContinuing": "Jatkuu",
"UnableToLoadMetadataProviderSettings": "Metatietolähteen asetuksia ei voitu ladata",
"UnmappedFiles": "Kartoittamattomat tiedostot",
"UnmappedFiles": "Kohdistamattomat tiedostot",
"UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "Päivittäminen ei ole Docker-säiliössä käytettävissä. Päivitä sen sijaan säiliön kuva.",
"WatchRootFoldersForFileChanges": "Seuraa juurikansioiden tiedostomuutoksia",
"WatchRootFoldersForFileChanges": "Valvo juurikansioiden tiedostomuutoksia",
"WriteMetadataTags": "Tallenna metatietotagit",
"Country": "Maa",
"MonitoringOptions": "Valvonta-asetukset",
@@ -740,40 +740,38 @@
"ForeignIdHelpText": "Ohitettavan kirjailijan/kirjan MusicBrainz-tunniste.",
"IsExpandedShowFileInfo": "Näytä tiedostojen tiedot",
"ApplicationUrlHelpText": "Tämän sovelluksen ulkoinen URL-osoite, johon sisältyy http(s)://, portti ja URL-perusta.",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0}/{1} (yhteensä: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} kappaletta ladattu",
"CollapseMultipleBooksHelpText": "Supista useat samana päivänä julkaistavat albumit.",
"DataFirstBook": "Seuraa ensimmäisiä albumeita. Muita albumeita ei huomioida.",
"DataListMonitorSpecificBook": "Valvo esittäjiä, mutta valvo vain albumeita, jotka on erityisesti lisätty listalle.",
"DataNone": "Albumeita ei valvota",
"EndedAllBooksDownloaded": "Päättynyt (kaikki kappaleet on ladattu)",
"GoToAuthorListing": "Avaa esittäjälistaus",
"ListsSettingsSummary": "Tuotilistat",
"CollapseMultipleBooksHelpText": "Tiivistä useat samana päivänä julkaistavat kirjat.",
"DataFirstBook": "Seuraa ensimmäisiä kirjoja. Muita kirjoja ei huomioida.",
"DataListMonitorSpecificBook": "Valvo kirjailijoita, mutta vain erikseen listalle lisättyjä kirjoja.",
"DataNone": "Kirjoja ei valvota",
"EndedAllBooksDownloaded": "Päättynyt (kaikki kirjat on ladattu)",
"GoToAuthorListing": "Avaa kirjailijalistaus",
"ListsSettingsSummary": "Tuontilistat",
"MusicBrainzAuthorID": "MusicBrainzin kirjailija-ID",
"SearchForNewItems": "Etsi uusia kohteita",
"SelectedCountAuthorsSelectedInterp": "{0} kirjailija(a) valittu",
"TheBooksFilesWillBeDeleted": "Albumin tiedostot poistetaan.",
"TotalBookCountBooksTotalBookFileCountBooksWithFilesInterp": "Yhteensä {0} kappaletta. {1} kappaleelle on tiedostoja.",
"ContinuingAllBooksDownloaded": "Jatkuva (kaikki kappaleet on ladattu)",
"ContinuingNoAdditionalBooksAreExpected": "Abumeita ei odoteta lisää",
"MusicBrainzBookID": "MusicBrainz-kappaletunniste",
"SearchForAllCutoffUnmetBooks": "Etsi kaikkia albumeita, joiden katkaisutasoa ei ole savutettu",
"SearchForMonitoredBooks": "Etsi valvottuja albumeita",
"DataExistingBooks": "Valvo albumeita, joille on tiedostoja tai joita ei ole vielä julkaistu.",
"DataMissingBooks": "Seuraa albumeita, joille ei ole tiedostoja tai joita ei ole vielä julkaistu.",
"TheBooksFilesWillBeDeleted": "Kirjan tiedostot poistetaan.",
"TotalBookCountBooksTotalBookFileCountBooksWithFilesInterp": "Yhteensä {0} kirjaa. {1} kirjalle on tiedostoja.",
"ContinuingAllBooksDownloaded": "Jatkuva (kaikki kirjat on ladattu)",
"ContinuingNoAdditionalBooksAreExpected": "Kirjoja ei odoteta lisää",
"MusicBrainzBookID": "MusicBrainz-kirjatunniste",
"SearchForAllCutoffUnmetBooks": "Etsi kaikkia kirjoja, joiden katkaisutasoa ei ole savutettu",
"SearchForMonitoredBooks": "Etsi valvottuja kirjoja",
"DataExistingBooks": "Valvo kirjoja, joille on tiedostoja tai joita ei ole vielä julkaistu.",
"DataMissingBooks": "Valvo kirjoja, joille ei ole tiedostoja tai joita ei ole vielä julkaistu.",
"EntityName": "Entiteetin nimi",
"EnableAutomaticAddHelpText": "Lisää esittäjät/albumit {appName}iin kun synkronointi suoritetaan käyttöliittymästä tai {appName}in toimesta.",
"IndexerIdHelpText": "Määritä mitä tietolähteitä proofiili koskee",
"IndexerIdHelpText": "Määritä mitä tietolähdettä profiili koskee.",
"IndexerIdHelpTextWarning": "Yksittäisen tietolähteen käyttö sanapainotuksen kanssa saattaa aiheuttaa julkaisujen kaksoiskappaleiden kaappauksia.",
"ChooseImportMethod": "Valitse tuontitila",
"ChooseImportMethod": "Valitse tuontitapa",
"ClickToChangeReleaseGroup": "Vaihda julkaisuryhmää painamalla tästä",
"HardlinkCopyFiles": "Hardlink/tiedostojen kopiointi",
"MoveFiles": "Siirrä tiedostot",
"DataListMonitorAll": "Valvo esittäjiä ja jokaisen esittäjän kaikkia tuontilistan sisältämiä albumeita",
"DataListMonitorAll": "Valvo jokaista tuontilistalla olevaa kirjailijaa ja heidän kaikkia kirjojaan.",
"OnApplicationUpdate": "Kun sovellus päivitetään",
"OnApplicationUpdateHelpText": "Kun sovellus päivitetään",
"Theme": "Teema",
"ThemeHelpText": "Vaihda sovelluksen käyttöliittymän ulkoasua. \"Automaattinen\" vaihtaa vaalean ja tumman tilan välillä järjestelmän teeman mukaan. Innoittanut Theme.Park.",
"ThemeHelpText": "Vaihda sovelluksen käyttöliittymän ulkoasua. \"Automaattinen\" vaihtaa vaalean ja tumman tilan välillä käyttöjärjestelmän teeman mukaan. Innoittanut Theme.Park.",
"EnableRssHelpText": "Käytetään {appName}in etsiessä julkaisuja ajoitetusti RSS-synkronoinnilla.",
"BypassIfHighestQuality": "Ohita, jos korkein laatu",
"CustomFormatScore": "Mukautetun muodon pisteytys",
@@ -784,7 +782,7 @@
"CustomFormat": "Mukautettu muoto",
"CustomFormatSettings": "Mukautettujen muotojen asetukset",
"CustomFormats": "Mukautetut muodot",
"DataFutureBooks": "Seuraa albumeita, joita ei ole vielä julkaistu.",
"DataFutureBooks": "Valvo kirjoja, joita ei ole vielä julkaistu.",
"DeleteCustomFormat": "Poista mukautettu muoto",
"DeleteCustomFormatMessageText": "Haluatko varmasti poistaa mukautetun muodon \"{name}\"?",
"DeleteFormatMessageText": "Haluatko varmasti poistaa muototunnisteen \"{0}\"?",
@@ -793,14 +791,14 @@
"IncludeCustomFormatWhenRenamingHelpText": "Mahdollista tämän muodon käyttö \"{Custom Formats}\" -nimeämiskaavan kanssa.",
"MinFormatScoreHelpText": "Mukautetun muodon vähimmäispisteytys, jolla lataus sallitaan.",
"NegateHelpText": "Jos käytössä, ei mukautettua muotoa sovelleta tämän \"{0}\" -ehdon täsmätessä.",
"UnableToLoadCustomFormats": "Muokattuja muotoja ei voitu ladata.",
"UnableToLoadCustomFormats": "Virhe ladattaessa mukautettuja muotoja",
"UpgradesAllowed": "Päivitykset sallitaan",
"CutoffFormatScoreHelpText": "Kun kirja saavuttaa laaturajoituksen tai tämän mukautetun muodon pisteytyksen, ei siihen enää kaapata uusia julkaisuja tai tuoda päivityksiä.",
"ResetDefinitionTitlesHelpText": "Palauta määritysten nimet ja arvot.",
"ResetDefinitions": "Palauta määritykset",
"ResetTitles": "Palauta nimet",
"ImportListMissingRoot": "Tuontilistalta tai -listoilta puuttuu juurikansio: {0}",
"ImportListMultipleMissingRoots": "Tuontilistoilta puuttuu useita juurikansioita: {0}",
"ImportListMissingRoot": "Tuontilistalta tai -listoilta puuttuu juurikansio: {0}.",
"ImportListMultipleMissingRoots": "Useita tuontilistojen juurikansioita puuttuu: {0}",
"IndexerDownloadClientHelpText": "Määritä tämän tietolähteen kanssa käytettävä lataustyökalu.",
"IndexerTagsHelpText": "Tietolähdettä käytetään vain vähintään yhdellä täsmäävällä tunnisteella merkityille kirjailijoille. Käytä kaikille jättämällä tyhjäksi.",
"HiddenClickToShow": "Piilotettu, näytä painalla",
@@ -811,7 +809,7 @@
"ReplaceWithDash": "Korvaa yhdysmerkillä",
"ReplaceWithSpaceDash": "Korvaa yhdistelmällä \"välilyönti yhdysmerkki\"",
"ReplaceWithSpaceDashSpace": "Korvaa yhdistelmällä \"välilyönti yhdysmerkki välilyönti\"",
"DeleteRemotePathMapping": "Poista etäreittien kartoitus",
"DeleteRemotePathMapping": "Poista etäsijainnin kohdistus",
"BlocklistReleases": "Lisää julkaisut estolistalle",
"DeleteConditionMessageText": "Haluatko varmasti poistaa ehdon \"{name}\"?",
"Negated": "Kielletty",
@@ -820,7 +818,7 @@
"RemoveSelectedItemQueueMessageText": "Haluatko varmasti poistaa jonosta 1 kohteen?",
"RemoveSelectedItems": "Poista valitut kohteet",
"RemoveSelectedItemsQueueMessageText": "Haluatko varmasti poistaa jonosta {0} kohdetta?",
"Required": "Vaaditaan",
"Required": "Pakollinen",
"ResetQualityDefinitions": "Palauta laatumääritykset",
"ResetQualityDefinitionsMessageText": "Haluatko varmasti palauttaa laatumääritykset?",
"NoEventsFound": "Tapahtumia ei löytynyt",
@@ -829,7 +827,7 @@
"ApplyTagsHelpTextHowToApplyAuthors": "Tunnisteisiin kohdistettavat toimenpiteet:",
"DeleteSelectedImportLists": "Poista tuontilista(t)",
"No": "Ei",
"RedownloadFailed": "Lataus epäonnistui",
"RedownloadFailed": "Uudelleenlataus epäonnistui",
"Yes": "Kyllä",
"DeleteSelectedImportListsMessageText": "Haluatko varmasti poistaa valitut {count} tuontilistaa?",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Tunnisteiden käyttö valituissa lataustyökaluissa",
@@ -865,16 +863,16 @@
"FreeSpace": "Vapaa tila",
"ConnectionLost": "Ei yhteyttä",
"ConnectionLostReconnect": "{appName} pyrkii ajoittain muodostamaan yhteyden automaattisesti tai voit painaa alta \"Lataa uudelleen\".",
"RecentChanges": "Viimeisimmät muutokset",
"WhatsNew": "Mi uutta?",
"RecentChanges": "Uusimmat muutokset",
"WhatsNew": "Mikä on uutta?",
"Large": "Suuri",
"LastDuration": "Edellinen kesto",
"LastExecution": "Edellinen suoritus",
"LastWriteTime": "Viimeksi tallennettu",
"LastWriteTime": "Edellinen tallennus",
"Location": "Sijainti",
"NoResultsFound": "Ei tuloksia",
"SomeResultsAreHiddenByTheAppliedFilter": "Joitakin tuloksia piilottaa käytetty suodatin",
"Activity": "Tapahtuma",
"NoResultsFound": "Tuloksia ei löytynyt.",
"SomeResultsAreHiddenByTheAppliedFilter": "Aktiivinen suodatin piilottaa joitakin tuloksia.",
"Activity": "Tapahtumat",
"AddNew": "Lisää uusi",
"Backup": "Varmuuskopiointi",
"NextExecution": "Seuraava suoritus",
@@ -884,15 +882,15 @@
"Iso639-3": "ISO 639-3 -kielikoodit tai \"null\" (pilkuin eroteltuna)",
"ExtraFileExtensionsHelpText": "Pilkuin eroteltu listaus tuotavista oheistiedostoista (.nfo-tiedostot tuodaan \".nfo-orig\"-nimellä).",
"ExtraFileExtensionsHelpTextsExamples": "Esimerkiksi '\"sub, .nfo\" tai \"sub,nfo\".",
"NoCutoffUnmetItems": "Katkaisutasoa saavuttamattomia kohteita ei ole",
"NoCutoffUnmetItems": "Katkaisutasoa saavuttamattomia kohteita ei ole.",
"DeleteSelected": "Poista valitut",
"CountAuthorsSelected": "{selectedCount} tietolähde(ttä) on valittu",
"NoMissingItems": "Ei puuttuvia kohteita",
"CountAuthorsSelected": "{selectedCount} kirjailija(a) on valittu",
"NoMissingItems": "Puuttuvia kohteita ei ole.",
"InvalidUILanguage": "Käytöliittymän kielivalinta on virheellinen. Korjaa se ja tallenna asetukset.",
"MetadataSettingsSummary": "Luo metatietotiedostot kun jaksoja tuodaan tai sarjojen tietoja päivitetään.",
"MetadataSettingsSummary": "Luo metatietotiedostot kun kirjoja tuodaan tai kirjailijoiden tietoja päivitetään.",
"ThereWasAnErrorLoadingThisItem": "Virhe ladattaessa kohdetta",
"ThereWasAnErrorLoadingThisPage": "Virhe ladattaessa sivua",
"DeleteRemotePathMappingMessageText": "Haluatko varmasti poistaa tämä etäsijainnin kartoituksen?",
"DeleteRemotePathMappingMessageText": "Haluatko varmasti poistaa tämän etäsijainnin kohdistuksen?",
"ManageDownloadClients": "Hallitse lataustyökaluja",
"ManageIndexers": "Hallitse tietolähteitä",
"NoIndexersFound": "Tietolähteitä ei löytynyt",
@@ -917,7 +915,7 @@
"EditSelectedIndexers": "Muokkaa valittuja sisältölähteitä",
"LogSQL": "Kirjaa SQL",
"NoDownloadClientsFound": "Lataustyökaluja ei löytynyt",
"RemotePathMappingsInfo": "Etäsijaintien kartoitusta tarvitaan harvoin ja jos {app} ja lataustyökalu suoritetaan samassa järjestelmässä, on parempi käyttää paikallisia polkuja. Lue lisää [wikistä]({wikiLink}).",
"RemotePathMappingsInfo": "Etäsijaintien kohdistuksia tarvitaan harvoin ja jos {app} ja lataustyökalu suoritetaan samassa järjestelmässä, on parempi käyttää paikallisia polkuja. Lue lisää [wikistä]({wikiLink}).",
"IndexerDownloadClientHealthCheckMessage": "Tietolähteet virheellisillä lataustyökaluilla: {0}.",
"NoHistoryBlocklist": "Estohistoriaa ei ole.",
"ErrorLoadingContent": "Virhe ladattaessa tätä sisältöä",
@@ -926,9 +924,9 @@
"ASIN": "ASIN",
"AutoAdd": "Automaattilisäys",
"ManageImportLists": "Tuontilistojen hallinta",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Etsi automaattisesti ja pyri lataamaan eri julkaisu vaikka epäonnistunut julkaisu oli kaapattu manuaalihausta.",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Etsi ja pyri lataamaan eri julkaisu automaattisesti vaikka epäonnistunut julkaisu oli kaapattu manuaalihaun tuloksista.",
"BypassIfAboveCustomFormatScoreHelpText": "Käytä ohitusta, kun julkaisun pisteytys on määritetyn mukautetun muodon vähimmäispisteytystä korkeampi.",
"ApiKeyValidationHealthCheckMessage": "Muuta API-avaimesi ainakin {0} merkin pituiseksi. Voit tehdä tämän asetuksista tai muokkaamalla asetustiedostoa.",
"ApiKeyValidationHealthCheckMessage": "Muuta rajapinnan (API) avain ainakin {0} merkin pituiseksi. Voit tehdä tämän asetuksista tai muokkaamalla asetustiedostoa.",
"ManageLists": "Listojen hallunta",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Määrittää käytetäänkö qBittorrentista määritettyä rakennetta, torrentin alkuperäistä rakennetta vai luodaanko uusi alikansio (qBittorrent 4.3.2+).",
"Implementation": "Toteutus",
@@ -957,5 +955,26 @@
"RemoveMultipleFromDownloadClientHint": "Poistaa latauksen ja ladatut tiedostot lataustyökalusta.",
"RemoveQueueItemRemovalMethod": "Poistotapa",
"RemoveQueueItemRemovalMethodHelpTextWarning": "\"Poista lataustyökalusta\" poistaa latauksen ja sen tiedostot.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "\"Poista lataustyökalusta\" poistaa lataukset ja niiden tiedostot."
"RemoveQueueItemsRemovalMethodHelpTextWarning": "\"Poista lataustyökalusta\" poistaa lataukset ja niiden tiedostot.",
"AutoRedownloadFailedFromInteractiveSearch": "Uudelleenlataus manuaalihaun tuloksista epäonnistui",
"NameFirstLast": "Etunimi sukunimi",
"NameLastFirst": "Sukunimi, etunimi",
"CustomFormatsSpecificationRegularExpressionHelpText": "Mukautetun muodon säännöllisen lausekkeen kirjainkokoa ei huomioida.",
"BlocklistAndSearchHint": "Etsi korvaavaa kohdetta kun kohde lisätään estolistalle.",
"BlocklistAndSearchMultipleHint": "Etsi korvaavia kohteita kun kohteita lisätään estolistalle.",
"ChangeCategory": "Vaihda kategoria",
"BlocklistMultipleOnlyHint": "Lisää estolistalle etsimättä korvaavia kohteita.",
"BlocklistOnlyHint": "Lisää estolistalle etsimättä korvaavaa kohdetta.",
"ChangeCategoryMultipleHint": "Vaihtaa latausten kategoriaksi lataustyökalun \"Tuonnin jälkeinen kategoria\" -asetuksen kategorian.",
"DoNotBlocklistHint": "Poista lisäämättä estolistalle.",
"IgnoreDownloadHint": "Estää {appName}ia käsittelemästä tätä latausta jatkossa.",
"IgnoreDownloadsHint": "Estää {appName}ia käsittelemästä näitä latauksia jatkossa.",
"ChangeCategoryHint": "Vaihtaa latauksen kategoriaksi lataustyökalun \"Tuonnin jälkeinen kategoria\" -asetuksen kategorian.",
"DataLatestBook": "Valvo uusimpia ja tulevia kirjoja",
"RootFolderPathHelpText": "Juurikansio, johon listan kohteet lisätään.",
"AutoRedownloadFailed": "Uudelleenlataus epäonnistui",
"LatestBook": "Uusin kirja",
"TheFollowingFilesWillBeDeleted": "Seuraavat tiedostot poistetaan:",
"CollapseMultipleBooks": "Tiivistä useat kirjat",
"CustomFormatsSpecificationRegularExpression": "Säännöllinen lauseke"
}

View File

@@ -617,7 +617,6 @@
"AuthorFolderFormat": "Format du dossier de l'auteur",
"Authors": "Auteurs",
"Book": "Livre",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} livres téléchargés",
"BookFilesCountMessage": "Aucun fichiers de livre",
"BookMonitoring": "Surveillance des livres",
"BookNaming": "Nommage des livres",
@@ -651,7 +650,6 @@
"DefaultMonitorOptionHelpText": "Quels livres doivent être surveillés lors de l'ajout initial pour les auteurs détectés dans ce dossier",
"DefaultQualityProfileIdHelpText": "Profil de qualité par défaut pour les auteurs détectés dans ce dossier",
"AddMissing": "Ajouter manquant",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Total : {2})",
"InstanceName": "Nom de l'instance",
"InstanceNameHelpText": "Nom de l'instance dans l'onglet et pour le nom de l'application Syslog",
"UseCalibreContentServer": "Serveur de contenu Calibre",
@@ -944,5 +942,18 @@
"ChangeCategoryHint": "Modifie le téléchargement dans la \"catégorie post-importation\" du client de téléchargement",
"AutoRedownloadFailed": "Échec du retéléchargement",
"AutoRedownloadFailedFromInteractiveSearch": "Échec du retéléchargement à partir de la recherche interactive",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Lance une recherche automatique et une tentative de téléchargement d'une version différente si la version trouvée automatiquement échoue"
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Lance une recherche automatique et une tentative de téléchargement d'une version différente si la version trouvée automatiquement échoue",
"DoNotBlocklist": "Ne pas mettre sur liste noire",
"DoNotBlocklistHint": "Supprimer sans mettre sur liste noire",
"IgnoreDownload": "Ignorer le téléchargement",
"IgnoreDownloads": "Ignorer les téléchargements",
"IgnoreDownloadHint": "Empêche {appName} de poursuivre le traitement de ce téléchargement",
"IgnoreDownloadsHint": "Empêche {appName} de poursuivre le traitement de ces téléchargements",
"RemoveMultipleFromDownloadClientHint": "Supprime les téléchargements et les fichiers du client de téléchargement",
"RemoveFromDownloadClientHint": "Supprime le téléchargement et le(s) fichier(s) du client de téléchargement",
"RemoveQueueItemRemovalMethod": "Méthode de suppression",
"RemoveQueueItemRemovalMethodHelpTextWarning": "\"Supprimer du client de téléchargement\" supprimera le téléchargement et le(s) fichier(s) du client de téléchargement.",
"RemoveQueueItem": "Retirer - {sourceTitle}",
"RemoveQueueItemConfirmation": "Êtes-vous sûr de vouloir retirer '{sourceTitle}' de la file d'attente ?",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "Supprimer du client de téléchargement\" supprimera les téléchargements et les fichiers du client de téléchargement."
}

View File

@@ -15,7 +15,7 @@
"BackupRetentionHelpText": "A megőrzési időszaknál régebbi automatikus biztonsági másolatok automatikusan törlődnek",
"Backups": "Biztonsági mentések",
"BindAddress": "Kötési cím",
"BindAddressHelpText": "Érvényes IPv4-cím, vagy „*” minden interfészhez",
"BindAddressHelpText": "Érvényes IP-cím, localhost vagy '*' minden interfészhez",
"BindAddressHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"BookIsDownloading": "A film letöltés alatt",
"BookIsDownloadingInterp": "A film letöltés alatt - {0}% {1}",
@@ -44,13 +44,13 @@
"CompletedDownloadHandling": "Befejezett letöltéskezelés",
"ConnectSettings": "Csatlakozási beállítások",
"Connections": "Kapcsolatok",
"CopyUsingHardlinksHelpText": "Használj Hardlininket, amikor megpróbálsz fájlokat másolni a még Seedelt torrentekből",
"CopyUsingHardlinksHelpText": "A merev hivatkozások lehetővé teszik a Readarr számára, hogy import torrenteket importáljon a sorozat mappájába anélkül, hogy extra lemezterületet foglalna el, vagy a fájl teljes tartalmát másolná. A merev hivatkozások csak akkor működnek, ha a forrás és a cél ugyanazon a köteten található",
"CopyUsingHardlinksHelpTextWarning": "Esetenként az írásvédettség megakadályozza a Seedelt fájlok átnevezését. Ideiglenesen állítsd le a Seedelést, hogy a Radarr át tudja nevezni a fájlokat.",
"CreateEmptyAuthorFoldersHelpText": "Hozzon létre mappákat a hiányzó filmeknek, filmkeresés közben",
"CreateGroup": "Csoport létrehozása",
"CutoffHelpText": "Amint ezt a minőséget eléri, a Radarr többé nem fog filmeket letölteni",
"CutoffUnmet": "Küszöbszint nincs elérve",
"DatabaseMigration": "DB Migráció",
"DatabaseMigration": "Adatbázis-migráció",
"Dates": "Dátumok",
"DelayProfile": "Késleltetési Profil",
"DelayProfiles": "Késleltetési Profilok",
@@ -64,24 +64,24 @@
"DeleteDownloadClientMessageText": "Biztosan törli a(z) \"{name}\" letöltési klienst?",
"DeleteEmptyFolders": "Üres Mappa Törlése",
"DeleteEmptyFoldersHelpText": "Törölje az üres könyvmappákat a lemezfrissítés és a könyvfájlokfájlok törlése során",
"DeleteImportListExclusion": "Az importlista kizárásásainak törlése",
"DeleteImportListExclusion": "Importálási lista kizárásának törlése",
"DeleteImportListExclusionMessageText": "Biztosan törli ezt az importlista-kizárást?",
"DeleteImportListMessageText": "Biztosan törli a(z) „{name}” listát?",
"DeleteIndexer": "Indexer Törlése",
"DeleteIndexer": "Indexelő törlése",
"DeleteIndexerMessageText": "Biztosan törli a(z) \"{name}\" indexelőt?",
"DeleteMetadataProfileMessageText": "Biztosan törli a {0} minőségi profilt?",
"DeleteNotification": "Értesítés Törlése",
"DeleteMetadataProfileMessageText": "Biztosan törli a(z) „{name}” metaadat-profilt?",
"DeleteNotification": "Értesítés törlése",
"DeleteNotificationMessageText": "Biztosan törli a(z) „{name}” értesítést?",
"DeleteQualityProfile": "Minőségi Profil Törlése",
"DeleteQualityProfile": "Törölje a minőségi profilt",
"DeleteQualityProfileMessageText": "Biztosan törli a(z) „{name}” minőségi profilt?",
"DeleteReleaseProfile": "Késleltetési Profil Törlése",
"DeleteReleaseProfile": "Release profil törlése",
"DeleteReleaseProfileMessageText": "Biztos hogy törölni szeretnéd ezt a késleltetési profilt?",
"DeleteSelectedBookFiles": "Töröld a Kiválaszott Film Fájlokat",
"DeleteSelectedBookFilesMessageText": "Biztosan törlöd a kijelölt filmfájlokat?",
"DeleteTag": "Címke Törlése",
"DeleteTag": "Címke törlése",
"DeleteTagMessageText": "Biztosan törlöd a(z) „{0}” címkét?",
"DestinationPath": "Célmappa Útvonala",
"DetailedProgressBar": "Részletes Folyamat Sáv",
"DestinationPath": "Cél útvonal",
"DetailedProgressBar": "Részletes folyamatjelző sáv",
"DetailedProgressBarHelpText": "Szöveg megjelenítése a folyamatjelző sávon",
"DiskSpace": "Lemez terület",
"Docker": "Docker",
@@ -95,18 +95,18 @@
"Edit": "Szerkeszt",
"Edition": "Kiadás",
"Enable": "Aktiválás",
"EnableAutomaticAdd": "Engedélyezd az automatikus hozzáadást",
"EnableAutomaticAdd": "Automatikus hozzáadás engedélyezése",
"EnableAutomaticSearch": "Automatikus keresés engedélyezése",
"EnableColorImpairedMode": "Engedélyezze a színtévesztő módot",
"EnableColorImpairedModeHelpText": "Megváltoztatott színek, hogy a színvak felhasználók jobban meg tudják különböztetni a színkódolt információkat",
"EnableCompletedDownloadHandlingHelpText": "A befejezett letöltések automatikus importálása a letöltési kliensből",
"EnableHelpText": "Engedélyezze a metaadatfájlok létrehozását ehhez a metaadat típushoz",
"EnableHelpText": "Metaadatfájl létrehozásának engedélyezése ehhez a metaadattípushoz",
"EnableInteractiveSearch": "Interaktív keresés engedélyezése",
"EnableRSS": "RSS Engedélyezése",
"EnableSSL": "SSL Engedélyezése",
"EnableSslHelpText": " A hatálybalépéshez újra kell indítani rendszergazdaként",
"Ended": "Vége",
"ErrorLoadingContents": "Hiba történt a tartalom betöltésekor",
"ErrorLoadingContents": "Hiba a tartalom betöltésekor",
"ErrorLoadingPreviews": "Hiba történt az előnézetek betöltése közben",
"Exception": "Kivétel",
"FailedDownloadHandling": "Nem sikerült a letöltés kezelése",
@@ -115,7 +115,7 @@
"FileNames": "Fájlnevek",
"Filename": "Fájl név",
"Files": "Fájlok",
"FirstDayOfWeek": "A Hét Első Napja",
"FirstDayOfWeek": "A hét első napja",
"Fixed": "Rögzített",
"Folder": "Mappa",
"Folders": "Mappák",
@@ -145,7 +145,7 @@
"IgnoredHelpText": "A kiadás elutasításra kerül, ha egy vagy több kifejezést tartalmaz (A kis- és nagybetűket nem vesszük figyelembe)",
"IgnoredPlaceHolder": "Új korlátozás hozzáadása",
"IllRestartLater": "Később Újraindítom",
"ImportExtraFiles": "Extra Fájlok Importálása",
"ImportExtraFiles": "Extra fájlok importálása",
"ImportExtraFilesHelpText": "A megfelelő extra fájlok importálása (feliratok, nfo stb.) a filmfájl importálása után",
"ImportFailedInterp": "Importálás sikertelen: {0}",
"ImportedTo": "Importálva Ide",
@@ -265,7 +265,7 @@
"RemoveCompletedDownloadsHelpText": "Távolítsa el az importált letöltéseket a letöltési kliens előzményeiből",
"RemoveFailedDownloadsHelpText": "Távolítsa el a sikertelen letöltéseket a letöltési kliens előzményeiből",
"RemoveFilter": "Szűrő törlése",
"RemoveFromDownloadClient": "Eltávolítás a letöltési kliensből",
"RemoveFromDownloadClient": "Eltávolítás a Letöltési kliensből",
"RemoveFromQueue": "Eltávolítás a sorból",
"RemoveHelpTextWarning": "Az eltávolítás eltávolítja a letöltést és a fájl(oka)t a letöltési kliensből.",
"RemoveSelected": "Kiválaszottak törlése",
@@ -275,7 +275,7 @@
"RenameBooksHelpText": "A Radarr a meglévő fájlnevet fogja használni, ha az átnevezés le van tiltva",
"Reorder": "Átrendezés",
"ReplaceIllegalCharacters": "Az illegális karakterek cseréje",
"RequiredHelpText": "A kiadásnak tartalmaznia kell legalább egy ilyen kifejezést (a kis- és nagybetűk nem számítanak)",
"RequiredHelpText": "Ennek a {0} feltételnek meg kell egyeznie az egyéni formátum alkalmazásához. Ellenkező esetben egyetlen {0} egyezés elegendő.",
"RequiredPlaceHolder": "Új korlátozás hozzáadása",
"RescanAfterRefreshHelpTextWarning": "A Radarr nem érzékeli automatikusan a fájlok változását, ha nincs beállítva „Always”-re",
"RescanAuthorFolderAfterRefresh": "Film mappa újraszkennelése a frissítés után",
@@ -330,8 +330,8 @@
"SorryThatBookCannotBeFound": "Sajnáljuk, ez a film nem található.",
"Source": "Forrás",
"SourcePath": "Forrás útvonala",
"SslCertPasswordHelpText": "Jelszó a Pfx fájlhoz",
"SslCertPathHelpText": "A PFX fájl elérési útvonala",
"SslCertPasswordHelpText": "Jelszó a pfx fájlhoz",
"SslCertPathHelpText": "A pfx fájl elérési útja",
"SslPortHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"StandardBookFormat": "Normál filmformátum",
"StartTypingOrSelectAPathBelow": "Kezdd el gépelni, vagy válassz az alábbi útvonalak közül",
@@ -348,14 +348,14 @@
"TagIsNotUsedAndCanBeDeleted": "A címke nincs használatban, törölhető",
"Tasks": "Feladatok",
"TestAll": "Összes Tesztelése",
"TestAllClients": "Összes kliens tesztelése",
"TestAllIndexers": "Indexerek tesztelése",
"TestAllLists": "Összes lista tesztelése",
"TestAllClients": "Minden ügyfél tesztelése",
"TestAllIndexers": "Tesztelje az összes indexelőt",
"TestAllLists": "Minden lista tesztelése",
"ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Ez minden indexerre vonatkozni fog, kérjük, tartsa be az általuk meghatározott szabályokat",
"TimeFormat": "Idő formátum",
"Title": "Cím",
"TorrentDelay": "Torrent késleltetés",
"TorrentDelayHelpText": "Eltolás percekben, mielőtt a torrentkliens elkezdi a letöltést",
"TorrentDelay": "Torrent Késleltetés",
"TorrentDelayHelpText": "Percek késése, hogy várjon, mielőtt megragad egy torrentet",
"Torrents": "Torrentek",
"TotalFileSize": "Összesített fájlméret",
"UILanguage": "Felület nyelve",
@@ -451,8 +451,6 @@
"AutomaticallySwitchEdition": "Kiadás automatikus váltása",
"BackupIntervalHelpText": "Időköz a Readarr adatbázis és a beállítások biztonsági mentéséhez",
"Book": "Könyv",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (összesen: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} könyv letöltve",
"BookFilesCountMessage": "Nincsenek könyvfájlok",
"BookNaming": "Könyvek elnevezése",
"BookStudio": "Könyvstúdió",
@@ -520,7 +518,7 @@
"IfYouDontAddAnImportListExclusionAndTheAuthorHasAMetadataProfileOtherThanNoneThenThisBookMayBeReaddedDuringTheNextAuthorRefresh": "Ha nem ad hozzá importlista-kizárást, és a szerző metaadatprofillal rendelkezik, és nem a „Nincs”, akkor ezt a könyvet a következő szerzői frissítés során hozzá lehet adni.",
"IgnoreDeletedBooks": "A törölt könyvek figyelmen kívül hagyása",
"ImportFailures": "Importálási hibák",
"ImportListExclusions": "Lista kizárások importálása",
"ImportListExclusions": "Listakizárások importálása",
"ImportListSettings": "Általános importálási lista beállításai",
"ImportLists": "Listák importálása",
"IndexerIdHelpText": "Adja meg, hogy a profil milyen indexelőre vonatkozik",
@@ -568,7 +566,7 @@
"NETCore": ".NET Mag",
"ApiKeyHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"AnalyticsEnabledHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
"DeleteRootFolderMessageText": "Biztosan törlöd a(z) „{0}” indexert?",
"DeleteRootFolderMessageText": "Biztosan törli a(z) \"{name}\" gyökérmappát?",
"LoadingBooksFailed": "A film fájljainak betöltése sikertelen",
"ProxyPasswordHelpText": "Csak akkor kell megadnod felhasználónevet és jelszót, ha szükséges. Egyébként hagyd üresen.",
"SslCertPathHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
@@ -585,7 +583,7 @@
"UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "A frissítés le van tiltva a docker-tárolóban. A konténer képfájlját frissítsd.",
"UpdateCoversHelpText": "Állítsa be a Calibre könyvborítóit, hogy azok megegyezzenek a Readarrban találhatóakkal",
"UpdateCovers": "Borítók frissítése",
"UnmappedFiles": "Feltérképezetlen fájlok",
"UnmappedFiles": "Leképezés nélküli fájlok",
"UnableToLoadMetadataProviderSettings": "Nem lehet betölteni a metaadat-szolgáltató beállításait",
"TrackNumber": "Dal száma",
"TrackTitle": "Dal címe",
@@ -698,7 +696,7 @@
"ShouldMonitorExistingHelpText": "A listán szereplő azon könyvek automatikus figyelése, amelyek már szerepelnek a Readarrban",
"MassBookSearch": "Tömeges könyvkeresés",
"MassBookSearchWarning": "Biztosan tömeges könyvkeresést kíván végrehajtani {0} könyveknél?",
"SelectAll": "Összes kijelölése",
"SelectAll": "Mindet kiválaszt",
"TheFollowingFilesWillBeDeleted": "A következő fájlok törölve lesznek:",
"UnselectAll": "Minden kijelölés megszüntetése",
"AuthorIndex": "Szerzői Index",
@@ -738,7 +736,7 @@
"OnReleaseImport": "A kiadás importálásakor",
"OnRename": "Átnevezés alatt",
"OnUpgrade": "Minőségjavítás alatt",
"GeneralSettingsSummary": "Port, SSL, felhasználónév / jelszó, proxy, elemzések és frissítések",
"GeneralSettingsSummary": "Port, SSL, felhasználónév/jelszó, proxy, elemzések és frissítések",
"IndexersSettingsSummary": "Letöltőkliensek, letöltések kezelése, és távoli elérési útvonalak",
"MediaManagementSettingsSummary": "Elnevezések, fájlkezelési beállítások és gyökérmappák",
"MissingFromDisk": "A Readarr nem találta a fájlt a lemezen, ezért a fájlt leválasztották az adatbázisban lévő könyvről",
@@ -864,21 +862,21 @@
"OnApplicationUpdate": "Alkalmazásfrissítésről",
"OnApplicationUpdateHelpText": "Alkalmazásfrissítésről",
"Theme": "Téma",
"ThemeHelpText": "Változtasd meg az alkalmazás felhasználói felület témáját, az Auto téma az operációs rendszer témáját használja a Világos vagy Sötét mód beállításához. A Theme.Park ihlette",
"ThemeHelpText": "Változtassa meg az alkalmazás felhasználói felület témáját, az \"Auto\" téma az operációs rendszer témáját használja a Világos vagy Sötét mód beállításához. A Theme.Park ihlette",
"EnableRssHelpText": "Akkor használatos, amikor a Radarr rendszeresen keres kiadásokat az RSS Sync segítségével",
"MinimumCustomFormatScore": "Minimális egyéni formátum pontszám",
"BypassIfHighestQuality": "Kihagyás ha a legjobb minőség elérhető",
"CustomFormatScore": "Egyéni formátum pontszám",
"CustomFormatScore": "Egyéni formátum pontszáma",
"CloneCustomFormat": "Egyéni formátum klónozása",
"Conditions": "Állapot",
"CopyToClipboard": "Másold a Vágólapra",
"CustomFormat": "Egyéni formátum",
"CustomFormatSettings": "Egyéni Formátum Beállításai",
"CustomFormats": "Egyéni Formátumok",
"CustomFormats": "Egyéni formátumok",
"DataFutureBooks": "Figyelje meg azokat az albumokat, amelyek még nem jelentek meg",
"DeleteCustomFormat": "Egyéni formátum törlése",
"DeleteCustomFormatMessageText": "Biztosan törölni akarod a/az '{0}' egyéni formátumot?",
"DeleteFormatMessageText": "Biztosan törlöd a(z) {0} formátumú címkét?",
"DeleteCustomFormatMessageText": "Biztosan törli a(z) „{name}” egyéni formátumot?",
"DeleteFormatMessageText": "Biztosan törölni szeretné a(z) \"{0}\" formátumcímkét?",
"ExportCustomFormat": "Egyéni formátum exportálása",
"Formats": "Formátum",
"IncludeCustomFormatWhenRenamingHelpText": "Tartalmazza a(z) {Custom Formats} átnevezési formátumot",
@@ -933,8 +931,8 @@
"ApplyTagsHelpTextHowToApplyImportLists": "Címkék alkalmazása a kiválasztott importlistákra",
"ApplyTagsHelpTextHowToApplyIndexers": "Címkék alkalmazása a kiválasztott indexelőkre",
"ApplyTagsHelpTextRemove": "Eltávolítás: Távolítsa el a beírt címkéket",
"CountIndexersSelected": "{0} Indexelő(k) kiválasztva",
"DeleteConditionMessageText": "Biztosan törölni akarod a '{0}' feltételt?",
"CountIndexersSelected": "{selectedCount} indexelő(k) kiválasztva",
"DeleteConditionMessageText": "Biztosan törli a(z) „{name}” feltételt?",
"DeleteSelectedDownloadClients": "Letöltési kliens(ek) törlése",
"DeleteSelectedImportLists": "Importálási lista(k) törlése",
"DeleteSelectedIndexers": "Indexelő(k) törlése",
@@ -953,7 +951,7 @@
"Small": "Kicsi",
"SkipRedownloadHelpText": "Megakadályozza, hogy a Lidarr megpróbálja letölteni az eltávolított elemek alternatív kiadásait",
"Events": "Események",
"FreeSpace": "Szabad Tárhely",
"FreeSpace": "Szabad hely",
"NoResultsFound": "Nincs találat",
"SomeResultsAreHiddenByTheAppliedFilter": "Néhány eredményt elrejtett az alkalmazott szűrő",
"System": "Rendszer",
@@ -1001,5 +999,55 @@
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Függetlenül attól, hogy a qBittorrent konfigurált tartalomelrendezését használja, az eredeti elrendezést a torrentből, vagy mindig hozzon létre egy almappát (qBittorrent 4.3.2)",
"InvalidUILanguage": "A felhasználói felület érvénytelen nyelvre van állítva, javítsa ki, és mentse el a beállításait",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Automatikusan keressen és kíséreljen meg egy másik kiadást letölteni, ha az interaktív keresésből sikertelen kiadást ragadtak meg",
"AppUpdatedVersion": "{appName} frissítve lett `{version}` verzióra, ahhoz hogy a legutóbbi változtatások életbelépjenek, töltsd újra a {appName}-t"
"AppUpdatedVersion": "{appName} frissítve lett `{version}` verzióra, ahhoz hogy a legutóbbi változtatások életbelépjenek, töltsd újra a {appName}-t",
"CustomFormatsSpecificationRegularExpression": "Reguláris kifejezés",
"SourceTitle": "Eredeti cím",
"CustomFormatsSpecificationRegularExpressionHelpText": "Az egyéni formátumú reguláris kifejezés nem különbözteti meg a kis- és nagybetűket",
"DoNotBlocklist": "Ne tiltsa le",
"DoNotBlocklistHint": "Eltávolítás tiltólista nélkül",
"IndexerDownloadClientHealthCheckMessage": "Indexelők érvénytelen letöltési kliensekkel: {0}.",
"NoMissingItems": "Nincsenek hiányzó elemek",
"ResetQualityDefinitionsMessageText": "Biztosan vissza szeretné állítani a minőségi definíciókat?",
"DeleteSelected": "Kijelöltek eltávolítása",
"OnAuthorAddedHelpText": "A szerző hozzáadva",
"BypassIfAboveCustomFormatScore": "Kihagyás, ha az egyéni formátum pontszáma felett van",
"Bookshelf": "Könyvespolc",
"DeleteFormat": "Formátum Törlés",
"Loading": "Betöltés",
"CountAuthorsSelected": "{selectedCount} szerző kiválasztva",
"WouldYouLikeToRestoreBackup": "Szeretné visszaállítani a(z) „{name}” biztonsági másolatot?",
"CountDownloadClientsSelected": "{selectedCount} letöltési kliens kiválasztva",
"CountImportListsSelected": "{selectedCount} importálási lista kiválasztva",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "A(z) {0} letöltési kliens a befejezett letöltések eltávolítására van beállítva. Ez azt eredményezheti, hogy a letöltések eltávolításra kerülnek az ügyfélprogramból, mielőtt {1} importálhatná őket.",
"BypassIfAboveCustomFormatScoreHelpText": "Engedélyezze az áthidalást, ha a kiadás pontszáma magasabb, mint a konfigurált minimális egyéni formátum pontszám",
"BypassIfHighestQualityHelpText": "Áthidalási késleltetés, amikor a kiadás a minőségi profilban a legmagasabb engedélyezett minőséggel rendelkezik",
"ListWillRefreshEveryInterp": "A lista minden {0} napon frissül",
"ListRefreshInterval": "Lista frissítési időköz",
"ThereWasAnErrorLoadingThisPage": "Hiba történt az oldal betöltésekor",
"RemotePathMappingsInfo": "Nagyon ritkán van szükség távoli útvonal-leképezésre, ha az {app} és a letöltési kliens ugyanazon a rendszeren van, jobb, ha megfeleltetjük az útvonalakat. További információért lásd: [wiki]({wikiLink}).",
"RemoveSelectedItemBlocklistMessageText": "Biztosan eltávolítja a kijelölt elemeket a tiltólistáról?",
"ThereWasAnErrorLoadingThisItem": "Hiba történt az elem betöltésekor",
"ErrorLoadingContent": "Hiba történt a tartalom betöltésekor",
"BlocklistAndSearch": "Feketelista és Keresés",
"BlocklistAndSearchMultipleHint": "Indítsa el a helyettesítők keresését a tiltólistázás után",
"BlocklistMultipleOnlyHint": "Blokklista helyettesítők keresése nélkül",
"BlocklistOnly": "Csak blokklistára",
"BlocklistOnlyHint": "Blokklista csere keresése nélkül",
"ChangeCategory": "Kategória módosítása",
"ChangeCategoryHint": "A módosítások letöltése az „Importálás utáni kategóriára” a Download Clientből",
"ChangeCategoryMultipleHint": "Módosítja a letöltéseket az „Importálás utáni kategóriára” a Download Clientből",
"IgnoreDownload": "Letöltés figyelmen kívül hagyása",
"IgnoreDownloads": "Letöltések figyelmen kívül hagyása",
"IgnoreDownloadHint": "Leállítja a(z) {appName} alkalmazásnak a letöltés további feldolgozását",
"IgnoreDownloadsHint": "Leállítja a(z) {appName} alkalmazást, hogy feldolgozza ezeket a letöltéseket",
"MinimumCustomFormatScoreHelpText": "Minimális egyéni formátum pontszám a preferált protokoll késleltetésének megkerüléséhez",
"NoCutoffUnmetItems": "Nincsenek teljesítetlen elemek levágása",
"RemoveMultipleFromDownloadClientHint": "Eltávolítja a letöltéseket és fájlokat a letöltési kliensből",
"RemoveFromDownloadClientHint": "Távolítsa el a letöltést és a fájlokat) a letöltési kliensből",
"RemoveQueueItem": "Eltávolítás {sourceTitle}",
"RemoveQueueItemConfirmation": "Biztosan eltávolítja a következőt a sorból: \"{sourceTitle}\"?",
"RemoveQueueItemRemovalMethod": "Eltávolítási módszer",
"RemoveQueueItemRemovalMethodHelpTextWarning": "Az „Eltávolítás a letöltési kliensből” eltávolítja a letöltést és a fájl(oka)t a letöltési kliensből.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "Az „Eltávolítás a letöltési kliensből” eltávolítja a letöltéseket és a fájlokat a letöltési kliensből.",
"OnAuthorAdded": "A szerző hozzáadva"
}

View File

@@ -583,8 +583,6 @@
"BookMonitoring": "Monitoraggio del libro",
"BookNaming": "Nomenclatura del Libro",
"Books": "Libri",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Totale: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} libri scaricati",
"BookFilesCountMessage": "Nessun file di libri",
"AudioFileMetadata": "Scrivi i Metadati sui File Audio",
"Duration": "Durata",

View File

@@ -438,7 +438,6 @@
"SslPortHelpTextWarning": "Requer reinício para aplicar alterações",
"AudioFileMetadata": "Escrever metadados em ficheiros de áudio",
"AuthorNameHelpText": "O nome do autor/livro a eliminar (pode ser qualquer palavra)",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} livros transferidos",
"CalibreOutputProfile": "Perfil de saída do Calibre",
"ChownGroup": "Grupo chown",
"CollapseMultipleBooks": "Fechar múltiplos livros",
@@ -521,7 +520,6 @@
"AuthorFolderFormat": "Formato da pasta do autor",
"Authors": "Autores",
"AutomaticallySwitchEdition": "Alternar edição automaticamente",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0}/{1} (Total: {2})",
"BookNaming": "Nomenclatura de livros",
"BookStudio": "Estúdio de livros",
"Books": "Livros",

View File

@@ -125,7 +125,7 @@
"DeleteNotificationMessageText": "Tem certeza de que deseja excluir a notificação '{name}'?",
"DeleteQualityProfile": "Excluir perfil de qualidade",
"DeleteQualityProfileMessageText": "Tem certeza de que deseja excluir o perfil de qualidade '{name}'?",
"DeleteReleaseProfile": "Excluir perfil de lançamento",
"DeleteReleaseProfile": "Excluir Perfil de Lançamento",
"DeleteReleaseProfileMessageText": "Tem certeza de que deseja excluir este Perfil de Lançamento?",
"DeleteRootFolderMessageText": "Tem certeza de que deseja excluir a pasta raiz '{name}'?",
"DeleteSelectedBookFiles": "Excluir arquivos do livro selecionado",
@@ -435,7 +435,6 @@
"WeekColumnHeader": "Cabeçalho da Coluna da Semana",
"Year": "Ano",
"YesCancel": "Sim, Cancelar",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0}/{1} (Total: {2})",
"WriteBookTagsHelpTextWarning": "Selecionar \"Todos os arquivos\" alterará os arquivos existentes quando forem importados.",
"WatchRootFoldersForFileChanges": "Monitorar alterações nas pastas raiz",
"WatchLibraryForChangesHelpText": "Verificar novamente quando houver alteração em arquivos de uma pasta raiz",
@@ -606,7 +605,7 @@
"ConsoleLogLevel": "Nível de log do console",
"CollapseMultipleBooksHelpText": "Recolher vários livros lançados no mesmo dia",
"CollapseMultipleBooks": "Recolher vários livros",
"ChownGroup": "Fazer chown de grupo",
"ChownGroup": "chown Grupo",
"CatalogNumber": "Número do Catálogo",
"CalibreUsername": "Nome de usuário do Calibre",
"CalibreUrlBase": "URL base do Calibre",
@@ -621,7 +620,6 @@
"Books": "Livros",
"BookNaming": "Nomenclatura de livros",
"BookFilesCountMessage": "Nenhum arquivo de livro",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} livros baixados",
"Book": "Livro",
"BackupIntervalHelpText": "Intervalo para fazer backup das configurações e do banco de dados do Readarr",
"AutomaticallySwitchEdition": "Alternar edição automaticamente",
@@ -791,7 +789,7 @@
"ProxyCheckResolveIpMessage": "Falha ao resolver o endereço IP do host de proxy configurado {0}",
"ProxyCheckBadRequestMessage": "Falha ao testar o proxy. Código de status: {0}",
"ProxyCheckFailedToTestMessage": "Falha ao testar o proxy: {0}",
"QualitySettingsSummary": "Tamanhos de qualidade e nomenclatura",
"QualitySettingsSummary": "Tamanhos e nomenclatura de qualidade",
"Queued": "Na fila",
"QueueIsEmpty": "A fila está vazia",
"RefreshAndScan": "Atualizar & Escanear",

View File

@@ -25,7 +25,7 @@
"AlternateTitles": "Альтернативное название",
"Analytics": "Аналитика",
"AnalyticsEnabledHelpText": "Отправлять в Radarr информацию о использовании и ошибках. Анонимная статистика включает в себя информацию о браузере, какие страницы загружены, сообщения об ошибках, а так же операционной системе. Мы используем эту информацию для выявления ошибок, а так же для разработки нового функционала.",
"AppDataDirectory": "AppData директория",
"AppDataDirectory": "Директория AppData",
"ApplyTags": "Применить тэги",
"Authentication": "Аутентификация",
"AuthenticationMethodHelpText": "Необходим логин и пароль для доступа в Radarr",
@@ -725,5 +725,6 @@
"ResetQualityDefinitionsMessageText": "Вы уверены, что хотите сбросить определения качества?",
"DeleteRemotePathMappingMessageText": "Вы уверены, что хотите удалить это сопоставление удаленного пути?",
"RemotePathMappingsInfo": "Сопоставление удаленных путей требуется крайне редко, если {app} и клиент загрузки находятся в одной системе, то лучше согласовать пути. Более подробную информацию можно найти в [wiki]({wikiLink}).",
"WouldYouLikeToRestoreBackup": "Желаете восстановить резервную копию {name} ?"
"WouldYouLikeToRestoreBackup": "Желаете восстановить резервную копию {name} ?",
"CustomFormatsSpecificationRegularExpression": "Регулярное выражение"
}

View File

@@ -536,7 +536,6 @@
"AudioFileMetadata": "Skriv Metadata till Ljudfiler",
"BackupIntervalHelpText": "Intervall mellan automatiska säkerhetskopior",
"Book": "Bok",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Totalt: {2})",
"AnyEditionOkHelpText": "Readarr kommer automatiskt byta till den versionen som matchar nedladdade filer",
"AutomaticallySwitchEdition": "Automatiskt Byt Version",
"HideBooks": "Dölj Böcker",
@@ -550,7 +549,6 @@
"OnBookRetagHelpText": "När Bok-Omtaggas",
"SkipPartBooksAndSets": "Hoppa böcker som är i delar eller uppsättningar",
"SkipRedownload": "Hoppa Åternedladdning",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} böcker nedladdade",
"BookFilesCountMessage": "Inga bokfiler",
"BookMonitoring": "Boken Bevakas",
"BookNaming": "Bok Namngivning",

View File

@@ -541,7 +541,7 @@
"Yesterday": "Dün",
"FailedToLoadQueue": "Sıra yüklenemedi",
"RestartRequiredHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"AddList": "Liste ekle",
"AddList": "Liste Ekleyin",
"RenameFiles": "Yeniden Adlandır",
"Test": "Ölçek",
"ImportListExclusions": "İçe Aktarma Listesi Hariç Tutmasını Sil",
@@ -622,8 +622,8 @@
"TotalSpace": "Toplam alan",
"Backup": "Destek olmak",
"Medium": "Orta",
"Activity": "Aktivite",
"AddNew": "Yeni ekle",
"Activity": "Etkinlik",
"AddNew": "Yeni Ekle",
"Large": "Büyük",
"LastDuration": "lastDuration",
"AllResultsAreHiddenByTheAppliedFilter": "Tüm sonuçlar, uygulanan filtre tarafından gizlenir",

View File

@@ -23,7 +23,7 @@
"CloneProfile": "Клонувати профіль",
"Close": "Закрити",
"AddingTag": "Додавання тегу",
"AddListExclusion": "Додати винятки списку",
"AddListExclusion": "Додати виняток зі списку",
"About": "Про нас",
"Actions": "Дії",
"All": "Всі",
@@ -644,6 +644,6 @@
"NoChange": "Без змін",
"ResetQualityDefinitions": "Скинути визначення якості",
"SetTags": "Встановити теги",
"AddNew": "Додати новий",
"AddNew": "Додати",
"Activity": "Активність"
}

View File

@@ -591,8 +591,6 @@
"AddList": "添加列表",
"BookList": "书籍清单",
"Books": "书籍",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (全部: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} 书籍已下载",
"BookFilesCountMessage": "无书籍文件",
"AutomaticallySwitchEdition": "自动切换版本",
"AllAuthorBooks": "该作者所有书籍",
@@ -1025,5 +1023,6 @@
"DownloadClientQbittorrentSettingsContentLayout": "内容布局",
"ExtraFileExtensionsHelpTextsExamples": "示例:’.sub,.nfosub,nfo",
"InvalidUILanguage": "您的UI设置为无效语言请纠正并保存设置",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "是否使用 qBittorrent 配置的内容布局使用种子的原始布局或始终创建子文件夹qBittorrent 4.3.2+"
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "是否使用 qBittorrent 配置的内容布局使用种子的原始布局或始终创建子文件夹qBittorrent 4.3.2+",
"ChangeCategory": "改变分类"
}

View File

@@ -105,11 +105,12 @@ namespace NzbDrone.Core.Update
return false;
}
var tempFolder = _appFolderInfo.TempFolder;
var updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder();
if (_diskProvider.GetTotalSize(updateSandboxFolder) < 1.Gigabytes())
if (_diskProvider.GetTotalSize(tempFolder) < 1.Gigabytes())
{
_logger.Warn("Temporary location '{0}' has less than 1 GB free space, Readarr may not be able to update itself.", updateSandboxFolder);
_logger.Warn("Temporary location '{0}' has less than 1 GB free space, Readarr may not be able to update itself.", tempFolder);
}
var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName);

View File

@@ -7,7 +7,7 @@ using Readarr.Api.V1.Author;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class AuthorEditorFixture : IntegrationTest
{
private void GivenExistingAuthor()

View File

@@ -7,7 +7,7 @@ using NUnit.Framework;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class AuthorFixture : IntegrationTest
{
[Test]

View File

@@ -4,7 +4,7 @@ using NUnit.Framework;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class AuthorLookupFixture : IntegrationTest
{
[TestCase("Robert Harris", "Robert Harris")]

View File

@@ -6,7 +6,7 @@ using Readarr.Api.V1.Blocklist;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class BlocklistFixture : IntegrationTest
{
private AuthorResource _author;

View File

@@ -9,7 +9,7 @@ using Readarr.Api.V1.Books;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class CalendarFixture : IntegrationTest
{
public ClientBase<BookResource> Calendar;

View File

@@ -8,7 +8,7 @@ using Readarr.Api.V1.RootFolders;
namespace NzbDrone.Integration.Test.ApiTests.WantedTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class CutoffUnmetFixture : IntegrationTest
{
[SetUp]

View File

@@ -7,7 +7,7 @@ using Readarr.Api.V1.RootFolders;
namespace NzbDrone.Integration.Test.ApiTests.WantedTests
{
[TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-01-31 00:00:00Z")]
[Ignore("Waiting for metadata to be back again", Until = "2024-03-15 00:00:00Z")]
public class MissingFixture : IntegrationTest
{
[SetUp]

View File

@@ -8968,6 +8968,11 @@
"ratings": {
"$ref": "#/components/schemas/Ratings"
},
"lastSearchTime": {
"type": "string",
"format": "date-time",
"nullable": true
},
"cleanTitle": {
"type": "string",
"nullable": true

View File

@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Authentication;
using NzbDrone.Core.Configuration;
@@ -46,7 +47,17 @@ namespace Readarr.Http.Authentication
await HttpContext.SignInAsync(AuthenticationType.Forms.ToString(), new ClaimsPrincipal(new ClaimsIdentity(claims, "Cookies", "user", "identifier")), authProperties);
return Redirect(_configFileProvider.UrlBase + "/");
if (returnUrl.IsNullOrWhiteSpace())
{
return Redirect(_configFileProvider.UrlBase + "/");
}
if (_configFileProvider.UrlBase.IsNullOrWhiteSpace() || returnUrl.StartsWith(_configFileProvider.UrlBase))
{
return Redirect(returnUrl);
}
return Redirect(_configFileProvider.UrlBase + returnUrl);
}
[HttpGet("logout")]