mirror of
https://github.com/Readarr/Readarr.git
synced 2026-03-26 17:44:27 -04:00
Compare commits
44 Commits
v0.3.17.24
...
v0.3.20.24
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3407cc9a7a | ||
|
|
4829916f0a | ||
|
|
c505eafd30 | ||
|
|
07f218f294 | ||
|
|
42751b598b | ||
|
|
5e7e0eb50b | ||
|
|
d6c631457c | ||
|
|
12ee76d222 | ||
|
|
3ea80038d3 | ||
|
|
55404cdf24 | ||
|
|
83a9cd4f3e | ||
|
|
3572d7330d | ||
|
|
a9b652a280 | ||
|
|
8efb2eb71a | ||
|
|
17094f1998 | ||
|
|
ddf5dc25a1 | ||
|
|
fa2614954b | ||
|
|
2e2894b3d3 | ||
|
|
59ff407e76 | ||
|
|
bbd7b9f92e | ||
|
|
c77d820763 | ||
|
|
3327ed0f49 | ||
|
|
44009e980b | ||
|
|
02fd733223 | ||
|
|
2fa9576d05 | ||
|
|
c7ee278ee4 | ||
|
|
d72c27ceed | ||
|
|
7a20fe2288 | ||
|
|
042b62a2a5 | ||
|
|
88141e9d63 | ||
|
|
7fa1114edf | ||
|
|
d4262532e2 | ||
|
|
a21f83aae1 | ||
|
|
d659e86a7d | ||
|
|
0b924005ec | ||
|
|
ba2fad5d9c | ||
|
|
58416cee67 | ||
|
|
38124313c7 | ||
|
|
3fc9f6c0a4 | ||
|
|
79ce5abd53 | ||
|
|
7f01d597cb | ||
|
|
31f35df71d | ||
|
|
faeb78801c | ||
|
|
bd5695f2dd |
@@ -9,14 +9,14 @@ variables:
|
||||
testsFolder: './_tests'
|
||||
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
|
||||
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
|
||||
majorVersion: '0.3.17'
|
||||
majorVersion: '0.3.20'
|
||||
minorVersion: $[counter('minorVersion', 1)]
|
||||
readarrVersion: '$(majorVersion).$(minorVersion)'
|
||||
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
||||
sentryOrg: 'servarr'
|
||||
sentryUrl: 'https://sentry.servarr.com'
|
||||
dotnetVersion: '6.0.417'
|
||||
nodeVersion: '16.X'
|
||||
nodeVersion: '20.X'
|
||||
innoVersion: '6.2.0'
|
||||
windowsImage: 'windows-2022'
|
||||
linuxImage: 'ubuntu-20.04'
|
||||
|
||||
@@ -218,10 +218,12 @@ class HistoryRow extends Component {
|
||||
key={name}
|
||||
className={styles.details}
|
||||
>
|
||||
<IconButton
|
||||
name={icons.INFO}
|
||||
onPress={this.onDetailsPress}
|
||||
/>
|
||||
<div className={styles.actionContents}>
|
||||
<IconButton
|
||||
name={icons.INFO}
|
||||
onPress={this.onDetailsPress}
|
||||
/>
|
||||
</div>
|
||||
</TableRowCell>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ class BookRow extends Component {
|
||||
releaseDate,
|
||||
title,
|
||||
seriesTitle,
|
||||
authorName,
|
||||
position,
|
||||
pageCount,
|
||||
ratings,
|
||||
@@ -211,6 +212,7 @@ class BookRow extends Component {
|
||||
bookId={id}
|
||||
authorId={authorId}
|
||||
bookTitle={title}
|
||||
authorName={authorName}
|
||||
/>
|
||||
);
|
||||
}
|
||||
@@ -229,6 +231,7 @@ BookRow.propTypes = {
|
||||
releaseDate: PropTypes.string,
|
||||
title: PropTypes.string.isRequired,
|
||||
seriesTitle: PropTypes.string.isRequired,
|
||||
authorName: PropTypes.string.isRequired,
|
||||
position: PropTypes.string,
|
||||
pageCount: PropTypes.number,
|
||||
ratings: PropTypes.object.isRequired,
|
||||
|
||||
@@ -33,6 +33,7 @@ function createMapStateToProps() {
|
||||
(author = {}, bookFiles, bookId) => {
|
||||
return {
|
||||
authorMonitored: author.monitored,
|
||||
authorName: author.authorName,
|
||||
bookFiles: bookFiles[bookId] ?? []
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -38,6 +38,7 @@ class BookSearchCell extends Component {
|
||||
const {
|
||||
bookId,
|
||||
bookTitle,
|
||||
authorName,
|
||||
isSearching,
|
||||
onSearchPress,
|
||||
...otherProps
|
||||
@@ -60,6 +61,7 @@ class BookSearchCell extends Component {
|
||||
isOpen={this.state.isDetailsModalOpen}
|
||||
bookId={bookId}
|
||||
bookTitle={bookTitle}
|
||||
authorName={authorName}
|
||||
onModalClose={this.onDetailsModalClose}
|
||||
{...otherProps}
|
||||
/>
|
||||
@@ -73,6 +75,7 @@ BookSearchCell.propTypes = {
|
||||
bookId: PropTypes.number.isRequired,
|
||||
authorId: PropTypes.number.isRequired,
|
||||
bookTitle: PropTypes.string.isRequired,
|
||||
authorName: PropTypes.string.isRequired,
|
||||
isSearching: PropTypes.bool.isRequired,
|
||||
onSearchPress: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
);
|
||||
|
||||
@@ -9,19 +9,21 @@ function BookInteractiveSearchModal(props) {
|
||||
isOpen,
|
||||
bookId,
|
||||
bookTitle,
|
||||
authorName,
|
||||
onModalClose
|
||||
} = props;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isOpen={isOpen}
|
||||
size={sizes.EXTRA_LARGE}
|
||||
size={sizes.EXTRA_EXTRA_LARGE}
|
||||
closeOnBackgroundClick={false}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
<BookInteractiveSearchModalContent
|
||||
bookId={bookId}
|
||||
bookTitle={bookTitle}
|
||||
authorName={authorName}
|
||||
onModalClose={onModalClose}
|
||||
/>
|
||||
</Modal>
|
||||
@@ -32,6 +34,7 @@ BookInteractiveSearchModal.propTypes = {
|
||||
isOpen: PropTypes.bool.isRequired,
|
||||
bookId: PropTypes.number.isRequired,
|
||||
bookTitle: PropTypes.string.isRequired,
|
||||
authorName: PropTypes.string.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
|
||||
@@ -7,18 +7,23 @@ import ModalFooter from 'Components/Modal/ModalFooter';
|
||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||
import { scrollDirections } from 'Helpers/Props';
|
||||
import InteractiveSearchConnector from 'InteractiveSearch/InteractiveSearchConnector';
|
||||
import translate from 'Utilities/String/translate';
|
||||
|
||||
function BookInteractiveSearchModalContent(props) {
|
||||
const {
|
||||
bookId,
|
||||
bookTitle,
|
||||
authorName,
|
||||
onModalClose
|
||||
} = props;
|
||||
|
||||
return (
|
||||
<ModalContent onModalClose={onModalClose}>
|
||||
<ModalHeader>
|
||||
Interactive Search {bookId != null && `- ${bookTitle}`}
|
||||
{bookId === null ?
|
||||
translate('InteractiveSearchModalHeader') :
|
||||
translate('InteractiveSearchModalHeaderBookAuthor', { bookTitle, authorName })
|
||||
}
|
||||
</ModalHeader>
|
||||
|
||||
<ModalBody scrollDirection={scrollDirections.BOTH}>
|
||||
@@ -32,7 +37,7 @@ function BookInteractiveSearchModalContent(props) {
|
||||
|
||||
<ModalFooter>
|
||||
<Button onPress={onModalClose}>
|
||||
Close
|
||||
{translate('Close')}
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
@@ -42,6 +47,7 @@ function BookInteractiveSearchModalContent(props) {
|
||||
BookInteractiveSearchModalContent.propTypes = {
|
||||
bookId: PropTypes.number.isRequired,
|
||||
bookTitle: PropTypes.string.isRequired,
|
||||
authorName: PropTypes.string.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { maxBy } from 'lodash';
|
||||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import FormInputGroup from 'Components/Form/FormInputGroup';
|
||||
@@ -50,7 +51,7 @@ class FilterBuilderModalContent extends Component {
|
||||
if (id) {
|
||||
dispatchSetFilter({ selectedFilterKey: id });
|
||||
} else {
|
||||
const last = customFilters[customFilters.length -1];
|
||||
const last = maxBy(customFilters, 'id');
|
||||
dispatchSetFilter({ selectedFilterKey: last.id });
|
||||
}
|
||||
|
||||
@@ -108,7 +109,7 @@ class FilterBuilderModalContent extends Component {
|
||||
this.setState({
|
||||
labelErrors: [
|
||||
{
|
||||
message: 'Label is required'
|
||||
message: translate('LabelIsRequired')
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -146,13 +147,13 @@ class FilterBuilderModalContent extends Component {
|
||||
return (
|
||||
<ModalContent onModalClose={onModalClose}>
|
||||
<ModalHeader>
|
||||
Custom Filter
|
||||
{translate('CustomFilter')}
|
||||
</ModalHeader>
|
||||
|
||||
<ModalBody>
|
||||
<div className={styles.labelContainer}>
|
||||
<div className={styles.label}>
|
||||
Label
|
||||
{translate('Label')}
|
||||
</div>
|
||||
|
||||
<div className={styles.labelInputContainer}>
|
||||
@@ -195,7 +196,7 @@ class FilterBuilderModalContent extends Component {
|
||||
|
||||
<ModalFooter>
|
||||
<Button onPress={onCancelPress}>
|
||||
Cancel
|
||||
{translate('Cancel')}
|
||||
</Button>
|
||||
|
||||
<SpinnerErrorButton
|
||||
@@ -203,7 +204,7 @@ class FilterBuilderModalContent extends Component {
|
||||
error={saveError}
|
||||
onPress={this.onSaveFilterPress}
|
||||
>
|
||||
Save
|
||||
{translate('Save')}
|
||||
</SpinnerErrorButton>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
|
||||
@@ -37,8 +37,8 @@ class CustomFilter extends Component {
|
||||
dispatchSetFilter
|
||||
} = this.props;
|
||||
|
||||
// Assume that delete and then unmounting means the delete was successful.
|
||||
// Moving this check to a ancestor would be more accurate, but would have
|
||||
// Assume that delete and then unmounting means the deletion was successful.
|
||||
// Moving this check to an ancestor would be more accurate, but would have
|
||||
// more boilerplate.
|
||||
if (this.state.isDeleting && id === selectedFilterKey) {
|
||||
dispatchSetFilter({ selectedFilterKey: 'all' });
|
||||
|
||||
@@ -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})`
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -91,6 +91,7 @@ class TextTagInputConnector extends Component {
|
||||
render() {
|
||||
return (
|
||||
<TagInput
|
||||
delimiters={['Tab', 'Enter', ',']}
|
||||
tagList={[]}
|
||||
onTagAdd={this.onTagAdd}
|
||||
onTagDelete={this.onTagDelete}
|
||||
|
||||
@@ -63,6 +63,13 @@
|
||||
width: 1280px;
|
||||
}
|
||||
|
||||
|
||||
.extraExtraLarge {
|
||||
composes: modal;
|
||||
|
||||
width: 1600px;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: $breakpointExtraLarge) {
|
||||
.modal.extraLarge {
|
||||
width: 90%;
|
||||
@@ -90,7 +97,8 @@
|
||||
.modal.small,
|
||||
.modal.medium,
|
||||
.modal.large,
|
||||
.modal.extraLarge {
|
||||
.modal.extraLarge,
|
||||
.modal.extraExtraLarge {
|
||||
max-height: 100%;
|
||||
width: 100%;
|
||||
height: 100% !important;
|
||||
|
||||
1
frontend/src/Components/Modal/Modal.css.d.ts
vendored
1
frontend/src/Components/Modal/Modal.css.d.ts
vendored
@@ -1,6 +1,7 @@
|
||||
// This file is automatically generated.
|
||||
// Please do not change this file!
|
||||
interface CssExports {
|
||||
'extraExtraLarge': string;
|
||||
'extraLarge': string;
|
||||
'large': string;
|
||||
'medium': string;
|
||||
|
||||
@@ -3,5 +3,5 @@ export const SMALL = 'small';
|
||||
export const MEDIUM = 'medium';
|
||||
export const LARGE = 'large';
|
||||
export const EXTRA_LARGE = 'extraLarge';
|
||||
|
||||
export const all = [EXTRA_SMALL, SMALL, MEDIUM, LARGE, EXTRA_LARGE];
|
||||
export const EXTRA_EXTRA_LARGE = 'extraExtraLarge';
|
||||
export const all = [EXTRA_SMALL, SMALL, MEDIUM, LARGE, EXTRA_LARGE, EXTRA_EXTRA_LARGE];
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -48,7 +48,7 @@ class InteractiveImportModal extends Component {
|
||||
return (
|
||||
<Modal
|
||||
isOpen={isOpen}
|
||||
size={sizes.EXTRA_LARGE}
|
||||
size={sizes.EXTRA_EXTRA_LARGE}
|
||||
closeOnBackgroundClick={false}
|
||||
onModalClose={onModalClose}
|
||||
>
|
||||
|
||||
@@ -8,12 +8,11 @@
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.title {
|
||||
composes: cell;
|
||||
}
|
||||
|
||||
.title div {
|
||||
overflow-wrap: break-word;
|
||||
.titleContent {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.indexer {
|
||||
|
||||
@@ -11,7 +11,7 @@ interface CssExports {
|
||||
'quality': string;
|
||||
'rejected': string;
|
||||
'size': string;
|
||||
'title': string;
|
||||
'titleContent': string;
|
||||
}
|
||||
export const cssExports: CssExports;
|
||||
export default cssExports;
|
||||
|
||||
@@ -153,10 +153,12 @@ class InteractiveSearchRow extends Component {
|
||||
{formatAge(age, ageHours, ageMinutes)}
|
||||
</TableRowCell>
|
||||
|
||||
<TableRowCell className={styles.title}>
|
||||
<Link to={infoUrl}>
|
||||
{title}
|
||||
</Link>
|
||||
<TableRowCell>
|
||||
<div className={styles.titleContent}>
|
||||
<Link to={infoUrl}>
|
||||
{title}
|
||||
</Link>
|
||||
</div>
|
||||
</TableRowCell>
|
||||
|
||||
<TableRowCell className={styles.indexer}>
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -12,6 +12,7 @@ import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
|
||||
import PageToolbarSeparator from 'Components/Page/Toolbar/PageToolbarSeparator';
|
||||
import Table from 'Components/Table/Table';
|
||||
import TableBody from 'Components/Table/TableBody';
|
||||
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
|
||||
import TablePager from 'Components/Table/TablePager';
|
||||
import { align, icons, kinds } from 'Helpers/Props';
|
||||
import getFilterValue from 'Utilities/Filter/getFilterValue';
|
||||
@@ -173,6 +174,16 @@ class CutoffUnmet extends Component {
|
||||
</PageToolbarSection>
|
||||
|
||||
<PageToolbarSection alignContent={align.RIGHT}>
|
||||
<TableOptionsModalWrapper
|
||||
{...otherProps}
|
||||
columns={columns}
|
||||
>
|
||||
<PageToolbarButton
|
||||
label={translate('Options')}
|
||||
iconName={icons.TABLE}
|
||||
/>
|
||||
</TableOptionsModalWrapper>
|
||||
|
||||
<FilterMenu
|
||||
alignMenu={align.RIGHT}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
|
||||
@@ -84,6 +84,7 @@ function CutoffUnmetRow(props) {
|
||||
bookId={id}
|
||||
authorId={author.id}
|
||||
bookTitle={title}
|
||||
authorName={author.authorName}
|
||||
bookEntity={bookEntities.WANTED_CUTOFF_UNMET}
|
||||
showOpenAuthorButton={true}
|
||||
/>
|
||||
|
||||
@@ -12,6 +12,7 @@ import PageToolbarSection from 'Components/Page/Toolbar/PageToolbarSection';
|
||||
import PageToolbarSeparator from 'Components/Page/Toolbar/PageToolbarSeparator';
|
||||
import Table from 'Components/Table/Table';
|
||||
import TableBody from 'Components/Table/TableBody';
|
||||
import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptionsModalWrapper';
|
||||
import TablePager from 'Components/Table/TablePager';
|
||||
import { align, icons, kinds } from 'Helpers/Props';
|
||||
import InteractiveImportModal from 'InteractiveImport/InteractiveImportModal';
|
||||
@@ -190,6 +191,16 @@ class Missing extends Component {
|
||||
</PageToolbarSection>
|
||||
|
||||
<PageToolbarSection alignContent={align.RIGHT}>
|
||||
<TableOptionsModalWrapper
|
||||
{...otherProps}
|
||||
columns={columns}
|
||||
>
|
||||
<PageToolbarButton
|
||||
label={translate('Options')}
|
||||
iconName={icons.TABLE}
|
||||
/>
|
||||
</TableOptionsModalWrapper>
|
||||
|
||||
<FilterMenu
|
||||
alignMenu={align.RIGHT}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
|
||||
@@ -84,6 +84,7 @@ function MissingRow(props) {
|
||||
bookId={id}
|
||||
authorId={author.id}
|
||||
bookTitle={title}
|
||||
authorName={author.authorName}
|
||||
bookEntity={bookEntities.WANTED_MISSING}
|
||||
showOpenAuthorButton={true}
|
||||
/>
|
||||
|
||||
@@ -3,13 +3,16 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
|
||||
<!-- Chrome, Opera, and Firefox OS -->
|
||||
<meta name="theme-color" content="#3a3f51" />
|
||||
<!-- Windows Phone -->
|
||||
<meta name="msapplication-navbutton-color" content="#3a3f51" />
|
||||
<!-- Android/Apple Phone -->
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<meta name="description" content="Readarr">
|
||||
|
||||
|
||||
@@ -3,13 +3,16 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
|
||||
<!-- Chrome, Opera, and Firefox OS -->
|
||||
<meta name="theme-color" content="#3a3f51" />
|
||||
<!-- Windows Phone -->
|
||||
<meta name="msapplication-navbutton-color" content="#3a3f51" />
|
||||
<!-- Android/Apple Phone -->
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<meta name="description" content="Readarr" />
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Net.Security;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
@@ -249,6 +251,18 @@ namespace NzbDrone.Common.Http.Dispatchers
|
||||
return _credentialCache.Get("credentialCache", () => new CredentialCache());
|
||||
}
|
||||
|
||||
private static bool HasRoutableIPv4Address()
|
||||
{
|
||||
// Get all IPv4 addresses from all interfaces and return true if there are any with non-loopback addresses
|
||||
var networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
|
||||
|
||||
return networkInterfaces.Any(ni =>
|
||||
ni.OperationalStatus == OperationalStatus.Up &&
|
||||
ni.GetIPProperties().UnicastAddresses.Any(ip =>
|
||||
ip.Address.AddressFamily == AddressFamily.InterNetwork &&
|
||||
!IPAddress.IsLoopback(ip.Address)));
|
||||
}
|
||||
|
||||
private static async ValueTask<Stream> onConnect(SocketsHttpConnectionContext context, CancellationToken cancellationToken)
|
||||
{
|
||||
// Until .NET supports an implementation of Happy Eyeballs (https://tools.ietf.org/html/rfc8305#section-2), let's make IPv4 fallback work in a simple way.
|
||||
@@ -272,10 +286,8 @@ namespace NzbDrone.Common.Http.Dispatchers
|
||||
}
|
||||
catch
|
||||
{
|
||||
// very naively fallback to ipv4 permanently for this execution based on the response of the first connection attempt.
|
||||
// note that this may cause users to eventually get switched to ipv4 (on a random failure when they are switching networks, for instance)
|
||||
// but in the interest of keeping this implementation simple, this is acceptable.
|
||||
useIPv6 = false;
|
||||
// Do not retry IPv6 if a routable IPv4 address is available, otherwise continue to attempt IPv6 connections.
|
||||
useIPv6 = !HasRoutableIPv4Address();
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads
|
||||
ExceptionVerification.IgnoreWarns();
|
||||
}
|
||||
|
||||
[TestCase("Harry Potter and the sorcerer's stone a summary of the novel", 23314781)]
|
||||
[TestCase("Harry Potter and the sorcerer's stone a detailed summary", 61800696)]
|
||||
[TestCase("B0192CTMYG", 61209488)]
|
||||
[TestCase("9780439554930", 48517161)]
|
||||
public void successful_book_search(string title, int expected)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42,17 +42,18 @@ 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 =>
|
||||
{
|
||||
opt.PreviewOnly = false;
|
||||
opt.Timeout = TimeSpan.FromSeconds(60);
|
||||
opt.Timeout = TimeSpan.FromMinutes(5);
|
||||
})
|
||||
.Configure<SelectingProcessorAccessorOptions>(cfg =>
|
||||
{
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Dynamic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Common.Http;
|
||||
using NzbDrone.Common.Serializer;
|
||||
|
||||
@@ -101,11 +103,21 @@ namespace NzbDrone.Core.Download.Clients.Deluge
|
||||
|
||||
public string AddTorrentFromMagnet(string magnetLink, DelugeSettings settings)
|
||||
{
|
||||
var options = new
|
||||
dynamic options = new ExpandoObject();
|
||||
|
||||
options.add_paused = settings.AddPaused;
|
||||
options.remove_at_ratio = false;
|
||||
|
||||
if (settings.DownloadDirectory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
add_paused = settings.AddPaused,
|
||||
remove_at_ratio = false
|
||||
};
|
||||
options.download_location = settings.DownloadDirectory;
|
||||
}
|
||||
|
||||
if (settings.CompletedDirectory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
options.move_completed_path = settings.CompletedDirectory;
|
||||
options.move_completed = true;
|
||||
}
|
||||
|
||||
var response = ProcessRequest<string>(settings, "core.add_torrent_magnet", magnetLink, options);
|
||||
|
||||
@@ -114,11 +126,21 @@ namespace NzbDrone.Core.Download.Clients.Deluge
|
||||
|
||||
public string AddTorrentFromFile(string filename, byte[] fileContent, DelugeSettings settings)
|
||||
{
|
||||
var options = new
|
||||
dynamic options = new ExpandoObject();
|
||||
|
||||
options.add_paused = settings.AddPaused;
|
||||
options.remove_at_ratio = false;
|
||||
|
||||
if (settings.DownloadDirectory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
add_paused = settings.AddPaused,
|
||||
remove_at_ratio = false
|
||||
};
|
||||
options.download_location = settings.DownloadDirectory;
|
||||
}
|
||||
|
||||
if (settings.CompletedDirectory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
options.move_completed_path = settings.CompletedDirectory;
|
||||
options.move_completed = true;
|
||||
}
|
||||
|
||||
var response = ProcessRequest<string>(settings, "core.add_torrent_file", filename, fileContent, options);
|
||||
return response;
|
||||
|
||||
@@ -59,6 +59,12 @@ namespace NzbDrone.Core.Download.Clients.Deluge
|
||||
[FieldDefinition(9, Label = "Add Paused", Type = FieldType.Checkbox)]
|
||||
public bool AddPaused { get; set; }
|
||||
|
||||
[FieldDefinition(10, Label = "DownloadClientDelugeSettingsDirectory", Type = FieldType.Textbox, Advanced = true, HelpText = "DownloadClientDelugeSettingsDirectoryHelpText")]
|
||||
public string DownloadDirectory { get; set; }
|
||||
|
||||
[FieldDefinition(11, Label = "DownloadClientDelugeSettingsDirectoryCompleted", Type = FieldType.Textbox, Advanced = true, HelpText = "DownloadClientDelugeSettingsDirectoryCompletedHelpText")]
|
||||
public string CompletedDirectory { get; set; }
|
||||
|
||||
public NzbDroneValidationResult Validate()
|
||||
{
|
||||
return new NzbDroneValidationResult(Validator.Validate(this));
|
||||
|
||||
@@ -203,11 +203,11 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
DeleteItemData(item);
|
||||
}
|
||||
|
||||
_proxy.RemoveFrom("history", item.DownloadId, deleteData, Settings);
|
||||
_proxy.RemoveFromHistory(item.DownloadId, deleteData, item.Status == DownloadItemStatus.Failed, Settings);
|
||||
}
|
||||
else
|
||||
{
|
||||
_proxy.RemoveFrom("queue", item.DownloadId, deleteData, Settings);
|
||||
_proxy.RemoveFromQueue(item.DownloadId, deleteData, Settings);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
{
|
||||
string GetBaseUrl(SabnzbdSettings settings, string relativePath = null);
|
||||
SabnzbdAddResponse DownloadNzb(byte[] nzbData, string filename, string category, int priority, SabnzbdSettings settings);
|
||||
void RemoveFrom(string source, string id, bool deleteData, SabnzbdSettings settings);
|
||||
void RemoveFromQueue(string id, bool deleteData, SabnzbdSettings settings);
|
||||
void RemoveFromHistory(string id, bool deleteData, bool deletePermanently, SabnzbdSettings settings);
|
||||
string GetVersion(SabnzbdSettings settings);
|
||||
SabnzbdConfig GetConfig(SabnzbdSettings settings);
|
||||
SabnzbdFullStatus GetFullStatus(SabnzbdSettings settings);
|
||||
@@ -60,9 +61,9 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
return response;
|
||||
}
|
||||
|
||||
public void RemoveFrom(string source, string id, bool deleteData, SabnzbdSettings settings)
|
||||
public void RemoveFromQueue(string id, bool deleteData, SabnzbdSettings settings)
|
||||
{
|
||||
var request = BuildRequest(source, settings);
|
||||
var request = BuildRequest("queue", settings);
|
||||
request.AddQueryParam("name", "delete");
|
||||
request.AddQueryParam("del_files", deleteData ? 1 : 0);
|
||||
request.AddQueryParam("value", id);
|
||||
@@ -70,6 +71,17 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
ProcessRequest(request, settings);
|
||||
}
|
||||
|
||||
public void RemoveFromHistory(string id, bool deleteData, bool deletePermanently, SabnzbdSettings settings)
|
||||
{
|
||||
var request = BuildRequest("history", settings);
|
||||
request.AddQueryParam("name", "delete");
|
||||
request.AddQueryParam("del_files", deleteData ? 1 : 0);
|
||||
request.AddQueryParam("value", id);
|
||||
request.AddQueryParam("archive", deletePermanently ? 0 : 1);
|
||||
|
||||
ProcessRequest(request, settings);
|
||||
}
|
||||
|
||||
public string GetVersion(SabnzbdSettings settings)
|
||||
{
|
||||
var request = BuildRequest("version", settings);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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": "Εάν δεν προσθέσετε εξαίρεση λίστας εισαγωγής και ο συγγραφέας έχει προφίλ μεταδεδομένων διαφορετικό από το \"Κανένα\", τότε αυτό το βιβλίο μπορεί να προστεθεί ξανά κατά την επόμενη ανανέωση του συγγραφέα.",
|
||||
|
||||
@@ -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",
|
||||
@@ -167,6 +167,7 @@
|
||||
"ConnectionLost": "Connection Lost",
|
||||
"ConnectionLostReconnect": "{appName} will try to connect automatically, or you can click reload below.",
|
||||
"ConnectionLostToBackend": "{appName} has lost its connection to the backend and will need to be reloaded to restore functionality.",
|
||||
"ConnectionSettingsUrlBaseHelpText": "Adds a prefix to the {connectionName} url, such as {url}",
|
||||
"Connections": "Connections",
|
||||
"ConsoleLogLevel": "Console Log Level",
|
||||
"Continuing": "Continuing",
|
||||
@@ -186,6 +187,7 @@
|
||||
"CreateEmptyAuthorFolders": "Create empty author folders",
|
||||
"CreateEmptyAuthorFoldersHelpText": "Create missing author folders during disk scan",
|
||||
"CreateGroup": "Create group",
|
||||
"CustomFilter": "Custom Filter",
|
||||
"CustomFormat": "Custom Format",
|
||||
"CustomFormatScore": "Custom Format Score",
|
||||
"CustomFormatSettings": "Custom Format Settings",
|
||||
@@ -282,6 +284,10 @@
|
||||
"DownloadClientCheckDownloadingToRoot": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.",
|
||||
"DownloadClientCheckNoneAvailableMessage": "No download client is available",
|
||||
"DownloadClientCheckUnableToCommunicateMessage": "Unable to communicate with {0}.",
|
||||
"DownloadClientDelugeSettingsDirectory": "Download Directory",
|
||||
"DownloadClientDelugeSettingsDirectoryCompleted": "Move When Completed Directory",
|
||||
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Optional location to move completed downloads to, leave blank to use the default Deluge location",
|
||||
"DownloadClientDelugeSettingsDirectoryHelpText": "Optional location to put downloads in, leave blank to use the default Deluge location",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Content Layout",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Whether to use qBittorrent's configured content layout, the original layout from the torrent or always create a subfolder (qBittorrent 4.3.2+)",
|
||||
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "Download client {0} is set to remove completed downloads. This can result in downloads being removed from your client before {1} can import them.",
|
||||
@@ -453,6 +459,8 @@
|
||||
"IndexersSettingsSummary": "Indexers and release restrictions",
|
||||
"InstanceName": "Instance Name",
|
||||
"InstanceNameHelpText": "Instance name in tab and for Syslog app name",
|
||||
"InteractiveSearchModalHeader": "Interactive Search",
|
||||
"InteractiveSearchModalHeaderBookAuthor": "Interactive Search - {bookTitle} by {authorName}",
|
||||
"Interval": "Interval",
|
||||
"InvalidUILanguage": "Your UI is set to an invalid language, correct it and save your settings",
|
||||
"IsCalibreLibraryHelpText": "Use Calibre Content Server to manipulate library",
|
||||
@@ -470,6 +478,7 @@
|
||||
"Iso639-3": "ISO 639-3 language codes, or 'null', comma separated",
|
||||
"ItsEasyToAddANewAuthorOrBookJustStartTypingTheNameOfTheItemYouWantToAdd": "It's easy to add a New Author or Book just start typing the name of the item you want to add",
|
||||
"Label": "Label",
|
||||
"LabelIsRequired": "Label is required",
|
||||
"Language": "Language",
|
||||
"Large": "Large",
|
||||
"LastDuration": "Last Duration",
|
||||
@@ -614,6 +623,14 @@
|
||||
"NotificationStatusAllClientHealthCheckMessage": "All notifications are unavailable due to failures",
|
||||
"NotificationStatusSingleClientHealthCheckMessage": "Notifications unavailable due to failures: {0}",
|
||||
"NotificationTriggers": "Notification Triggers",
|
||||
"NotificationsPlexSettingsAuthToken": "Auth Token",
|
||||
"NotificationsPlexSettingsAuthenticateWithPlexTv": "Authenticate with Plex.tv",
|
||||
"NotificationsSettingsUpdateLibrary": "Update Library",
|
||||
"NotificationsSettingsUpdateMapPathsFrom": "Map Paths From",
|
||||
"NotificationsSettingsUpdateMapPathsFromHelpText": "{appName} path, used to modify series paths when {serviceName} sees library path location differently from {appName} (Requires 'Update Library')",
|
||||
"NotificationsSettingsUpdateMapPathsTo": "Map Paths To",
|
||||
"NotificationsSettingsUpdateMapPathsToHelpText": "{serviceName} path, used to modify series paths when {serviceName} sees library path location differently from {appName} (Requires 'Update Library')",
|
||||
"NotificationsSettingsUseSslHelpText": "Connect to {serviceName} over HTTPS instead of HTTP",
|
||||
"OnApplicationUpdate": "On Application Update",
|
||||
"OnApplicationUpdateHelpText": "On Application Update",
|
||||
"OnAuthorAdded": "On Author Added",
|
||||
@@ -833,6 +850,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",
|
||||
|
||||
@@ -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,44 +181,44 @@
|
||||
"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",
|
||||
"ManualImport": "Importar Manualmente",
|
||||
"MarkAsFailed": "Marcar como Fallida",
|
||||
"LongDateFormat": "Formato de Fecha Larga",
|
||||
"ManualImport": "Importación manual",
|
||||
"MarkAsFailed": "Marcar como Fallido",
|
||||
"MarkAsFailedMessageText": "Seguro que quieres marcar '{0}' como fallida?",
|
||||
"MaximumLimits": "Límites Máximos",
|
||||
"MaximumSize": "Tamaño Máximo",
|
||||
"MaximumLimits": "Límites máximos",
|
||||
"MaximumSize": "Tamaño máximo",
|
||||
"MaximumSizeHelpText": "Tamaño máximo de un lanzamiento para ser importado en MB. Ajustar a cero para ilimitado",
|
||||
"Mechanism": "Mecanismo",
|
||||
"MediaInfo": "Información Multimedia",
|
||||
"MediaManagementSettings": "Ajustes Multimedia",
|
||||
"MediaInfo": "Información de medios",
|
||||
"MediaManagementSettings": "Opciones de gestión de medios",
|
||||
"Message": "Mensaje",
|
||||
"MetadataSettings": "Ajustes de Metadatos",
|
||||
"MinimumAge": "Edad Mínima",
|
||||
"MinimumAgeHelpText": "Sólo Usenet: Edad mínima en minutos de los NZB para ser descargados. Usa esto para dar a los nuevos lanzamientos tiempo de propagarse en tu proveedor de usenet.",
|
||||
"MinimumFreeSpace": "Espacio Libre Mínimo",
|
||||
"MetadataSettings": "Opciones de metadatos",
|
||||
"MinimumAge": "Edad mínima",
|
||||
"MinimumAgeHelpText": "Solo Usenet: Edad mínima en minutos de NZBs antes de que sean capturados. Usa esto para dar tiempo a los nuevos lanzamientos para propagarse a tu proveedor usenet.",
|
||||
"MinimumFreeSpace": "Espacio libre mínimo",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Evitar importación si dejase menos de esta cantidad en disco disponible",
|
||||
"MinimumLimits": "Límites Mínimos",
|
||||
"MinimumLimits": "Límites mínimos",
|
||||
"Missing": "Faltantes",
|
||||
"Mode": "Modo",
|
||||
"Monitored": "Monitorizado",
|
||||
"MoreInfo": "Más Información",
|
||||
"MustContain": "Debe Contener",
|
||||
"MustNotContain": "No Debe Contener",
|
||||
"MoreInfo": "Más información",
|
||||
"MustContain": "Debe contener",
|
||||
"MustNotContain": "No debe contener",
|
||||
"Name": "Nombre",
|
||||
"NamingSettings": "Ajustes de Renombrado",
|
||||
"NamingSettings": "Opciones de nombrado",
|
||||
"New": "Nuevo",
|
||||
"NoBackupsAreAvailable": "No hay copias de seguridad disponibles",
|
||||
"NoHistory": "Sin historia",
|
||||
"NoLeaveIt": "No, Déjalo",
|
||||
"NoLimitForAnyRuntime": "SIn límite para el tiempo de ejecución",
|
||||
"NoLogFiles": "Sin archivos de registro",
|
||||
"NoMinimumForAnyRuntime": "Sin mínimo para el tiempo de ejecución",
|
||||
"NoLeaveIt": "No, déjalo",
|
||||
"NoLimitForAnyRuntime": "No hay límites para ningún tiempo de ejecución",
|
||||
"NoLogFiles": "No hay archivos de registro",
|
||||
"NoMinimumForAnyRuntime": "No hay mínimo para ningún tiempo de ejecución",
|
||||
"NoUpdatesAreAvailable": "No hay actualizaciones disponibles",
|
||||
"None": "Ninguna",
|
||||
"NotificationTriggers": "Desencadenantes de Notificaciones",
|
||||
"None": "Ninguno",
|
||||
"NotificationTriggers": "Disparadores de notificación",
|
||||
"OnGrabHelpText": "Al Capturar",
|
||||
"OnHealthIssueHelpText": "En Problema de Salud",
|
||||
"OnRenameHelpText": "Al Renombrar",
|
||||
@@ -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",
|
||||
@@ -503,7 +503,7 @@
|
||||
"HealthNoIssues": "No hay problemas con tu configuración",
|
||||
"ImportListStatusCheckAllClientMessage": "Las listas no están disponibles debido a errores",
|
||||
"ImportListStatusCheckSingleClientMessage": "Listas no disponibles debido a errores: {0}",
|
||||
"MediaManagement": "Multimedia",
|
||||
"MediaManagement": "Gestión de medios",
|
||||
"Metadata": "Metadatos",
|
||||
"MetadataProfile": "perfil de metadatos",
|
||||
"MetadataProfiles": "perfil de metadatos",
|
||||
@@ -518,8 +518,8 @@
|
||||
"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",
|
||||
"Monitor": "Monitorear",
|
||||
"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": "Monitorizar",
|
||||
"MountCheckMessage": "El punto de montaje que contiene la ruta de una película es de read-only: ",
|
||||
"OnBookFileDelete": "Al eliminar archivo de película",
|
||||
"SystemTimeCheckMessage": "El reloj del sistema está retrasado más de un día. Las tareas de mantenimiento no se ejecutarán correctamente hasta que se haya corregido",
|
||||
@@ -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,20 +573,20 @@
|
||||
"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",
|
||||
"MoveFiles": "Mover Archivos",
|
||||
"MoveFiles": "Mover archivos",
|
||||
"OnApplicationUpdate": "Al Actualizar La Aplicación",
|
||||
"OnApplicationUpdateHelpText": "Al Actualizar La Aplicación",
|
||||
"BypassIfHighestQuality": "Pasar sí es la calidad más alta",
|
||||
@@ -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",
|
||||
@@ -628,7 +628,7 @@
|
||||
"DeleteRemotePathMapping": "Borrar mapeo de ruta remota",
|
||||
"BlocklistReleases": "Lista de bloqueos de lanzamientos",
|
||||
"DeleteConditionMessageText": "Seguro que quieres eliminar la etiqueta '{0}'?",
|
||||
"Negated": "Negado",
|
||||
"Negated": "Anulado",
|
||||
"RemoveSelectedItem": "Eliminar el elemento seleccionado",
|
||||
"RemoveSelectedItemBlocklistMessageText": "¿Está seguro de que desea eliminar los elementos seleccionados de la lista negra?",
|
||||
"RemoveSelectedItemQueueMessageText": "¿Está seguro de que desea eliminar el {0} elemento {1} de la cola?",
|
||||
@@ -638,7 +638,7 @@
|
||||
"ResetQualityDefinitions": "Restablecer definiciones de calidad",
|
||||
"ResetQualityDefinitionsMessageText": "¿Está seguro de que desea restablecer las definiciones de calidad?",
|
||||
"BlocklistReleaseHelpText": "Evita que Radarr vuelva a capturar esta película automáticamente",
|
||||
"NoEventsFound": "No se encontraron eventos",
|
||||
"NoEventsFound": "Ningún evento encontrado",
|
||||
"ApplyTagsHelpTextHowToApplyAuthors": "Cómo añadir etiquetas a las películas seleccionadas",
|
||||
"DeleteSelectedIndexersMessageText": "¿Está seguro de querer eliminar {count} indexador(es) seleccionado(s)?",
|
||||
"Yes": "Sí",
|
||||
@@ -646,20 +646,20 @@
|
||||
"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)",
|
||||
"DownloadClientTagHelpText": "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.",
|
||||
"ExistingTag": "Etiquetas existentes",
|
||||
"No": "No",
|
||||
"NoChange": "Sin Cambio",
|
||||
"NoChange": "Sin cambio",
|
||||
"RemovingTag": "Eliminando etiqueta",
|
||||
"SetTags": "Poner Etiquetas",
|
||||
"DeleteRemotePathMappingMessageText": "¿Está seguro de querer eliminar esta asignación de ruta remota?",
|
||||
@@ -696,9 +696,9 @@
|
||||
"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",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Las notificaciones no están disponibles debido a fallos",
|
||||
"ReleaseProfiles": "perfil de lanzamiento",
|
||||
"Small": "Pequeña",
|
||||
"DeleteImportList": "Eliminar Lista(s) de Importación",
|
||||
@@ -706,25 +706,24 @@
|
||||
"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",
|
||||
"NoResultsFound": "Ningún resultado encontrado",
|
||||
"RecentChanges": "Cambios recientes",
|
||||
"WhatsNew": "Que es lo nuevo?",
|
||||
"Loading": "Cargando",
|
||||
"Events": "Eventos",
|
||||
"Medium": "Medio",
|
||||
"Medium": "Mediano",
|
||||
"AllResultsAreHiddenByTheAppliedFilter": "Todos los resultados están ocultos por el filtro aplicado",
|
||||
"CatalogNumber": "número de catálogo",
|
||||
"Authors": "Autores",
|
||||
"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,16 @@
|
||||
"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",
|
||||
"MetadataSource": "Fuente de metadatos",
|
||||
"MediaManagementSettingsSummary": "Nombrado, opciones de gestión de archivos y carpetas raíz",
|
||||
"MonitoringOptions": "Opciones de monitorización",
|
||||
"NoImportListsFound": "Ninguna lista de importación encontrada",
|
||||
"Monitoring": "Monitorizando"
|
||||
}
|
||||
|
||||
@@ -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": "Mitä 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"
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
@@ -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,14 +145,14 @@
|
||||
"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",
|
||||
"ImportedTo": "Importált ide",
|
||||
"Importing": "Importálás",
|
||||
"IncludeHealthWarningsHelpText": "Tartalmazza a Állapot Figyelmeztetéseket",
|
||||
"IncludeUnknownAuthorItemsHelpText": "Mutasson tételeket film nélkül a sorban. Ez tartalmazhat eltávolított filmeket vagy bármi mást a Radarr kategóriájából",
|
||||
"IncludeUnmonitored": "Figyelmen Kívül hagyottakat is tartalmazza",
|
||||
"IncludeUnmonitored": "Tartalmazza a Nem felügyeltet",
|
||||
"Indexer": "Indexelő",
|
||||
"IndexerPriority": "Indexer Prioritása",
|
||||
"IndexerSettings": "Indexer Beállítások",
|
||||
@@ -184,7 +184,7 @@
|
||||
"Message": "Üzenet",
|
||||
"MetadataSettings": "Metaadat-beállítások",
|
||||
"MinimumAge": "Minimális kor",
|
||||
"MinimumAgeHelpText": "Usenet: Az NZB-k minimális életkora percekben, mielőtt megragadnák őket. Használja ezt arra, hogy időt biztosítson az új kiadásoknak az usenet-szolgáltatóhoz történő továbbterjesztésre.",
|
||||
"MinimumAgeHelpText": "Csak Usenet: Az NZB-k minimális életkora percekben, mielőtt elkapnák őket. Használja ezt, hogy időt adjon az új kiadásoknak, hogy eljuthassanak a usenet szolgáltatóhoz.",
|
||||
"MinimumFreeSpace": "Minimális szabad hely",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Akadályozza meg az importálást, ha ennél kevesebb lemezterület maradna",
|
||||
"MinimumLimits": "Minimális korlátok",
|
||||
@@ -222,23 +222,23 @@
|
||||
"Port": "Port",
|
||||
"PortHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
|
||||
"PortNumber": "Port száma",
|
||||
"PosterSize": "Poszter mérete",
|
||||
"PreviewRename": "Előnézet átnevezése",
|
||||
"PosterSize": "Poszter méret",
|
||||
"PreviewRename": "Előnézet Átnevezés",
|
||||
"Profiles": "Profilok",
|
||||
"Proper": "Megfelelő",
|
||||
"PropersAndRepacks": "Properek és Repackok",
|
||||
"Protocol": "Protokoll",
|
||||
"ProtocolHelpText": "Válasszd ki a használni kívánt protokoll(oka)t és melyiket részesíted előnyben, ha az egyébként egyforma kiadások közül választasz",
|
||||
"Proxy": "Proxy",
|
||||
"ProxyBypassFilterHelpText": "Használja elválasztóként a ',' és a '*' karaktereket, az aldomainek helyettesítőjeként",
|
||||
"ProxyType": "Proxy Típusa",
|
||||
"ProxyUsernameHelpText": "Csak akkor kell megadnod felhasználónevet és jelszót, ha szükséges. Egyébként hagyd üresen.",
|
||||
"ProxyBypassFilterHelpText": "Használja a ',' jelet elválasztóként és a '*' jelet. helyettesítő karakterként az aldomainekhez",
|
||||
"ProxyType": "Proxy típus",
|
||||
"ProxyUsernameHelpText": "Csak akkor kell megadnia egy felhasználónevet és jelszót, ha szükséges. Ellenkező esetben hagyja üresen.",
|
||||
"PublishedDate": "Közzététel dátuma",
|
||||
"Quality": "Minőség",
|
||||
"QualityDefinitions": "Minőségi meghatározások",
|
||||
"QualityProfile": "Minőségi profil",
|
||||
"QualityProfiles": "Minőségi profilok",
|
||||
"QualitySettings": "Minőségi beállítások",
|
||||
"QualitySettings": "Minőség Beállítások",
|
||||
"Queue": "Várakozási sor",
|
||||
"RSSSync": "RSS Szinkronizálás",
|
||||
"RSSSyncInterval": "RSS Szikronizálás Intervalluma",
|
||||
@@ -262,38 +262,38 @@
|
||||
"Reload": "Újratölt",
|
||||
"RemotePathMappings": "Távoli útvonal-leképezések",
|
||||
"Remove": "Eltávolítás",
|
||||
"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",
|
||||
"RemoveCompletedDownloadsHelpText": "Távolítsa el az importált letöltéseket a letöltési ügyfélelőzményekből",
|
||||
"RemoveFailedDownloadsHelpText": "A sikertelen letöltések eltávolítása a letöltési ügyfélelőzményekből",
|
||||
"RemoveFilter": "Szűrő Eltávolítás",
|
||||
"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",
|
||||
"RemoveSelected": "A kiválasztott eltávolítása",
|
||||
"RemoveTagExistingTag": "Meglévő Címke",
|
||||
"RemoveTagRemovingTag": "Címke eltávolítása",
|
||||
"RemovedFromTaskQueue": "Eltávolítva a feladatsorról",
|
||||
"RemovedFromTaskQueue": "Eltávolítva a feladatsorból",
|
||||
"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)",
|
||||
"Reorder": "Újrarendelés",
|
||||
"ReplaceIllegalCharacters": "Cserélje ki az illegális karaktereket",
|
||||
"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",
|
||||
"Reset": "Visszaállítás",
|
||||
"ResetAPIKey": "API Kulcs visszaállítása",
|
||||
"ResetAPIKeyMessageText": "Biztos hogy vissza szeretnéd állítani az API-Kulcsod?",
|
||||
"ResetAPIKey": "API Kulcs Visszaállítása",
|
||||
"ResetAPIKeyMessageText": "Biztosan visszaállítja API-kulcsát?",
|
||||
"Restart": "Újrakezd",
|
||||
"RestartNow": "Újraindítás Most",
|
||||
"RestartNow": "Újraindítás most",
|
||||
"RestartReadarr": "Radarr Újraindítása",
|
||||
"Restore": "Visszaállít",
|
||||
"RestoreBackup": "Biztonsági mentés visszaállítása",
|
||||
"Result": "Eredmény",
|
||||
"Retention": "Visszatartás",
|
||||
"RetentionHelpText": "Usenet: Állítsa nullára a korlátlan megőrzés beállításához",
|
||||
"RetentionHelpText": "Csak Usenet: Állítsa nullára a korlátlan megőrzéshez",
|
||||
"RetryingDownloadInterp": "A letöltés újrapróbálása {0} itt {1}",
|
||||
"RootFolder": "Gyökérmappa",
|
||||
"RootFolders": "Gyökérmappák",
|
||||
"RssSyncIntervalHelpText": "Intervallum percekben. A letiltáshoz állítsa nullára (ez megállítja az összes automatikus keresést)",
|
||||
"RootFolders": "Gyökér mappák",
|
||||
"RssSyncIntervalHelpText": "Intervallum percekben. A letiltáshoz állítsa nullára (ez leállítja az összes automatikus feloldást)",
|
||||
"SSLCertPassword": "SSL Tanúsítvány jelszava",
|
||||
"SSLCertPath": "Az SSL tanúsítvány elérési útvonala",
|
||||
"SSLPort": "SSL Port",
|
||||
@@ -306,7 +306,7 @@
|
||||
"Security": "Biztonság",
|
||||
"SendAnonymousUsageData": "Névtelen használati adatok küldése",
|
||||
"SetPermissions": "Állítsa be az engedélyeket",
|
||||
"SetPermissionsLinuxHelpText": "Futtatni kell a chmod-ot fájlok importálásakor / átnevezésekor?",
|
||||
"SetPermissionsLinuxHelpText": "Futtatandó a chmod a fájlok importálásakor",
|
||||
"SetPermissionsLinuxHelpTextWarning": "Ha nem biztos abban, hogy ezek a beállítások mit csinálnak, ne módosítsa őket.",
|
||||
"Settings": "Beállítások",
|
||||
"ShortDateFormat": "Rövid dátumformátum",
|
||||
@@ -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,9 +566,9 @@
|
||||
"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.",
|
||||
"ProxyPasswordHelpText": "Csak akkor kell megadnia egy felhasználónevet és jelszót, ha szükséges. Ellenkező esetben hagyja üresen.",
|
||||
"SslCertPathHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
|
||||
"SslCertPasswordHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
|
||||
"UnableToLoadMetadataProfiles": "Nem sikerült betölteni a metaadat-profilokat",
|
||||
@@ -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",
|
||||
@@ -657,7 +655,7 @@
|
||||
"AudioFileMetadata": "Metaadatok írása az Audió fájl(ok)ba",
|
||||
"Tomorrow": "Holnap",
|
||||
"Today": "Ma",
|
||||
"ReleaseTitle": "Kiadás címe",
|
||||
"ReleaseTitle": "Release kiadás",
|
||||
"Progress": "Folyamat",
|
||||
"OutputPath": "Kimeneti út",
|
||||
"BookTitle": "Könyv 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",
|
||||
@@ -752,8 +750,8 @@
|
||||
"ItsEasyToAddANewAuthorOrBookJustStartTypingTheNameOfTheItemYouWantToAdd": "Könnyen hozzáadhat új szerzőt vagy könyvet, csak kezdje el beírni a hozzáadni kívánt elem nevét",
|
||||
"ListsSettingsSummary": "Listák importálása",
|
||||
"MetadataSettingsSummary": "Hozzon létre metaadatfájlokat a könyvek importálásakor vagy a szerző frissítésekor",
|
||||
"QualitySettingsSummary": "Minőségi méretek és elnevezés",
|
||||
"QueueIsEmpty": "A várakozási sor üres",
|
||||
"QualitySettingsSummary": "Minőségi méretek és elnevezések",
|
||||
"QueueIsEmpty": "A sor üres",
|
||||
"RefreshBook": "Könyv frissítése",
|
||||
"SearchFiltered": "Keresés szűrve",
|
||||
"TagsSettingsSummary": "Tekintse meg az összes címkét és azok használatát. A használatlan címkék eltávolíthatók",
|
||||
@@ -832,7 +830,7 @@
|
||||
"ConvertToFormat": "Konvertálás Formátumba",
|
||||
"DataAllBooks": "Összes könyv monitorozása",
|
||||
"InstanceName": "Példány Neve",
|
||||
"RestartRequiredHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
|
||||
"RestartRequiredHelpTextWarning": "Újraindítás szükséges az életbe lépéshez",
|
||||
"DataExistingBooks": "Könyvek monitorozása, ha van fájl, vagy ha még meg sem jelent",
|
||||
"DataFirstBook": "Az első könyvet monitorozása. Az összes többi könyvet figyelmen kívül hagyja",
|
||||
"DataLatestBook": "Legutolsó, és jövendőbeli könyvek monitorozása",
|
||||
@@ -850,7 +848,7 @@
|
||||
"WriteMetadataTags": "Írjon metaadat-címkéket",
|
||||
"EditList": "Lista szerkesztése",
|
||||
"MonitorExistingBooks": "Meglévő könyvek monitorozása",
|
||||
"RenameFiles": "Fájl(ok) átnevezése",
|
||||
"RenameFiles": "Fájlok átnevezése",
|
||||
"InstanceNameHelpText": "Példánynév a böngésző lapon és a syslog alkalmazás neve",
|
||||
"LoadingEditionsFailed": "A kiadások betöltése nem sikerült",
|
||||
"ManualImportSelectEdition": "Kézi importálás – Válaszd ki a Kiadást",
|
||||
@@ -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",
|
||||
@@ -889,7 +887,7 @@
|
||||
"UpgradesAllowed": "Frissítések Engedélyezve",
|
||||
"CutoffFormatScoreHelpText": "Amint eléri ezt az egyéni minőséget, a Radarr többé nem fogja tovább keresni a filmet",
|
||||
"ResetDefinitionTitlesHelpText": "A definíciócímek és értékek visszaállítása",
|
||||
"ResetTitles": "Címek visszaállítása",
|
||||
"ResetTitles": "Címek Visszaállítása",
|
||||
"ImportListMissingRoot": "Hiányzó gyökérmappa az importálási listá(k)hoz: {0}",
|
||||
"ImportListMultipleMissingRoots": "Több gyökérmappa hiányzik az importálási listákhoz: {0}",
|
||||
"IndexerDownloadClientHelpText": "Adja meg, hogy melyik letöltési kliens használja az indexelőből történő megfogásokat",
|
||||
@@ -911,7 +909,7 @@
|
||||
"Required": "Kötelező",
|
||||
"ApiKeyValidationHealthCheckMessage": "Kérlek frissítsd az API kulcsot, ami legalább {0} karakter hosszú. Ezt megteheted a Beállításokban, vagy a config file-ban",
|
||||
"NoEventsFound": "Nem található események",
|
||||
"ResetQualityDefinitions": "Állítsd vissza a minőségi meghatározásokat",
|
||||
"ResetQualityDefinitions": "Minőségi meghatározások Visszaállítása",
|
||||
"DeleteRemotePathMapping": "Távoli Elérési Útvonal Módosítása",
|
||||
"BlocklistReleaseHelpText": "Megakadályozza, hogy a Lidarr automatikusan letöltse újra",
|
||||
"ApplyTagsHelpTextHowToApplyAuthors": "Hogyan adjunk hozzá címkéket a kiválasztott filmhez",
|
||||
@@ -926,15 +924,15 @@
|
||||
"RecycleBinUnableToWriteHealthCheck": "Nem lehet írni a konfigurált lomtár mappába {0}. Győződjön meg arról, hogy ez az elérési útvonal létezik, és az a felhasználó, aki a Sonarr-t futtatja, írási jogosultsággal rendelkezik",
|
||||
"RedownloadFailed": "Letöltés Sikertelen",
|
||||
"RemoveCompleted": "Eltávolítás kész",
|
||||
"RemoveDownloadsAlert": "Az eltávolításhoz szükséges beállítások átkerültek a fenti táblázatban található egyéni letöltő beállítások közé.",
|
||||
"RemoveDownloadsAlert": "Az Eltávolítási beállítások átkerültek a fenti táblázatban a Letöltési kliens egyéni beállításaiba.",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Címkék alkalmazása a kiválasztott letöltési kliensekre",
|
||||
"ApplyChanges": "Változások alkalmazása",
|
||||
"ApplyTagsHelpTextAdd": "Hozzáadás: Adja hozzá a címkéket a meglévő címkék listájához",
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"60MinutesSixty": "60 Minuti: {0}",
|
||||
"APIKey": "Chiave API",
|
||||
"About": "Info",
|
||||
"AddListExclusion": "Aggiungi Lista Esclusioni",
|
||||
"AddingTag": "Aggiungendo etichetta",
|
||||
"Fixed": "Fissato",
|
||||
"Local": "Locale",
|
||||
@@ -583,8 +582,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",
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"BackupRetentionHelpText": "Automatische veiligheidskopieën ouder dan de retentie periode zullen worden opgeruimd",
|
||||
"Backups": "Veiligheidskopieën",
|
||||
"BindAddress": "Gebonden Adres",
|
||||
"BindAddressHelpText": "Geldig IPv4-adres of '*' voor alle interfaces",
|
||||
"BindAddressHelpText": "Geldig IP-adres, localhost of '*' voor alle interfaces",
|
||||
"BindAddressHelpTextWarning": "Herstarten vereist om in werking te treden",
|
||||
"BookIsDownloading": "Film is aan het downloaden",
|
||||
"BookIsDownloadingInterp": "Film is aan het downloaden - {0}% {1}",
|
||||
@@ -649,5 +649,6 @@
|
||||
"AddNew": "Voeg Nieuwe Toe",
|
||||
"AppUpdated": "{appName} is geüpdatet",
|
||||
"AppUpdatedVersion": "{appName} is geüpdatet naar versie '{version}', om de laatste wijzigingen door te voeren moet je mogelijk {appName} herstarten",
|
||||
"AllResultsAreHiddenByTheAppliedFilter": "Alle resultaten zijn verborgen door het toegepaste filter"
|
||||
"AllResultsAreHiddenByTheAppliedFilter": "Alle resultaten zijn verborgen door het toegepaste filter",
|
||||
"Backup": "Veiligheidskopie"
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
@@ -486,7 +485,7 @@
|
||||
"AllAuthorBooks": "Todos os livros do autor",
|
||||
"AllBooks": "Todos os livros",
|
||||
"AllExpandedCollapseAll": "Fechar tudo",
|
||||
"AllExpandedExpandAll": "Expandir tudo",
|
||||
"AllExpandedExpandAll": "Expandir Tudo",
|
||||
"AllowAuthorChangeClickToChangeAuthor": "Clique para mudar o autor",
|
||||
"AllowFingerprinting": "Permitir impressão digital",
|
||||
"AllowFingerprintingHelpText": "Usar a impressão digital para melhorar a precisão da correspondência de 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",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"ProxyPasswordHelpText": "Você só precisa digitar um nome de usuário e senha se for necessário. Caso contrário, deixe-os em branco.",
|
||||
"SslCertPathHelpTextWarning": "Requer reinício para ter efeito",
|
||||
"UnableToLoadMetadataProfiles": "Não foi possível carregar os perfis de metadados",
|
||||
"AddListExclusion": "Adicionar exclusão à lista",
|
||||
"AddListExclusion": "Adicionar Exclusão de Lista",
|
||||
"AddingTag": "Adicionar tag",
|
||||
"AlreadyInYourLibrary": "Já está na sua biblioteca",
|
||||
"AlternateTitles": "Títulos alternativos",
|
||||
@@ -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",
|
||||
@@ -1053,5 +1051,14 @@
|
||||
"DoNotBlocklistHint": "Remover sem colocar na lista de bloqueio",
|
||||
"RemoveFromDownloadClientHint": "Remove download e arquivo(s) do cliente de download",
|
||||
"RemoveMultipleFromDownloadClientHint": "Remove downloads e arquivos do cliente de download",
|
||||
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Remover do cliente de download' removerá o download e os arquivos do cliente de download."
|
||||
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Remover do cliente de download' removerá o download e os arquivos do cliente de download.",
|
||||
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (Total: {totalBookCount}, Arquivos: {bookFileCount})",
|
||||
"BookProgressBarText": "{bookCount} / {totalBookCount} (Arquivos: {bookFileCount})",
|
||||
"SelectBook": "Selecionar o Livro",
|
||||
"SelectDropdown": "Selecionar...",
|
||||
"SelectEdition": "Selecionar a Edição",
|
||||
"SelectReleaseGroup": "Selecionar um Grupo de Lançamento",
|
||||
"SelectQuality": "Selecionar uma Qualidade",
|
||||
"CustomFilter": "Filtro Personalizado",
|
||||
"LabelIsRequired": "Rótulo é requerido"
|
||||
}
|
||||
|
||||
@@ -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": "Регулярное выражение"
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"60MinutesSixty": "60 Dakika: {0}",
|
||||
"APIKey": "API Anahtarı",
|
||||
"About": "Hakkında",
|
||||
"AddListExclusion": "Liste Hariç Tutma Ekle",
|
||||
"AddListExclusion": "Hariç Tutma Listesine Ekle",
|
||||
"AddingTag": "Etiket ekleniyor",
|
||||
"ApiKeyHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
|
||||
"AnalyticsEnabledHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
|
||||
@@ -25,7 +25,7 @@
|
||||
"AlternateTitles": "Alternatif Başlık",
|
||||
"Analytics": "Analitik",
|
||||
"AnalyticsEnabledHelpText": "Anonim kullanım ve hata bilgilerini Radarr sunucularına gönderin. Bu, tarayıcınızla ilgili bilgileri, kullandığınız Radarr WebUI sayfalarını, hata raporlamasının yanı sıra işletim sistemi ve çalışma zamanı sürümünü içerir. Bu bilgileri, özellikleri ve hata düzeltmelerini önceliklendirmek için kullanacağız.",
|
||||
"AppDataDirectory": "AppData dizini",
|
||||
"AppDataDirectory": "Uygulama Veri Dizini",
|
||||
"ApplyTags": "Etiketleri Uygula",
|
||||
"Authentication": "Doğrulama",
|
||||
"AuthenticationMethodHelpText": "Radarr'a erişmek için Kullanıcı Adı ve Şifre gerektir",
|
||||
@@ -38,7 +38,7 @@
|
||||
"BackupRetentionHelpText": "Saklama süresinden daha eski olan otomatik yedeklemeler otomatik olarak temizlenecektir",
|
||||
"Backups": "Yedeklemeler",
|
||||
"BindAddress": "Bağlama Adresi",
|
||||
"BindAddressHelpText": "Tüm arayüzler için geçerli IP4 adresi veya '*'",
|
||||
"BindAddressHelpText": "Tüm arayüzler için geçerli IP adresi, localhost veya '*'",
|
||||
"BindAddressHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
|
||||
"BookIsDownloading": "Film indiriliyor",
|
||||
"BookIsDownloadingInterp": "Film indiriliyor - {0}% {1}",
|
||||
@@ -46,10 +46,10 @@
|
||||
"BypassProxyForLocalAddresses": "Yerel Adresler için Proxy'yi Atla",
|
||||
"Calendar": "Takvim",
|
||||
"CalendarWeekColumnHeaderHelpText": "Aktif görünüm hafta olduğunda her bir sütunun üzerinde gösterilir",
|
||||
"Cancel": "İptal etmek",
|
||||
"Cancel": "Vazgeç",
|
||||
"CancelMessageText": "Bu bekleyen görevi iptal etmek istediğinizden emin misiniz?",
|
||||
"CertificateValidation": "Sertifika Doğrulama",
|
||||
"CertificateValidationHelpText": "HTTPS sertifika doğrulamasının ne kadar katı olduğunu değiştirin",
|
||||
"CertificateValidationHelpText": "HTTPS sertifika doğrulamasının sıkılığını değiştirin. Riskleri anlamadığınız sürece değişmeyin.",
|
||||
"ChangeFileDate": "Dosya Tarihini Değiştir",
|
||||
"ChangeHasNotBeenSavedYet": "Değişiklik henüz kaydedilmedi",
|
||||
"ChmodFolder": "chmod Klasörü",
|
||||
@@ -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",
|
||||
@@ -591,11 +591,11 @@
|
||||
"Yes": "Evet",
|
||||
"RedownloadFailed": "Yükleme başarısız",
|
||||
"ApplyTagsHelpTextAdd": "Ekle: Etiketleri mevcut etiket listesine ekleyin",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Seçilen filmlere etiketler nasıl uygulanır",
|
||||
"ApplyTagsHelpTextHowToApplyImportLists": "Seçilen filmlere etiketler nasıl uygulanır",
|
||||
"ApplyTagsHelpTextHowToApplyIndexers": "Seçilen filmlere etiketler nasıl uygulanır",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Seçilen indirme istemcilerine etiketler nasıl uygulanır?",
|
||||
"ApplyTagsHelpTextHowToApplyImportLists": "Seçilen içe aktarma listelerine etiketler nasıl uygulanır?",
|
||||
"ApplyTagsHelpTextHowToApplyIndexers": "Seçilen indeksleyicilere etiketler nasıl uygulanır?",
|
||||
"ApplyTagsHelpTextRemove": "Kaldır: Girilen etiketleri kaldırın",
|
||||
"ApplyTagsHelpTextReplace": "Değiştir: Etiketleri girilen etiketlerle değiştirin (tüm etiketleri temizlemek için hiçbir etiket girmeyin)",
|
||||
"ApplyTagsHelpTextReplace": "Değiştir: Etiketleri girilen etiketlerle değiştirin (tüm etiketleri kaldırmak için etiket girmeyin)",
|
||||
"DeleteSelectedDownloadClients": "İndirme İstemcisini Sil",
|
||||
"DeleteSelectedIndexers": "Dizinleyiciyi Sil",
|
||||
"ExistingTag": "Mevcut etiket",
|
||||
@@ -603,7 +603,7 @@
|
||||
"NoChange": "Değişiklik yok",
|
||||
"SetTags": "Etiketleri Ayarla",
|
||||
"ConnectionLost": "Bağlantı koptu",
|
||||
"ConnectionLostReconnect": "Radarr otomatik olarak bağlanmayı deneyecek veya aşağıdan yeniden yükle'yi tıklayabilirsiniz.",
|
||||
"ConnectionLostReconnect": "{appName} otomatik bağlanmayı deneyecek veya aşağıda yeniden yükle seçeneğini işaretleyebilirsiniz.",
|
||||
"LastExecution": "Son Yürütme",
|
||||
"LastWriteTime": "Son Yazma Zamanı",
|
||||
"Location": "yer",
|
||||
@@ -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",
|
||||
@@ -631,5 +631,32 @@
|
||||
"MetadataProfile": "üstveri profili",
|
||||
"MetadataProfiles": "üstveri profili",
|
||||
"ExtraFileExtensionsHelpText": "İçe aktarılacak ekstra dosyaların virgülle ayrılmış listesi (.nfo, .nfo-orig olarak içe aktarılacaktır)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Örnekler: \".sub, .nfo\" veya \"sub, nfo\""
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Örnekler: \".sub, .nfo\" veya \"sub, nfo\"",
|
||||
"AppUpdated": "{appName} Güncellendi",
|
||||
"AppUpdatedVersion": "{appName}, `{version}` sürümüne güncellendi; en son değişikliklerin etkin olabilmesi için {appName} uygulamasını yeniden başlatmanız gerekli",
|
||||
"Clone": "Klon",
|
||||
"ConnectionLostToBackend": "{appName}'ın arka uçla bağlantısı kesildi ve işlevselliğin geri kazanılması için yeniden yüklenmesi gerekecek.",
|
||||
"AutomaticUpdatesDisabledDocker": "Docker güncelleme mekanizması kullanıldığında otomatik güncellemeler doğrudan desteklenmez. Kapsayıcı görüntüsünü {appName} dışında güncellemeniz veya bir komut dosyası kullanmanız gerekecek",
|
||||
"ChownGroup": "Chown Grubu",
|
||||
"ApplicationURL": "Uygulama URL'si",
|
||||
"ApplicationUrlHelpText": "Bu uygulamanın http(s)://, bağlantı noktası ve URL tabanını içeren harici URL'si",
|
||||
"ApplyChanges": "Değişiklikleri Uygula",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "Özel Format RegEx Büyük/Küçük Harfe Duyarsızdır",
|
||||
"CustomFormatsSpecificationRegularExpression": "Düzenli ifade",
|
||||
"BlocklistOnlyHint": "Yenisini aramadan engelleme listesi",
|
||||
"BlocklistAndSearch": "Engellenenler Listesi ve Arama",
|
||||
"BlocklistAndSearchHint": "Engellenenler listesine ekledikten sonra yenisini aramaya başlayın",
|
||||
"BlocklistAndSearchMultipleHint": "Engellenenler listesine ekledikten sonra yedekleri aramaya başlayın",
|
||||
"BlocklistMultipleOnlyHint": "Yedekleri aramadan engelleme listesi",
|
||||
"BlocklistOnly": "Yalnızca Engellenenler Listesi",
|
||||
"ChangeCategory": "Kategoriyi Değiştir",
|
||||
"ChangeCategoryMultipleHint": "İndirme istemcisinden indirmeleri 'İçe Aktarma Sonrası Kategorisi' olarak değiştirir",
|
||||
"ClickToChangeReleaseGroup": "Sürüm grubunu değiştirmek için tıklayın",
|
||||
"CloneCondition": "Klon Durumu",
|
||||
"CustomFilter": "Özel Filtre",
|
||||
"AutoRedownloadFailed": "Yeniden İndirme Başarısız",
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Başarısız indirmeler, etkileşimli aramada bulunduğunda otomatik olarak farklı bir versiyonu arayın ve indirmeyi deneyin",
|
||||
"ChangeCategoryHint": "İndirme İstemcisi'nden indirme işlemini 'İçe Aktarma Sonrası Kategorisi' olarak değiştirir",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "Etkileşimli Aramadan Yeniden İndirme Başarısız Oldu",
|
||||
"AutomaticAdd": "Otomatik Ekle"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"CloneProfile": "Клонувати профіль",
|
||||
"Close": "Закрити",
|
||||
"AddingTag": "Додавання тегу",
|
||||
"AddListExclusion": "Додати винятки списку",
|
||||
"AddListExclusion": "Додати виняток зі списку",
|
||||
"About": "Про нас",
|
||||
"Actions": "Дії",
|
||||
"All": "Всі",
|
||||
@@ -644,6 +644,6 @@
|
||||
"NoChange": "Без змін",
|
||||
"ResetQualityDefinitions": "Скинути визначення якості",
|
||||
"SetTags": "Встановити теги",
|
||||
"AddNew": "Додати новий",
|
||||
"AddNew": "Додати",
|
||||
"Activity": "Активність"
|
||||
}
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
"Indexers": "索引器",
|
||||
"Interval": "间隔",
|
||||
"IsCutoffCutoff": "截止",
|
||||
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "升级直到歌曲质量超出或者满足",
|
||||
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "升级直至达到或超过此质量",
|
||||
"IsTagUsedCannotBeDeletedWhileInUse": "使用中无法删除",
|
||||
"Language": "语言",
|
||||
"LaunchBrowserHelpText": " 启动浏览器时导航到Radarr主页。",
|
||||
@@ -426,7 +426,7 @@
|
||||
"60MinutesSixty": "60分钟: {0}",
|
||||
"APIKey": "API Key",
|
||||
"About": "关于",
|
||||
"AddListExclusion": "添加列表例外",
|
||||
"AddListExclusion": "新增 列表",
|
||||
"DeleteTag": "删除标签",
|
||||
"UnableToLoadTags": "无法加载标签",
|
||||
"DownloadClientCheckDownloadingToRoot": "下载客户端{0}将下载内容放在根文件夹{1}中。您不应该下载到根文件夹。",
|
||||
@@ -591,8 +591,6 @@
|
||||
"AddList": "添加列表",
|
||||
"BookList": "书籍清单",
|
||||
"Books": "书籍",
|
||||
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (全部: {2})",
|
||||
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} 书籍已下载",
|
||||
"BookFilesCountMessage": "无书籍文件",
|
||||
"AutomaticallySwitchEdition": "自动切换版本",
|
||||
"AllAuthorBooks": "该作者所有书籍",
|
||||
@@ -1025,5 +1023,40 @@
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "内容布局",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "示例:’.sub,.nfo‘ 或 ’sub,nfo‘",
|
||||
"InvalidUILanguage": "您的UI设置为无效语言,请纠正并保存设置",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "是否使用 qBittorrent 配置的内容布局,使用种子的原始布局或始终创建子文件夹(qBittorrent 4.3.2+)"
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "是否使用 qBittorrent 配置的内容布局,使用种子的原始布局或始终创建子文件夹(qBittorrent 4.3.2+)",
|
||||
"ChangeCategory": "改变分类",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "自定义格式正则表达式不区分大小写",
|
||||
"CustomFormatsSpecificationRegularExpression": "正则表达式",
|
||||
"AuthorProgressBarText": "{availableBookCount} / {bookCount} (总共: {totalBookCount}, 文件: {bookFileCount})",
|
||||
"BookProgressBarText": "{bookCount} / {totalBookCount} (文件:{bookFileCount})",
|
||||
"SelectBook": "选择书籍",
|
||||
"SelectDropdown": "选择…",
|
||||
"SelectEdition": "选择版本",
|
||||
"SelectQuality": "选择质量",
|
||||
"SelectReleaseGroup": "选择发布组",
|
||||
"BlocklistAndSearch": "黑名单和搜索",
|
||||
"BlocklistAndSearchMultipleHint": "列入黑名单后开始搜索替代版本",
|
||||
"BlocklistMultipleOnlyHint": "无需搜索替换的黑名单",
|
||||
"BlocklistOnly": "仅限黑名单",
|
||||
"BlocklistOnlyHint": "无需寻找替代版本的黑名单",
|
||||
"BlocklistAndSearchHint": "列入黑名单后开始寻找一个替代版本",
|
||||
"ChangeCategoryHint": "将下载从下载客户端更改为“导入后类别”",
|
||||
"ChangeCategoryMultipleHint": "将下载从下载客户端更改为“导入后类别”",
|
||||
"DoNotBlocklist": "不要列入黑名单",
|
||||
"DoNotBlocklistHint": "删除而不列入黑名单",
|
||||
"IgnoreDownload": "忽略下载",
|
||||
"IgnoreDownloadHint": "阻止 {appName} 进一步处理此下载",
|
||||
"IgnoreDownloads": "忽略下载",
|
||||
"IgnoreDownloadsHint": "阻止 {appName} 进一步处理这些下载",
|
||||
"RemoveFromDownloadClientHint": "从下载客户端删除下载和文件",
|
||||
"RemoveMultipleFromDownloadClientHint": "从下载客户端删除下载和文件",
|
||||
"RemoveQueueItemRemovalMethod": "删除方法",
|
||||
"RemoveQueueItemsRemovalMethodHelpTextWarning": "“从下载客户端移除”将从下载客户端移除下载内容和文件。",
|
||||
"RemoveQueueItem": "移除 - {sourceTitle}",
|
||||
"RemoveQueueItemConfirmation": "您确定要从队列中移除“{sourceTitle}”吗?",
|
||||
"SourceTitle": "来源标题",
|
||||
"AutoRedownloadFailed": "重新下载失败",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "手动搜索重新下载失败",
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "当从手动搜索中获取失败的发行版时,自动搜索并尝试下载不同的发行版",
|
||||
"RemoveQueueItemRemovalMethodHelpTextWarning": "“从下载客户端移除”将从下载客户端移除下载内容和文件。"
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace NzbDrone.Core.Notifications.Plex.Server
|
||||
{
|
||||
var scheme = settings.UseSsl ? "https" : "http";
|
||||
|
||||
var requestBuilder = new HttpRequestBuilder($"{scheme}://{settings.Host.ToUrlHost()}:{settings.Port}")
|
||||
var requestBuilder = new HttpRequestBuilder($"{scheme}://{settings.Host.ToUrlHost()}:{settings.Port}{settings.UrlBase}")
|
||||
.Accept(HttpAccept.Json)
|
||||
.AddQueryParam("X-Plex-Client-Identifier", _configService.PlexClientIdentifier)
|
||||
.AddQueryParam("X-Plex-Product", BuildInfo.AppName)
|
||||
|
||||
@@ -34,22 +34,30 @@ namespace NzbDrone.Core.Notifications.Plex.Server
|
||||
[FieldDefinition(1, Label = "Port")]
|
||||
public int Port { get; set; }
|
||||
|
||||
[FieldDefinition(2, Label = "Use SSL", Type = FieldType.Checkbox, HelpText = "Connect to Plex over HTTPS instead of HTTP")]
|
||||
[FieldDefinition(2, Label = "UseSsl", Type = FieldType.Checkbox, HelpText = "NotificationsSettingsUseSslHelpText")]
|
||||
[FieldToken(TokenField.HelpText, "UseSsl", "serviceName", "Plex")]
|
||||
public bool UseSsl { get; set; }
|
||||
|
||||
[FieldDefinition(3, Label = "Auth Token", Type = FieldType.Textbox, Privacy = PrivacyLevel.ApiKey, Advanced = true)]
|
||||
[FieldDefinition(3, Label = "UrlBase", Type = FieldType.Textbox, Advanced = true, HelpText = "ConnectionSettingsUrlBaseHelpText")]
|
||||
[FieldToken(TokenField.HelpText, "UrlBase", "connectionName", "Plex")]
|
||||
[FieldToken(TokenField.HelpText, "UrlBase", "url", "http://[host]:[port]/[urlBase]/plex")]
|
||||
public string UrlBase { get; set; }
|
||||
|
||||
[FieldDefinition(4, Label = "NotificationsPlexSettingsAuthToken", Type = FieldType.Textbox, Privacy = PrivacyLevel.ApiKey, Advanced = true)]
|
||||
public string AuthToken { get; set; }
|
||||
|
||||
[FieldDefinition(4, Label = "Authenticate with Plex.tv", Type = FieldType.OAuth)]
|
||||
[FieldDefinition(5, Label = "NotificationsPlexSettingsAuthenticateWithPlexTv", Type = FieldType.OAuth)]
|
||||
public string SignIn { get; set; }
|
||||
|
||||
[FieldDefinition(5, Label = "Update Library", Type = FieldType.Checkbox)]
|
||||
[FieldDefinition(6, Label = "NotificationsSettingsUpdateLibrary", Type = FieldType.Checkbox)]
|
||||
public bool UpdateLibrary { get; set; }
|
||||
|
||||
[FieldDefinition(6, Label = "Map Paths From", Type = FieldType.Textbox, Advanced = true, HelpText = "Readarr path, used to modify author paths when Plex sees library path location differently from Readarr")]
|
||||
[FieldDefinition(7, Label = "NotificationsSettingsUpdateMapPathsFrom", Type = FieldType.Textbox, Advanced = true, HelpText = "NotificationsSettingsUpdateMapPathsFromHelpText")]
|
||||
[FieldToken(TokenField.HelpText, "NotificationsSettingsUpdateMapPathsFrom", "serviceName", "Plex")]
|
||||
public string MapFrom { get; set; }
|
||||
|
||||
[FieldDefinition(7, Label = "Map Paths To", Type = FieldType.Textbox, Advanced = true, HelpText = "Plex path, used to modify author paths when Plex sees library path location differently from Readarr")]
|
||||
[FieldDefinition(8, Label = "NotificationsSettingsUpdateMapPathsTo", Type = FieldType.Textbox, Advanced = true, HelpText = "NotificationsSettingsUpdateMapPathsToHelpText")]
|
||||
[FieldToken(TokenField.HelpText, "NotificationsSettingsUpdateMapPathsTo", "serviceName", "Plex")]
|
||||
public string MapTo { get; set; }
|
||||
|
||||
public bool IsValid => !string.IsNullOrWhiteSpace(Host);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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")]
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -7,6 +7,7 @@ using NzbDrone.Common.Composition;
|
||||
using NzbDrone.Common.Serializer;
|
||||
using NzbDrone.Common.TPL;
|
||||
using NzbDrone.Core.Datastore.Events;
|
||||
using NzbDrone.Core.MediaFiles.BookImport.Manual;
|
||||
using NzbDrone.Core.Messaging.Commands;
|
||||
using NzbDrone.Core.Messaging.Events;
|
||||
using NzbDrone.Core.ProgressMessaging;
|
||||
@@ -58,6 +59,9 @@ namespace Readarr.Api.V1.Commands
|
||||
Request.Body.Seek(0, SeekOrigin.Begin);
|
||||
using var reader = new StreamReader(Request.Body);
|
||||
var body = reader.ReadToEnd();
|
||||
var priority = commandType == typeof(ManualImportCommand)
|
||||
? CommandPriority.High
|
||||
: CommandPriority.Normal;
|
||||
|
||||
dynamic command = STJson.Deserialize(body, commandType);
|
||||
|
||||
@@ -66,7 +70,8 @@ namespace Readarr.Api.V1.Commands
|
||||
command.SendUpdatesToClient = true;
|
||||
command.ClientUserAgent = Request.Headers["User-Agent"];
|
||||
|
||||
var trackedCommand = _commandQueueManager.Push(command, CommandPriority.Normal, CommandTrigger.Manual);
|
||||
var trackedCommand = _commandQueueManager.Push(command, priority, CommandTrigger.Manual);
|
||||
|
||||
return Created(trackedCommand.Id);
|
||||
}
|
||||
|
||||
|
||||
@@ -8968,6 +8968,11 @@
|
||||
"ratings": {
|
||||
"$ref": "#/components/schemas/Ratings"
|
||||
},
|
||||
"lastSearchTime": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"nullable": true
|
||||
},
|
||||
"cleanTitle": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
|
||||
@@ -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")]
|
||||
|
||||
@@ -2277,9 +2277,9 @@ camelcase@^6.3.0:
|
||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||
|
||||
caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001517:
|
||||
version "1.0.30001525"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz#d2e8fdec6116ffa36284ca2c33ef6d53612fe1c8"
|
||||
integrity sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==
|
||||
version "1.0.30001591"
|
||||
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001591.tgz"
|
||||
integrity sha512-PCzRMei/vXjJyL5mJtzNiUCKP59dm8Apqc3PH8gJkMnMXZGox93RbE76jHsmLwmIo6/3nsYIpJtx0O7u5PqFuQ==
|
||||
|
||||
chalk@^1.1.3:
|
||||
version "1.1.3"
|
||||
|
||||
Reference in New Issue
Block a user