mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-13 20:46:53 -04:00
Compare commits
36 Commits
v0.3.15.23
...
v0.3.18.24
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
faeb78801c | ||
|
|
bd5695f2dd | ||
|
|
5375cbe1c2 | ||
|
|
d0b797ea61 | ||
|
|
e76f160695 | ||
|
|
ef71fc1b41 | ||
|
|
14f14e5da4 | ||
|
|
bd265e47fa | ||
|
|
333d344c0b | ||
|
|
db6712f030 | ||
|
|
1065a6283c | ||
|
|
1b40c5c7ce | ||
|
|
a8de87300e | ||
|
|
f260078ac8 | ||
|
|
5a6486be21 | ||
|
|
2e9de3cb86 | ||
|
|
a259684916 | ||
|
|
5704adfbc5 | ||
|
|
6cfaab07ba | ||
|
|
b36085a3cc | ||
|
|
0afa0977b0 | ||
|
|
4a174e559f | ||
|
|
0fb8ab2280 | ||
|
|
261b0f398b | ||
|
|
d1fea384a7 | ||
|
|
9542ea0d2e | ||
|
|
e1d697c561 | ||
|
|
22ed847849 | ||
|
|
2faef704b4 | ||
|
|
a566c3e21f | ||
|
|
cc0d2a84ae | ||
|
|
1c3d2ce4e5 | ||
|
|
57f614f4cd | ||
|
|
9d2efe0944 | ||
|
|
e032be48e0 | ||
|
|
cd66de1992 |
16
.github/label-actions.yml
vendored
Normal file
16
.github/label-actions.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Configuration for Label Actions - https://github.com/dessant/label-actions
|
||||
|
||||
'Type: Support':
|
||||
comment: >
|
||||
:wave: @{issue-author}, we use the issue tracker exclusively
|
||||
for bug reports and feature requests. However, this issue appears
|
||||
to be a support request. Please hop over onto our [Discord](https://readarr.com/discord).
|
||||
close: true
|
||||
close-reason: 'not planned'
|
||||
|
||||
'Status: Logs Needed':
|
||||
comment: >
|
||||
:wave: @{issue-author}, In order to help you further we'll need to see logs.
|
||||
You'll need to enable trace logging and replicate the problem that you encountered.
|
||||
Guidance on how to enable trace logging can be found in
|
||||
our [troubleshooting guide](https://wiki.servarr.com/readarr/troubleshooting#logging-and-log-files).
|
||||
17
.github/workflows/label-actions.yml
vendored
Normal file
17
.github/workflows/label-actions.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: 'Label Actions'
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, unlabeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
action:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/label-actions@v3
|
||||
with:
|
||||
process-only: 'issues'
|
||||
31
.github/workflows/support.yml
vendored
31
.github/workflows/support.yml
vendored
@@ -1,31 +0,0 @@
|
||||
name: 'Support requests'
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled, unlabeled, reopened]
|
||||
|
||||
jobs:
|
||||
support:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: dessant/support-requests@v3
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
support-label: 'Type: Support'
|
||||
issue-comment: >
|
||||
:wave: @{issue-author}, we use the issue tracker exclusively
|
||||
for bug reports and feature requests. However, this issue appears
|
||||
to be a support request. Please hop over onto our [Discord](https://readarr.com/discord).
|
||||
close-issue: true
|
||||
lock-issue: false
|
||||
- uses: dessant/support-requests@v3
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
support-label: 'Status: Logs Needed'
|
||||
issue-comment: >
|
||||
:wave: @{issue-author}, In order to help you further we'll need to see logs.
|
||||
You'll need to enable trace logging and replicate the problem that you encountered.
|
||||
Guidance on how to enable trace logging can be found in
|
||||
our [troubleshooting guide](https://wiki.servarr.com/readarr/troubleshooting#logging-and-log-files).
|
||||
close-issue: false
|
||||
lock-issue: false
|
||||
@@ -9,7 +9,7 @@ variables:
|
||||
testsFolder: './_tests'
|
||||
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
|
||||
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
|
||||
majorVersion: '0.3.15'
|
||||
majorVersion: '0.3.18'
|
||||
minorVersion: $[counter('minorVersion', 1)]
|
||||
readarrVersion: '$(majorVersion).$(minorVersion)'
|
||||
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
||||
|
||||
@@ -2,6 +2,8 @@ const loose = true;
|
||||
|
||||
module.exports = {
|
||||
plugins: [
|
||||
'@babel/plugin-transform-logical-assignment-operators',
|
||||
|
||||
// Stage 1
|
||||
'@babel/plugin-proposal-export-default-from',
|
||||
['@babel/plugin-transform-optional-chaining', { loose }],
|
||||
|
||||
@@ -23,7 +23,7 @@ import selectAll from 'Utilities/Table/selectAll';
|
||||
import toggleSelected from 'Utilities/Table/toggleSelected';
|
||||
import QueueOptionsConnector from './QueueOptionsConnector';
|
||||
import QueueRowConnector from './QueueRowConnector';
|
||||
import RemoveQueueItemsModal from './RemoveQueueItemsModal';
|
||||
import RemoveQueueItemModal from './RemoveQueueItemModal';
|
||||
|
||||
class Queue extends Component {
|
||||
|
||||
@@ -289,9 +289,16 @@ class Queue extends Component {
|
||||
}
|
||||
</PageContentBody>
|
||||
|
||||
<RemoveQueueItemsModal
|
||||
<RemoveQueueItemModal
|
||||
isOpen={isConfirmRemoveModalOpen}
|
||||
selectedCount={selectedCount}
|
||||
canChangeCategory={isConfirmRemoveModalOpen && (
|
||||
selectedIds.every((id) => {
|
||||
const item = items.find((i) => i.id === id);
|
||||
|
||||
return !!(item && item.downloadClientHasPostImportCategory);
|
||||
})
|
||||
)}
|
||||
canIgnore={isConfirmRemoveModalOpen && (
|
||||
selectedIds.every((id) => {
|
||||
const item = items.find((i) => i.id === id);
|
||||
@@ -299,7 +306,7 @@ class Queue extends Component {
|
||||
return !!(item && item.authorId && item.bookId);
|
||||
})
|
||||
)}
|
||||
allPending={isConfirmRemoveModalOpen && (
|
||||
pending={isConfirmRemoveModalOpen && (
|
||||
selectedIds.every((id) => {
|
||||
const item = items.find((i) => i.id === id);
|
||||
|
||||
|
||||
@@ -98,6 +98,7 @@ class QueueRow extends Component {
|
||||
indexer,
|
||||
outputPath,
|
||||
downloadClient,
|
||||
downloadClientHasPostImportCategory,
|
||||
downloadForced,
|
||||
estimatedCompletionTime,
|
||||
timeleft,
|
||||
@@ -389,6 +390,7 @@ class QueueRow extends Component {
|
||||
<RemoveQueueItemModal
|
||||
isOpen={isRemoveQueueItemModalOpen}
|
||||
sourceTitle={title}
|
||||
canChangeCategory={!!downloadClientHasPostImportCategory}
|
||||
canIgnore={!!author}
|
||||
isPending={isPending}
|
||||
onRemovePress={this.onRemoveQueueItemModalConfirmed}
|
||||
@@ -418,6 +420,7 @@ QueueRow.propTypes = {
|
||||
indexer: PropTypes.string,
|
||||
outputPath: PropTypes.string,
|
||||
downloadClient: PropTypes.string,
|
||||
downloadClientHasPostImportCategory: PropTypes.bool,
|
||||
downloadForced: PropTypes.bool.isRequired,
|
||||
estimatedCompletionTime: PropTypes.string,
|
||||
timeleft: PropTypes.string,
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import FormGroup from 'Components/Form/FormGroup';
|
||||
import FormInputGroup from 'Components/Form/FormInputGroup';
|
||||
import FormLabel from 'Components/Form/FormLabel';
|
||||
import Button from 'Components/Link/Button';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import ModalBody from 'Components/Modal/ModalBody';
|
||||
import ModalContent from 'Components/Modal/ModalContent';
|
||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||
import { inputTypes, kinds, sizes } from 'Helpers/Props';
|
||||
import translate from 'Utilities/String/translate';
|
||||
|
||||
class RemoveQueueItemModal extends Component {
|
||||
|
||||
//
|
||||
// Lifecycle
|
||||
|
||||
constructor(props, context) {
|
||||
super(props, context);
|
||||
|
||||
this.state = {
|
||||
remove: true,
|
||||
blocklist: false,
|
||||
skipRedownload: false
|
||||
};
|
||||
}
|
||||
|
||||
//
|
||||
// Control
|
||||
|
||||
resetState = function() {
|
||||
this.setState({
|
||||
remove: true,
|
||||
blocklist: false,
|
||||
skipRedownload: false
|
||||
});
|
||||
};
|
||||
|
||||
//
|
||||
// Listeners
|
||||
|
||||
onRemoveChange = ({ value }) => {
|
||||
this.setState({ remove: value });
|
||||
};
|
||||
|
||||
onBlocklistChange = ({ value }) => {
|
||||
this.setState({ blocklist: value });
|
||||
};
|
||||
|
||||
onSkipRedownloadChange = ({ value }) => {
|
||||
this.setState({ skipRedownload: value });
|
||||
};
|
||||
|
||||
onRemoveConfirmed = () => {
|
||||
const state = this.state;
|
||||
|
||||
this.resetState();
|
||||
this.props.onRemovePress(state);
|
||||
};
|
||||
|
||||
onModalClose = () => {
|
||||
this.resetState();
|
||||
this.props.onModalClose();
|
||||
};
|
||||
|
||||
//
|
||||
// Render
|
||||
|
||||
render() {
|
||||
const {
|
||||
isOpen,
|
||||
sourceTitle,
|
||||
canIgnore,
|
||||
isPending
|
||||
} = this.props;
|
||||
|
||||
const { remove, blocklist, skipRedownload } = this.state;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isOpen={isOpen}
|
||||
size={sizes.MEDIUM}
|
||||
onModalClose={this.onModalClose}
|
||||
>
|
||||
<ModalContent
|
||||
onModalClose={this.onModalClose}
|
||||
>
|
||||
<ModalHeader>
|
||||
Remove - {sourceTitle}
|
||||
</ModalHeader>
|
||||
|
||||
<ModalBody>
|
||||
<div>
|
||||
Are you sure you want to remove '{sourceTitle}' from the queue?
|
||||
</div>
|
||||
|
||||
{
|
||||
isPending ?
|
||||
null :
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{translate('RemoveFromDownloadClient')}
|
||||
</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="remove"
|
||||
value={remove}
|
||||
helpTextWarning={translate('RemoveHelpTextWarning')}
|
||||
isDisabled={!canIgnore}
|
||||
onChange={this.onRemoveChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
}
|
||||
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{translate('BlocklistRelease')}
|
||||
</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="blocklist"
|
||||
value={blocklist}
|
||||
helpText={translate('BlocklistReleaseHelpText')}
|
||||
onChange={this.onBlocklistChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
{
|
||||
blocklist &&
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{translate('SkipRedownload')}
|
||||
</FormLabel>
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="skipRedownload"
|
||||
value={skipRedownload}
|
||||
helpText={translate('SkipRedownloadHelpText')}
|
||||
onChange={this.onSkipRedownloadChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
}
|
||||
|
||||
</ModalBody>
|
||||
|
||||
<ModalFooter>
|
||||
<Button onPress={this.onModalClose}>
|
||||
Close
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
kind={kinds.DANGER}
|
||||
onPress={this.onRemoveConfirmed}
|
||||
>
|
||||
Remove
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
RemoveQueueItemModal.propTypes = {
|
||||
isOpen: PropTypes.bool.isRequired,
|
||||
sourceTitle: PropTypes.string.isRequired,
|
||||
canIgnore: PropTypes.bool.isRequired,
|
||||
isPending: PropTypes.bool.isRequired,
|
||||
onRemovePress: PropTypes.func.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default RemoveQueueItemModal;
|
||||
230
frontend/src/Activity/Queue/RemoveQueueItemModal.tsx
Normal file
230
frontend/src/Activity/Queue/RemoveQueueItemModal.tsx
Normal file
@@ -0,0 +1,230 @@
|
||||
import React, { useCallback, useMemo, useState } from 'react';
|
||||
import FormGroup from 'Components/Form/FormGroup';
|
||||
import FormInputGroup from 'Components/Form/FormInputGroup';
|
||||
import FormLabel from 'Components/Form/FormLabel';
|
||||
import Button from 'Components/Link/Button';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import ModalBody from 'Components/Modal/ModalBody';
|
||||
import ModalContent from 'Components/Modal/ModalContent';
|
||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||
import { inputTypes, kinds, sizes } from 'Helpers/Props';
|
||||
import translate from 'Utilities/String/translate';
|
||||
import styles from './RemoveQueueItemModal.css';
|
||||
|
||||
interface RemovePressProps {
|
||||
remove: boolean;
|
||||
changeCategory: boolean;
|
||||
blocklist: boolean;
|
||||
skipRedownload: boolean;
|
||||
}
|
||||
|
||||
interface RemoveQueueItemModalProps {
|
||||
isOpen: boolean;
|
||||
sourceTitle: string;
|
||||
canChangeCategory: boolean;
|
||||
canIgnore: boolean;
|
||||
isPending: boolean;
|
||||
selectedCount?: number;
|
||||
onRemovePress(props: RemovePressProps): void;
|
||||
onModalClose: () => void;
|
||||
}
|
||||
|
||||
type RemovalMethod = 'removeFromClient' | 'changeCategory' | 'ignore';
|
||||
type BlocklistMethod =
|
||||
| 'doNotBlocklist'
|
||||
| 'blocklistAndSearch'
|
||||
| 'blocklistOnly';
|
||||
|
||||
function RemoveQueueItemModal(props: RemoveQueueItemModalProps) {
|
||||
const {
|
||||
isOpen,
|
||||
sourceTitle,
|
||||
canIgnore,
|
||||
canChangeCategory,
|
||||
isPending,
|
||||
selectedCount,
|
||||
onRemovePress,
|
||||
onModalClose,
|
||||
} = props;
|
||||
|
||||
const multipleSelected = selectedCount && selectedCount > 1;
|
||||
|
||||
const [removalMethod, setRemovalMethod] =
|
||||
useState<RemovalMethod>('removeFromClient');
|
||||
const [blocklistMethod, setBlocklistMethod] =
|
||||
useState<BlocklistMethod>('doNotBlocklist');
|
||||
|
||||
const { title, message } = useMemo(() => {
|
||||
if (!selectedCount) {
|
||||
return {
|
||||
title: translate('RemoveQueueItem', { sourceTitle }),
|
||||
message: translate('RemoveQueueItemConfirmation', { sourceTitle }),
|
||||
};
|
||||
}
|
||||
|
||||
if (selectedCount === 1) {
|
||||
return {
|
||||
title: translate('RemoveSelectedItem'),
|
||||
message: translate('RemoveSelectedItemQueueMessageText'),
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
title: translate('RemoveSelectedItems'),
|
||||
message: translate('RemoveSelectedItemsQueueMessageText', {
|
||||
selectedCount,
|
||||
}),
|
||||
};
|
||||
}, [sourceTitle, selectedCount]);
|
||||
|
||||
const removalMethodOptions = useMemo(() => {
|
||||
return [
|
||||
{
|
||||
key: 'removeFromClient',
|
||||
value: translate('RemoveFromDownloadClient'),
|
||||
hint: multipleSelected
|
||||
? translate('RemoveMultipleFromDownloadClientHint')
|
||||
: translate('RemoveFromDownloadClientHint'),
|
||||
},
|
||||
{
|
||||
key: 'changeCategory',
|
||||
value: translate('ChangeCategory'),
|
||||
isDisabled: !canChangeCategory,
|
||||
hint: multipleSelected
|
||||
? translate('ChangeCategoryMultipleHint')
|
||||
: translate('ChangeCategoryHint'),
|
||||
},
|
||||
{
|
||||
key: 'ignore',
|
||||
value: multipleSelected
|
||||
? translate('IgnoreDownloads')
|
||||
: translate('IgnoreDownload'),
|
||||
isDisabled: !canIgnore,
|
||||
hint: multipleSelected
|
||||
? translate('IgnoreDownloadsHint')
|
||||
: translate('IgnoreDownloadHint'),
|
||||
},
|
||||
];
|
||||
}, [canChangeCategory, canIgnore, multipleSelected]);
|
||||
|
||||
const blocklistMethodOptions = useMemo(() => {
|
||||
return [
|
||||
{
|
||||
key: 'doNotBlocklist',
|
||||
value: translate('DoNotBlocklist'),
|
||||
hint: translate('DoNotBlocklistHint'),
|
||||
},
|
||||
{
|
||||
key: 'blocklistAndSearch',
|
||||
value: translate('BlocklistAndSearch'),
|
||||
hint: multipleSelected
|
||||
? translate('BlocklistAndSearchMultipleHint')
|
||||
: translate('BlocklistAndSearchHint'),
|
||||
},
|
||||
{
|
||||
key: 'blocklistOnly',
|
||||
value: translate('BlocklistOnly'),
|
||||
hint: multipleSelected
|
||||
? translate('BlocklistMultipleOnlyHint')
|
||||
: translate('BlocklistOnlyHint'),
|
||||
},
|
||||
];
|
||||
}, [multipleSelected]);
|
||||
|
||||
const handleRemovalMethodChange = useCallback(
|
||||
({ value }: { value: RemovalMethod }) => {
|
||||
setRemovalMethod(value);
|
||||
},
|
||||
[setRemovalMethod]
|
||||
);
|
||||
|
||||
const handleBlocklistMethodChange = useCallback(
|
||||
({ value }: { value: BlocklistMethod }) => {
|
||||
setBlocklistMethod(value);
|
||||
},
|
||||
[setBlocklistMethod]
|
||||
);
|
||||
|
||||
const handleConfirmRemove = useCallback(() => {
|
||||
onRemovePress({
|
||||
remove: removalMethod === 'removeFromClient',
|
||||
changeCategory: removalMethod === 'changeCategory',
|
||||
blocklist: blocklistMethod !== 'doNotBlocklist',
|
||||
skipRedownload: blocklistMethod === 'blocklistOnly',
|
||||
});
|
||||
|
||||
setRemovalMethod('removeFromClient');
|
||||
setBlocklistMethod('doNotBlocklist');
|
||||
}, [
|
||||
removalMethod,
|
||||
blocklistMethod,
|
||||
setRemovalMethod,
|
||||
setBlocklistMethod,
|
||||
onRemovePress,
|
||||
]);
|
||||
|
||||
const handleModalClose = useCallback(() => {
|
||||
setRemovalMethod('removeFromClient');
|
||||
setBlocklistMethod('doNotBlocklist');
|
||||
|
||||
onModalClose();
|
||||
}, [setRemovalMethod, setBlocklistMethod, onModalClose]);
|
||||
|
||||
return (
|
||||
<Modal isOpen={isOpen} size={sizes.MEDIUM} onModalClose={handleModalClose}>
|
||||
<ModalContent onModalClose={handleModalClose}>
|
||||
<ModalHeader>{title}</ModalHeader>
|
||||
|
||||
<ModalBody>
|
||||
<div className={styles.message}>{message}</div>
|
||||
|
||||
{isPending ? null : (
|
||||
<FormGroup>
|
||||
<FormLabel>{translate('RemoveQueueItemRemovalMethod')}</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.SELECT}
|
||||
name="removalMethod"
|
||||
value={removalMethod}
|
||||
values={removalMethodOptions}
|
||||
isDisabled={!canChangeCategory && !canIgnore}
|
||||
helpTextWarning={translate(
|
||||
'RemoveQueueItemRemovalMethodHelpTextWarning'
|
||||
)}
|
||||
onChange={handleRemovalMethodChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
)}
|
||||
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{multipleSelected
|
||||
? translate('BlocklistReleases')
|
||||
: translate('BlocklistRelease')}
|
||||
</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.SELECT}
|
||||
name="blocklistMethod"
|
||||
value={blocklistMethod}
|
||||
values={blocklistMethodOptions}
|
||||
helpText={translate('BlocklistReleaseHelpText')}
|
||||
onChange={handleBlocklistMethodChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
</ModalBody>
|
||||
|
||||
<ModalFooter>
|
||||
<Button onPress={handleModalClose}>{translate('Close')}</Button>
|
||||
|
||||
<Button kind={kinds.DANGER} onPress={handleConfirmRemove}>
|
||||
{translate('Remove')}
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
|
||||
export default RemoveQueueItemModal;
|
||||
@@ -1,178 +0,0 @@
|
||||
import PropTypes from 'prop-types';
|
||||
import React, { Component } from 'react';
|
||||
import FormGroup from 'Components/Form/FormGroup';
|
||||
import FormInputGroup from 'Components/Form/FormInputGroup';
|
||||
import FormLabel from 'Components/Form/FormLabel';
|
||||
import Button from 'Components/Link/Button';
|
||||
import Modal from 'Components/Modal/Modal';
|
||||
import ModalBody from 'Components/Modal/ModalBody';
|
||||
import ModalContent from 'Components/Modal/ModalContent';
|
||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||
import { inputTypes, kinds, sizes } from 'Helpers/Props';
|
||||
import translate from 'Utilities/String/translate';
|
||||
import styles from './RemoveQueueItemsModal.css';
|
||||
|
||||
class RemoveQueueItemsModal extends Component {
|
||||
|
||||
//
|
||||
// Lifecycle
|
||||
|
||||
constructor(props, context) {
|
||||
super(props, context);
|
||||
|
||||
this.state = {
|
||||
remove: true,
|
||||
blocklist: false,
|
||||
skipRedownload: false
|
||||
};
|
||||
}
|
||||
|
||||
//
|
||||
// Control
|
||||
|
||||
resetState = function() {
|
||||
this.setState({
|
||||
remove: true,
|
||||
blocklist: false,
|
||||
skipRedownload: false
|
||||
});
|
||||
};
|
||||
|
||||
//
|
||||
// Listeners
|
||||
|
||||
onRemoveChange = ({ value }) => {
|
||||
this.setState({ remove: value });
|
||||
};
|
||||
|
||||
onBlocklistChange = ({ value }) => {
|
||||
this.setState({ blocklist: value });
|
||||
};
|
||||
|
||||
onSkipRedownloadChange = ({ value }) => {
|
||||
this.setState({ skipRedownload: value });
|
||||
};
|
||||
|
||||
onRemoveConfirmed = () => {
|
||||
const state = this.state;
|
||||
|
||||
this.resetState();
|
||||
this.props.onRemovePress(state);
|
||||
};
|
||||
|
||||
onModalClose = () => {
|
||||
this.resetState();
|
||||
this.props.onModalClose();
|
||||
};
|
||||
|
||||
//
|
||||
// Render
|
||||
|
||||
render() {
|
||||
const {
|
||||
isOpen,
|
||||
selectedCount,
|
||||
canIgnore,
|
||||
allPending
|
||||
} = this.props;
|
||||
|
||||
const { remove, blocklist, skipRedownload } = this.state;
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isOpen={isOpen}
|
||||
size={sizes.MEDIUM}
|
||||
onModalClose={this.onModalClose}
|
||||
>
|
||||
<ModalContent
|
||||
onModalClose={this.onModalClose}
|
||||
>
|
||||
<ModalHeader>
|
||||
{selectedCount > 1 ? translate('RemoveSelectedItems') : translate('RemoveSelectedItem')}
|
||||
</ModalHeader>
|
||||
|
||||
<ModalBody>
|
||||
<div className={styles.message}>
|
||||
{selectedCount > 1 ? translate('RemoveSelectedItemsQueueMessageText', selectedCount) : translate('RemoveSelectedItemQueueMessageText')}
|
||||
</div>
|
||||
|
||||
{
|
||||
allPending ?
|
||||
null :
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{translate('RemoveFromDownloadClient')}
|
||||
</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="remove"
|
||||
value={remove}
|
||||
helpTextWarning={translate('RemoveHelpTextWarning')}
|
||||
isDisabled={!canIgnore}
|
||||
onChange={this.onRemoveChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
}
|
||||
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{selectedCount > 1 ? translate('BlocklistReleases') : translate('BlocklistRelease')}
|
||||
</FormLabel>
|
||||
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="blocklist"
|
||||
value={blocklist}
|
||||
helpText={translate('BlocklistReleaseHelpText')}
|
||||
onChange={this.onBlocklistChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
|
||||
{
|
||||
blocklist &&
|
||||
<FormGroup>
|
||||
<FormLabel>
|
||||
{translate('SkipRedownload')}
|
||||
</FormLabel>
|
||||
<FormInputGroup
|
||||
type={inputTypes.CHECK}
|
||||
name="skipRedownload"
|
||||
value={skipRedownload}
|
||||
helpText={translate('SkipRedownloadHelpText')}
|
||||
onChange={this.onSkipRedownloadChange}
|
||||
/>
|
||||
</FormGroup>
|
||||
}
|
||||
|
||||
</ModalBody>
|
||||
|
||||
<ModalFooter>
|
||||
<Button onPress={this.onModalClose}>
|
||||
{translate('Close')}
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
kind={kinds.DANGER}
|
||||
onPress={this.onRemoveConfirmed}
|
||||
>
|
||||
{translate('Remove')}
|
||||
</Button>
|
||||
</ModalFooter>
|
||||
</ModalContent>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
RemoveQueueItemsModal.propTypes = {
|
||||
isOpen: PropTypes.bool.isRequired,
|
||||
selectedCount: PropTypes.number.isRequired,
|
||||
canIgnore: PropTypes.bool.isRequired,
|
||||
allPending: PropTypes.bool.isRequired,
|
||||
onRemovePress: PropTypes.func.isRequired,
|
||||
onModalClose: PropTypes.func.isRequired
|
||||
};
|
||||
|
||||
export default RemoveQueueItemsModal;
|
||||
@@ -29,22 +29,24 @@ function CustomFiltersModalContent(props) {
|
||||
|
||||
<ModalBody>
|
||||
{
|
||||
customFilters.map((customFilter) => {
|
||||
return (
|
||||
<CustomFilter
|
||||
key={customFilter.id}
|
||||
id={customFilter.id}
|
||||
label={customFilter.label}
|
||||
filters={customFilter.filters}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
isDeleting={isDeleting}
|
||||
deleteError={deleteError}
|
||||
dispatchSetFilter={dispatchSetFilter}
|
||||
dispatchDeleteCustomFilter={dispatchDeleteCustomFilter}
|
||||
onEditPress={onEditCustomFilter}
|
||||
/>
|
||||
);
|
||||
})
|
||||
customFilters
|
||||
.sort((a, b) => a.label.localeCompare(b.label))
|
||||
.map((customFilter) => {
|
||||
return (
|
||||
<CustomFilter
|
||||
key={customFilter.id}
|
||||
id={customFilter.id}
|
||||
label={customFilter.label}
|
||||
filters={customFilter.filters}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
isDeleting={isDeleting}
|
||||
deleteError={deleteError}
|
||||
dispatchSetFilter={dispatchSetFilter}
|
||||
dispatchDeleteCustomFilter={dispatchDeleteCustomFilter}
|
||||
onEditPress={onEditCustomFilter}
|
||||
/>
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
<div className={styles.addButtonContainer}>
|
||||
|
||||
@@ -273,6 +273,7 @@ FormInputGroup.propTypes = {
|
||||
name: PropTypes.string.isRequired,
|
||||
value: PropTypes.any,
|
||||
values: PropTypes.arrayOf(PropTypes.any),
|
||||
isDisabled: PropTypes.bool,
|
||||
type: PropTypes.string.isRequired,
|
||||
kind: PropTypes.oneOf(kinds.all),
|
||||
min: PropTypes.number,
|
||||
|
||||
@@ -39,18 +39,26 @@ class FilterMenuContent extends Component {
|
||||
}
|
||||
|
||||
{
|
||||
customFilters.map((filter) => {
|
||||
return (
|
||||
<FilterMenuItem
|
||||
key={filter.id}
|
||||
filterKey={filter.id}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
onPress={onFilterSelect}
|
||||
>
|
||||
{filter.label}
|
||||
</FilterMenuItem>
|
||||
);
|
||||
})
|
||||
customFilters.length > 0 ?
|
||||
<MenuItemSeparator /> :
|
||||
null
|
||||
}
|
||||
|
||||
{
|
||||
customFilters
|
||||
.sort((a, b) => a.label.localeCompare(b.label))
|
||||
.map((filter) => {
|
||||
return (
|
||||
<FilterMenuItem
|
||||
key={filter.id}
|
||||
filterKey={filter.id}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
onPress={onFilterSelect}
|
||||
>
|
||||
{filter.label}
|
||||
</FilterMenuItem>
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -49,7 +49,7 @@ function EditSpecificationModalContent(props) {
|
||||
{...otherProps}
|
||||
>
|
||||
{
|
||||
fields && fields.some((x) => x.label === 'Regular Expression') &&
|
||||
fields && fields.some((x) => x.label === translate('CustomFormatsSpecificationRegularExpression')) &&
|
||||
<Alert kind={kinds.INFO}>
|
||||
<div>
|
||||
<div dangerouslySetInnerHTML={{ __html: 'This condition matches using Regular Expressions. Note that the characters <code>\\^$.|?*+()[{</code> have special meanings and need escaping with a <code>\\</code>' }} />
|
||||
|
||||
@@ -94,7 +94,12 @@ export default {
|
||||
items: [],
|
||||
pendingChanges: {},
|
||||
sortKey: 'name',
|
||||
sortDirection: sortDirections.DESCENDING
|
||||
sortDirection: sortDirections.ASCENDING,
|
||||
sortPredicates: {
|
||||
name: function(item) {
|
||||
return item.name.toLowerCase();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
|
||||
@@ -98,7 +98,12 @@ export default {
|
||||
items: [],
|
||||
pendingChanges: {},
|
||||
sortKey: 'name',
|
||||
sortDirection: sortDirections.DESCENDING
|
||||
sortDirection: sortDirections.ASCENDING,
|
||||
sortPredicates: {
|
||||
name: function(item) {
|
||||
return item.name.toLowerCase();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
@@ -146,7 +151,13 @@ export default {
|
||||
delete selectedSchema.name;
|
||||
|
||||
selectedSchema.fields = selectedSchema.fields.map((field) => {
|
||||
return { ...field };
|
||||
const newField = { ...field };
|
||||
|
||||
if (newField.privacy === 'apiKey' || newField.privacy === 'password') {
|
||||
newField.value = '';
|
||||
}
|
||||
|
||||
return newField;
|
||||
});
|
||||
|
||||
newState.selectedSchema = selectedSchema;
|
||||
|
||||
@@ -371,13 +371,14 @@ export const actionHandlers = handleThunks({
|
||||
id,
|
||||
remove,
|
||||
blocklist,
|
||||
skipRedownload
|
||||
skipRedownload,
|
||||
changeCategory
|
||||
} = payload;
|
||||
|
||||
dispatch(updateItem({ section: paged, id, isRemoving: true }));
|
||||
|
||||
const promise = createAjaxRequest({
|
||||
url: `/queue/${id}?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}`,
|
||||
url: `/queue/${id}?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}&changeCategory=${changeCategory}`,
|
||||
method: 'DELETE'
|
||||
}).request;
|
||||
|
||||
@@ -395,7 +396,8 @@ export const actionHandlers = handleThunks({
|
||||
ids,
|
||||
remove,
|
||||
blocklist,
|
||||
skipRedownload
|
||||
skipRedownload,
|
||||
changeCategory
|
||||
} = payload;
|
||||
|
||||
dispatch(batchActions([
|
||||
@@ -411,7 +413,7 @@ export const actionHandlers = handleThunks({
|
||||
]));
|
||||
|
||||
const promise = createAjaxRequest({
|
||||
url: `/queue/bulk?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}`,
|
||||
url: `/queue/bulk?removeFromClient=${remove}&blocklist=${blocklist}&skipRedownload=${skipRedownload}&changeCategory=${changeCategory}`,
|
||||
method: 'DELETE',
|
||||
dataType: 'json',
|
||||
data: JSON.stringify({ ids })
|
||||
|
||||
@@ -22,9 +22,9 @@ class About extends Component {
|
||||
isNetCore,
|
||||
isDocker,
|
||||
runtimeVersion,
|
||||
migrationVersion,
|
||||
databaseVersion,
|
||||
databaseType,
|
||||
migrationVersion,
|
||||
appData,
|
||||
startupPath,
|
||||
mode,
|
||||
@@ -66,13 +66,13 @@ class About extends Component {
|
||||
}
|
||||
|
||||
<DescriptionListItem
|
||||
title={translate('DBMigration')}
|
||||
data={migrationVersion}
|
||||
title={translate('Database')}
|
||||
data={`${titleCase(databaseType)} ${databaseVersion}`}
|
||||
/>
|
||||
|
||||
<DescriptionListItem
|
||||
title={translate('Database')}
|
||||
data={`${titleCase(databaseType)} ${databaseVersion}`}
|
||||
title={translate('DatabaseMigration')}
|
||||
data={migrationVersion}
|
||||
/>
|
||||
|
||||
<DescriptionListItem
|
||||
@@ -114,9 +114,9 @@ About.propTypes = {
|
||||
isNetCore: PropTypes.bool.isRequired,
|
||||
runtimeVersion: PropTypes.string.isRequired,
|
||||
isDocker: PropTypes.bool.isRequired,
|
||||
migrationVersion: PropTypes.number.isRequired,
|
||||
databaseType: PropTypes.string.isRequired,
|
||||
databaseVersion: PropTypes.string.isRequired,
|
||||
migrationVersion: PropTypes.number.isRequired,
|
||||
appData: PropTypes.string.isRequired,
|
||||
startupPath: PropTypes.string.isRequired,
|
||||
mode: PropTypes.string.isRequired,
|
||||
|
||||
@@ -25,20 +25,18 @@ export async function fetchTranslations(): Promise<boolean> {
|
||||
|
||||
export default function translate(
|
||||
key: string,
|
||||
tokens: Record<string, string | number | boolean> = { appName: 'Readarr' }
|
||||
tokens: Record<string, string | number | boolean> = {}
|
||||
) {
|
||||
const translation = translations[key] || key;
|
||||
|
||||
if (tokens) {
|
||||
// Fallback to the old behaviour for translations not yet updated to use named tokens
|
||||
Object.values(tokens).forEach((value, index) => {
|
||||
tokens[index] = value;
|
||||
});
|
||||
tokens.appName = 'Readarr';
|
||||
|
||||
return translation.replace(/\{([a-z0-9]+?)\}/gi, (match, tokenMatch) =>
|
||||
String(tokens[tokenMatch] ?? match)
|
||||
);
|
||||
}
|
||||
// Fallback to the old behaviour for translations not yet updated to use named tokens
|
||||
Object.values(tokens).forEach((value, index) => {
|
||||
tokens[index] = value;
|
||||
});
|
||||
|
||||
return translation;
|
||||
return translation.replace(/\{([a-z0-9]+?)\}/gi, (match, tokenMatch) =>
|
||||
String(tokens[tokenMatch] ?? match)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -124,6 +124,16 @@ namespace NzbDrone.Common.Test.Http
|
||||
response.Content.Should().NotBeNullOrWhiteSpace();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void should_throw_timeout_request()
|
||||
{
|
||||
var request = new HttpRequest($"https://{_httpBinHost}/delay/10");
|
||||
|
||||
request.RequestTimeout = new TimeSpan(0, 0, 5);
|
||||
|
||||
Assert.ThrowsAsync<WebException>(async () => await Subject.ExecuteAsync(request));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task should_execute_https_get()
|
||||
{
|
||||
|
||||
@@ -103,31 +103,38 @@ namespace NzbDrone.Common.Http.Dispatchers
|
||||
|
||||
var httpClient = GetClient(request.Url);
|
||||
|
||||
using var responseMessage = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead, cts.Token);
|
||||
try
|
||||
{
|
||||
byte[] data = null;
|
||||
|
||||
try
|
||||
using var responseMessage = await httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead, cts.Token);
|
||||
{
|
||||
if (request.ResponseStream != null && responseMessage.StatusCode == HttpStatusCode.OK)
|
||||
byte[] data = null;
|
||||
|
||||
try
|
||||
{
|
||||
await responseMessage.Content.CopyToAsync(request.ResponseStream, null, cts.Token);
|
||||
if (request.ResponseStream != null && responseMessage.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
await responseMessage.Content.CopyToAsync(request.ResponseStream, null, cts.Token);
|
||||
}
|
||||
else
|
||||
{
|
||||
data = await responseMessage.Content.ReadAsByteArrayAsync(cts.Token);
|
||||
}
|
||||
}
|
||||
else
|
||||
catch (Exception ex)
|
||||
{
|
||||
data = await responseMessage.Content.ReadAsByteArrayAsync(cts.Token);
|
||||
throw new WebException("Failed to read complete http response", ex, WebExceptionStatus.ReceiveFailure, null);
|
||||
}
|
||||
|
||||
var headers = responseMessage.Headers.ToNameValueCollection();
|
||||
|
||||
headers.Add(responseMessage.Content.Headers.ToNameValueCollection());
|
||||
|
||||
return new HttpResponse(request, new HttpHeader(headers), data, responseMessage.StatusCode, responseMessage.Version);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
throw new WebException("Failed to read complete http response", ex, WebExceptionStatus.ReceiveFailure, null);
|
||||
}
|
||||
|
||||
var headers = responseMessage.Headers.ToNameValueCollection();
|
||||
|
||||
headers.Add(responseMessage.Content.Headers.ToNameValueCollection());
|
||||
|
||||
return new HttpResponse(request, new HttpHeader(headers), data, responseMessage.StatusCode, responseMessage.Version);
|
||||
}
|
||||
catch (OperationCanceledException ex) when (cts.IsCancellationRequested)
|
||||
{
|
||||
throw new WebException("Http request timed out", ex.InnerException, WebExceptionStatus.Timeout, null);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -454,6 +454,8 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests
|
||||
|
||||
[TestCase("0")]
|
||||
[TestCase("15d")]
|
||||
[TestCase("")]
|
||||
[TestCase(null)]
|
||||
public void should_set_history_removes_completed_downloads_false(string historyRetention)
|
||||
{
|
||||
_config.Misc.history_retention = historyRetention;
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace NzbDrone.Core.Test.IndexerTests.FileListTests
|
||||
|
||||
Mocker.GetMock<IHttpClient>()
|
||||
.Setup(o => o.ExecuteAsync(It.Is<HttpRequest>(v => v.Method == HttpMethod.Get)))
|
||||
.Returns<HttpRequest>(r => Task.FromResult(new HttpResponse(r, new HttpHeader(), recentFeed)));
|
||||
.Returns<HttpRequest>(r => Task.FromResult(new HttpResponse(r, new HttpHeader { { "Content-Type", "application/json" } }, recentFeed)));
|
||||
|
||||
var releases = await Subject.FetchRecent();
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using NLog;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Core.Blocklisting;
|
||||
using NzbDrone.Core.Books;
|
||||
@@ -23,10 +24,12 @@ namespace NzbDrone.Core.CustomFormats
|
||||
public class CustomFormatCalculationService : ICustomFormatCalculationService
|
||||
{
|
||||
private readonly ICustomFormatService _formatService;
|
||||
private readonly Logger _logger;
|
||||
|
||||
public CustomFormatCalculationService(ICustomFormatService formatService)
|
||||
public CustomFormatCalculationService(ICustomFormatService formatService, Logger logger)
|
||||
{
|
||||
_formatService = formatService;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public List<CustomFormat> ParseCustomFormat(RemoteBook remoteBook, long size)
|
||||
@@ -145,26 +148,30 @@ namespace NzbDrone.Core.CustomFormats
|
||||
return matches.OrderBy(x => x.Name).ToList();
|
||||
}
|
||||
|
||||
private static List<CustomFormat> ParseCustomFormat(BookFile bookFile, Author author, List<CustomFormat> allCustomFormats)
|
||||
private List<CustomFormat> ParseCustomFormat(BookFile bookFile, Author author, List<CustomFormat> allCustomFormats)
|
||||
{
|
||||
var sceneName = string.Empty;
|
||||
var releaseTitle = string.Empty;
|
||||
|
||||
if (bookFile.SceneName.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
sceneName = bookFile.SceneName;
|
||||
_logger.Trace("Using scene name for release title: {0}", bookFile.SceneName);
|
||||
releaseTitle = bookFile.SceneName;
|
||||
}
|
||||
else if (bookFile.OriginalFilePath.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
sceneName = bookFile.OriginalFilePath;
|
||||
_logger.Trace("Using original file path for release title: {0}", bookFile.OriginalFilePath);
|
||||
releaseTitle = bookFile.OriginalFilePath;
|
||||
}
|
||||
else if (bookFile.Path.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
sceneName = Path.GetFileName(bookFile.Path);
|
||||
_logger.Trace("Using path for release title: {0}", Path.GetFileName(bookFile.Path));
|
||||
releaseTitle = Path.GetFileName(bookFile.Path);
|
||||
}
|
||||
|
||||
var bookInfo = new ParsedBookInfo
|
||||
{
|
||||
AuthorName = author.Name,
|
||||
ReleaseTitle = sceneName,
|
||||
ReleaseTitle = releaseTitle,
|
||||
Quality = bookFile.Quality,
|
||||
ReleaseGroup = bookFile.ReleaseGroup
|
||||
};
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace NzbDrone.Core.CustomFormats
|
||||
protected Regex _regex;
|
||||
protected string _raw;
|
||||
|
||||
[FieldDefinition(1, Label = "Regular Expression", HelpText = "Custom Format RegEx is Case Insensitive")]
|
||||
[FieldDefinition(1, Label = "CustomFormatsSpecificationRegularExpression", HelpText = "CustomFormatsSpecificationRegularExpressionHelpText")]
|
||||
public string Value
|
||||
{
|
||||
get => _raw;
|
||||
|
||||
@@ -8,6 +8,8 @@ namespace NzbDrone.Core.Datastore.Migration
|
||||
{
|
||||
protected override void MainDbUpgrade()
|
||||
{
|
||||
Delete.FromTable("Commands").AllRows();
|
||||
|
||||
Alter.Table("Authors").AlterColumn("LastInfoSync").AsDateTimeOffset().Nullable();
|
||||
Alter.Table("Authors").AlterColumn("Added").AsDateTimeOffset().Nullable();
|
||||
Alter.Table("AuthorMetadata").AlterColumn("Born").AsDateTimeOffset().Nullable();
|
||||
|
||||
@@ -132,7 +132,7 @@ namespace NzbDrone.Core.Download.Clients.Aria2
|
||||
CanMoveFiles = false,
|
||||
CanBeRemoved = torrent.Status == "complete",
|
||||
Category = null,
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = torrent.InfoHash?.ToUpper(),
|
||||
IsEncrypted = false,
|
||||
Message = torrent.ErrorMessage,
|
||||
|
||||
@@ -89,7 +89,7 @@ namespace NzbDrone.Core.Download.Clients.Blackhole
|
||||
{
|
||||
yield return new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = Definition.Name + "_" + item.DownloadId,
|
||||
Category = "Readarr",
|
||||
Title = item.Title,
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace NzbDrone.Core.Download.Clients.Blackhole
|
||||
{
|
||||
yield return new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = Definition.Name + "_" + item.DownloadId,
|
||||
Category = "Readarr",
|
||||
Title = item.Title,
|
||||
|
||||
@@ -135,7 +135,7 @@ namespace NzbDrone.Core.Download.Clients.Deluge
|
||||
item.Title = torrent.Name;
|
||||
item.Category = Settings.MusicCategory;
|
||||
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
|
||||
|
||||
var outputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.DownloadPath));
|
||||
item.OutputPath = outputPath + torrent.Name;
|
||||
|
||||
@@ -89,7 +89,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
|
||||
var item = new DownloadClientItem()
|
||||
{
|
||||
Category = Settings.MusicCategory,
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = CreateDownloadId(torrent.Id, serialNumber),
|
||||
Title = torrent.Title,
|
||||
TotalSize = torrent.Size,
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace NzbDrone.Core.Download.Clients.DownloadStation
|
||||
var item = new DownloadClientItem()
|
||||
{
|
||||
Category = Settings.MusicCategory,
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = CreateDownloadId(nzb.Id, serialNumber),
|
||||
Title = nzb.Title,
|
||||
TotalSize = nzb.Size,
|
||||
|
||||
@@ -109,7 +109,7 @@ namespace NzbDrone.Core.Download.Clients.Flood
|
||||
|
||||
var item = new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = torrent.Key,
|
||||
Title = properties.Name,
|
||||
OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(properties.Directory)),
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace NzbDrone.Core.Download.Clients.Hadouken
|
||||
|
||||
var item = new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = torrent.InfoHash.ToUpper(),
|
||||
OutputPath = outputPath + torrent.Name,
|
||||
RemainingSize = torrent.TotalSize - torrent.DownloadedBytes,
|
||||
|
||||
@@ -56,7 +56,7 @@ namespace NzbDrone.Core.Download.Clients.NzbVortex
|
||||
{
|
||||
var queueItem = new DownloadClientItem();
|
||||
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
|
||||
queueItem.DownloadId = vortexQueueItem.AddUUID ?? vortexQueueItem.Id.ToString();
|
||||
queueItem.Category = vortexQueueItem.GroupName;
|
||||
queueItem.Title = vortexQueueItem.UiTitle;
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
|
||||
queueItem.Title = item.NzbName;
|
||||
queueItem.TotalSize = totalSize;
|
||||
queueItem.Category = item.Category;
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
|
||||
queueItem.CanMoveFiles = true;
|
||||
queueItem.CanBeRemoved = true;
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace NzbDrone.Core.Download.Clients.Nzbget
|
||||
var historyItem = new DownloadClientItem();
|
||||
var itemDir = item.FinalDir.IsNullOrWhiteSpace() ? item.DestDir : item.FinalDir;
|
||||
|
||||
historyItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
historyItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
|
||||
historyItem.DownloadId = droneParameter == null ? item.Id.ToString() : droneParameter.Value.ToString();
|
||||
historyItem.Title = item.Name;
|
||||
historyItem.TotalSize = MakeInt64(item.FileSizeHi, item.FileSizeLo);
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace NzbDrone.Core.Download.Clients.Pneumatic
|
||||
|
||||
var historyItem = new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = GetDownloadClientId(file),
|
||||
Title = title,
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
||||
Category = torrent.Category.IsNotNullOrWhiteSpace() ? torrent.Category : torrent.Label,
|
||||
Title = torrent.Name,
|
||||
TotalSize = torrent.Size,
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace()),
|
||||
RemainingSize = (long)(torrent.Size * (1.0 - torrent.Progress)),
|
||||
RemainingTime = GetRemainingTime(torrent),
|
||||
SeedRatio = torrent.Ratio
|
||||
@@ -613,7 +613,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
||||
}
|
||||
else if (torrent.RatioLimit == -2 && config.MaxRatioEnabled)
|
||||
{
|
||||
if (torrent.Ratio >= config.MaxRatio)
|
||||
if (Math.Round(torrent.Ratio, 2) >= config.MaxRatio)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
}
|
||||
|
||||
var queueItem = new DownloadClientItem();
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
queueItem.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
|
||||
queueItem.DownloadId = sabQueueItem.Id;
|
||||
queueItem.Category = sabQueueItem.Category;
|
||||
queueItem.Title = sabQueueItem.Title;
|
||||
@@ -118,7 +118,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
|
||||
var historyItem = new DownloadClientItem
|
||||
{
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this),
|
||||
DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false),
|
||||
DownloadId = sabHistoryItem.Id,
|
||||
Category = sabHistoryItem.Category,
|
||||
Title = sabHistoryItem.Title,
|
||||
@@ -263,7 +263,11 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
|
||||
status.OutputRootFolders = new List<OsPath> { _remotePathMappingService.RemapRemoteToLocal(Settings.Host, category.FullPath) };
|
||||
}
|
||||
|
||||
if (config.Misc.history_retention.IsNotNullOrWhiteSpace() && config.Misc.history_retention.EndsWith("d"))
|
||||
if (config.Misc.history_retention.IsNullOrWhiteSpace())
|
||||
{
|
||||
status.RemovesCompletedDownloads = false;
|
||||
}
|
||||
else if (config.Misc.history_retention.EndsWith("d"))
|
||||
{
|
||||
int.TryParse(config.Misc.history_retention.AsSpan(0, config.Misc.history_retention.Length - 1),
|
||||
out var daysRetention);
|
||||
|
||||
@@ -72,7 +72,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
|
||||
item.Category = Settings.MusicCategory;
|
||||
item.Title = torrent.Name;
|
||||
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, false);
|
||||
|
||||
item.OutputPath = GetOutputPath(outputPath, torrent);
|
||||
item.TotalSize = torrent.TotalSize;
|
||||
|
||||
@@ -146,7 +146,7 @@ namespace NzbDrone.Core.Download.Clients.RTorrent
|
||||
}
|
||||
|
||||
var item = new DownloadClientItem();
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
|
||||
item.Title = torrent.Name;
|
||||
item.DownloadId = torrent.Hash;
|
||||
item.OutputPath = _remotePathMappingService.RemapRemoteToLocal(Settings.Host, new OsPath(torrent.Path));
|
||||
|
||||
@@ -120,7 +120,7 @@ namespace NzbDrone.Core.Download.Clients.UTorrent
|
||||
item.Title = torrent.Name;
|
||||
item.TotalSize = torrent.Size;
|
||||
item.Category = torrent.Label;
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this);
|
||||
item.DownloadClientInfo = DownloadClientItemClientInfo.FromDownloadClient(this, Settings.MusicImportedCategory.IsNotNullOrWhiteSpace());
|
||||
item.RemainingSize = torrent.Remaining;
|
||||
item.SeedRatio = torrent.Ratio;
|
||||
|
||||
|
||||
@@ -38,8 +38,10 @@ namespace NzbDrone.Core.Download
|
||||
public string Type { get; set; }
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public bool HasPostImportCategory { get; set; }
|
||||
|
||||
public static DownloadClientItemClientInfo FromDownloadClient<TSettings>(DownloadClientBase<TSettings> downloadClient)
|
||||
public static DownloadClientItemClientInfo FromDownloadClient<TSettings>(
|
||||
DownloadClientBase<TSettings> downloadClient, bool hasPostImportCategory)
|
||||
where TSettings : IProviderConfig, new()
|
||||
{
|
||||
return new DownloadClientItemClientInfo
|
||||
@@ -47,7 +49,8 @@ namespace NzbDrone.Core.Download
|
||||
Protocol = downloadClient.Protocol,
|
||||
Type = downloadClient.Name,
|
||||
Id = downloadClient.Definition.Id,
|
||||
Name = downloadClient.Definition.Name
|
||||
Name = downloadClient.Definition.Name,
|
||||
HasPostImportCategory = hasPostImportCategory
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,8 @@ namespace NzbDrone.Core.Download.Pending
|
||||
private readonly IConfigService _configService;
|
||||
private readonly ICustomFormatCalculationService _formatCalculator;
|
||||
private readonly IRemoteBookAggregationService _aggregationService;
|
||||
private readonly IDownloadClientFactory _downloadClientFactory;
|
||||
private readonly IIndexerFactory _indexerFactory;
|
||||
private readonly IEventAggregator _eventAggregator;
|
||||
private readonly Logger _logger;
|
||||
|
||||
@@ -58,6 +60,8 @@ namespace NzbDrone.Core.Download.Pending
|
||||
IConfigService configService,
|
||||
ICustomFormatCalculationService formatCalculator,
|
||||
IRemoteBookAggregationService aggregationService,
|
||||
IDownloadClientFactory downloadClientFactory,
|
||||
IIndexerFactory indexerFactory,
|
||||
IEventAggregator eventAggregator,
|
||||
Logger logger)
|
||||
{
|
||||
@@ -70,6 +74,8 @@ namespace NzbDrone.Core.Download.Pending
|
||||
_configService = configService;
|
||||
_formatCalculator = formatCalculator;
|
||||
_aggregationService = aggregationService;
|
||||
_downloadClientFactory = downloadClientFactory;
|
||||
_indexerFactory = indexerFactory;
|
||||
_eventAggregator = eventAggregator;
|
||||
_logger = logger;
|
||||
}
|
||||
@@ -107,9 +113,16 @@ namespace NzbDrone.Core.Download.Pending
|
||||
|
||||
if (matchingReport.Reason != reason)
|
||||
{
|
||||
_logger.Debug("The release {0} is already pending with reason {1}, changing to {2}", decision.RemoteBook, matchingReport.Reason, reason);
|
||||
matchingReport.Reason = reason;
|
||||
_repository.Update(matchingReport);
|
||||
if (matchingReport.Reason == PendingReleaseReason.DownloadClientUnavailable)
|
||||
{
|
||||
_logger.Debug("The release {0} is already pending with reason {1}, not changing reason", decision.RemoteBook, matchingReport.Reason);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Debug("The release {0} is already pending with reason {1}, changing to {2}", decision.RemoteBook, matchingReport.Reason, reason);
|
||||
matchingReport.Reason = reason;
|
||||
_repository.Update(matchingReport);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -190,6 +203,16 @@ namespace NzbDrone.Core.Download.Pending
|
||||
timeleft = TimeSpan.Zero;
|
||||
}
|
||||
|
||||
string downloadClientName = null;
|
||||
var indexer = _indexerFactory.Find(pendingRelease.Release.IndexerId);
|
||||
|
||||
if (indexer is { DownloadClientId: > 0 })
|
||||
{
|
||||
var downloadClient = _downloadClientFactory.Find(indexer.DownloadClientId);
|
||||
|
||||
downloadClientName = downloadClient?.Name;
|
||||
}
|
||||
|
||||
var queue = new Queue.Queue
|
||||
{
|
||||
Id = GetQueueId(pendingRelease, book),
|
||||
@@ -204,7 +227,8 @@ namespace NzbDrone.Core.Download.Pending
|
||||
EstimatedCompletionTime = ect,
|
||||
Status = pendingRelease.Reason.ToString(),
|
||||
Protocol = pendingRelease.RemoteBook.Release.DownloadProtocol,
|
||||
Indexer = pendingRelease.RemoteBook.Release.Indexer
|
||||
Indexer = pendingRelease.RemoteBook.Release.Indexer,
|
||||
DownloadClient = downloadClientName
|
||||
};
|
||||
|
||||
queued.Add(queue);
|
||||
|
||||
@@ -230,13 +230,13 @@ namespace NzbDrone.Core.History
|
||||
DownloadId = downloadId
|
||||
};
|
||||
|
||||
//Won't have a value since we publish this event before saving to DB.
|
||||
//history.Data.Add("FileId", message.ImportedEpisode.Id.ToString());
|
||||
history.Data.Add("FileId", message.ImportedBook.Id.ToString());
|
||||
history.Data.Add("DroppedPath", message.BookInfo.Path);
|
||||
history.Data.Add("ImportedPath", message.ImportedBook.Path);
|
||||
history.Data.Add("DownloadClient", message.DownloadClientInfo?.Type);
|
||||
history.Data.Add("DownloadClientName", message.DownloadClientInfo?.Name);
|
||||
history.Data.Add("ReleaseGroup", message.BookInfo.ReleaseGroup);
|
||||
history.Data.Add("Size", message.BookInfo.Size.ToString());
|
||||
|
||||
_historyRepository.Insert(history);
|
||||
}
|
||||
@@ -259,6 +259,7 @@ namespace NzbDrone.Core.History
|
||||
history.Data.Add("DownloadClient", message.DownloadClient);
|
||||
history.Data.Add("DownloadClientName", message.TrackedDownload?.DownloadItem.DownloadClientInfo.Name);
|
||||
history.Data.Add("Message", message.Message);
|
||||
history.Data.Add("Size", message.TrackedDownload?.DownloadItem.TotalSize.ToString());
|
||||
|
||||
_historyRepository.Insert(history);
|
||||
}
|
||||
@@ -311,6 +312,7 @@ namespace NzbDrone.Core.History
|
||||
history.Data.Add("SourcePath", sourcePath);
|
||||
history.Data.Add("Path", path);
|
||||
history.Data.Add("ReleaseGroup", message.BookFile.ReleaseGroup);
|
||||
history.Data.Add("Size", message.BookFile.Size.ToString());
|
||||
|
||||
_historyRepository.Insert(history);
|
||||
}
|
||||
@@ -362,8 +364,9 @@ namespace NzbDrone.Core.History
|
||||
};
|
||||
|
||||
history.Data.Add("DownloadClient", message.DownloadClientInfo.Name);
|
||||
history.Data.Add("ReleaseGroup", message.TrackedDownload?.RemoteBook?.ParsedBookInfo?.ReleaseGroup);
|
||||
history.Data.Add("Message", message.Message);
|
||||
history.Data.Add("ReleaseGroup", message.TrackedDownload?.RemoteBook?.ParsedBookInfo?.ReleaseGroup);
|
||||
history.Data.Add("Size", message.TrackedDownload?.DownloadItem.TotalSize.ToString());
|
||||
|
||||
historyToAdd.Add(history);
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@ namespace NzbDrone.Core.Indexers.FileList
|
||||
|
||||
public IList<ReleaseInfo> ParseResponse(IndexerResponse indexerResponse)
|
||||
{
|
||||
var torrentInfos = new List<ReleaseInfo>();
|
||||
|
||||
if (indexerResponse.HttpResponse.StatusCode != HttpStatusCode.OK)
|
||||
{
|
||||
throw new IndexerException(indexerResponse,
|
||||
@@ -27,6 +25,13 @@ namespace NzbDrone.Core.Indexers.FileList
|
||||
indexerResponse.HttpResponse.StatusCode);
|
||||
}
|
||||
|
||||
if (!indexerResponse.HttpResponse.Headers.ContentType.Contains(HttpAccept.Json.Value))
|
||||
{
|
||||
throw new IndexerException(indexerResponse, "Unexpected response header '{0}' from indexer request, expected '{1}'", indexerResponse.HttpResponse.Headers.ContentType, HttpAccept.Json.Value);
|
||||
}
|
||||
|
||||
var torrentInfos = new List<ReleaseInfo>();
|
||||
|
||||
var queryResults = JsonConvert.DeserializeObject<List<FileListTorrent>>(indexerResponse.Content);
|
||||
|
||||
foreach (var result in queryResults)
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
"DelayProfiles": "ملفات تعريف التأخير",
|
||||
"DelayProfile": "ملف التأخير",
|
||||
"Dates": "تواريخ",
|
||||
"DBMigration": "ترحيل DB",
|
||||
"DatabaseMigration": "ترحيل DB",
|
||||
"CutoffUnmet": "قطع غير ملباة",
|
||||
"CutoffHelpText": "بمجرد الوصول إلى هذه الجودة ، لن يقوم Radarr بتنزيل الأفلام",
|
||||
"CreateGroup": "إنشاء مجموعة",
|
||||
@@ -630,5 +630,6 @@
|
||||
"ExtraFileExtensionsHelpText": "قائمة مفصولة بفواصل بالملفات الإضافية المراد استيرادها (سيتم استيراد .nfo كـ .nfo-Orig)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "أمثلة: \".sub أو .nfo\" أو \"sub، nfo\"",
|
||||
"AutoRedownloadFailed": "التحميل فشل",
|
||||
"SourceTitle": "عنوان المصدر"
|
||||
"SourceTitle": "عنوان المصدر",
|
||||
"RemoveQueueItemConfirmation": "هل تريد بالتأكيد إزالة {0} عنصر {1} من قائمة الانتظار؟"
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
"CreateGroup": "Създай група",
|
||||
"CutoffHelpText": "След достигане на това качество Radarr вече няма да изтегля филми",
|
||||
"CutoffUnmet": "Прекъсване Неудовлетворено",
|
||||
"DBMigration": "DB миграция",
|
||||
"DatabaseMigration": "DB миграция",
|
||||
"Dates": "Дати",
|
||||
"DelayProfile": "Профил за забавяне",
|
||||
"DelayProfiles": "Профили за забавяне",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"TestAllClients": "Prova tots els clients",
|
||||
"TestAllIndexers": "Prova tots els indexadors",
|
||||
"TestAllLists": "Prova totes les llistes",
|
||||
"TorrentDelayHelpText": "Retard en minuts per esperar abans de capturar un torrent",
|
||||
"TorrentDelayHelpText": "Retard en minuts per a esperar abans de capturar un torrent",
|
||||
"Torrents": "Torrents",
|
||||
"UILanguage": "Idioma de la interfície",
|
||||
"UseHardlinksInsteadOfCopy": "Utilitzeu enllaços durs en lloc de copiar",
|
||||
@@ -42,7 +42,7 @@
|
||||
"Exception": "Excepció",
|
||||
"Folder": "Carpeta",
|
||||
"Host": "Amfitrió",
|
||||
"Importing": "s'està important",
|
||||
"Importing": "S'està important",
|
||||
"Missing": "Absents",
|
||||
"MoreInfo": "Més informació",
|
||||
"NoLimitForAnyRuntime": "Sense límit de temps d'execució",
|
||||
@@ -107,7 +107,7 @@
|
||||
"RestoreBackup": "Restaura còpia de seguretat",
|
||||
"Result": "Resultat",
|
||||
"Retention": "Retenció",
|
||||
"RetentionHelpText": "Només Usenet: establiu-lo a zero per establir una retenció il·limitada",
|
||||
"RetentionHelpText": "Només Usenet: establiu-lo a zero per a establir una retenció il·limitada",
|
||||
"SearchFiltered": "Cerca filtrada",
|
||||
"Source": "Font",
|
||||
"SourcePath": "Camí de la font",
|
||||
@@ -128,7 +128,7 @@
|
||||
"BindAddress": "Adreça d'enllaç",
|
||||
"CertificateValidation": "Validació del certificat",
|
||||
"ClientPriority": "Prioritat del client",
|
||||
"DBMigration": "Migració de BD",
|
||||
"DatabaseMigration": "Migració de BD",
|
||||
"EnableColorImpairedMode": "Activa el mode amb alteracions del color",
|
||||
"MinimumAge": "Edat Mínima",
|
||||
"EnableCompletedDownloadHandlingHelpText": "Importa automàticament les descàrregues completades des del client de descàrregues",
|
||||
@@ -140,7 +140,7 @@
|
||||
"SettingsRemotePathMappingRemotePath": "Camí remot",
|
||||
"CertificateValidationHelpText": "Canvieu la validació estricta de la certificació HTTPS. No canvieu tret que entengueu els riscos.",
|
||||
"ChangeHasNotBeenSavedYet": "El canvi encara no s'ha desat",
|
||||
"ClickToChangeQuality": "Feu clic per canviar la qualitat",
|
||||
"ClickToChangeQuality": "Feu clic per a canviar la qualitat",
|
||||
"CloneIndexer": "Clona l'indexador",
|
||||
"CloneProfile": "Clona el perfil",
|
||||
"Columns": "Columnes",
|
||||
@@ -170,9 +170,9 @@
|
||||
"Edit": "Edita",
|
||||
"Edition": "Edició",
|
||||
"Enable": "Activa",
|
||||
"EnableAutomaticAdd": "Activa l'Afegit automàtic",
|
||||
"EnableAutomaticAdd": "Activa la captura automàtica",
|
||||
"EnableAutomaticSearch": "Activa la cerca automàtica",
|
||||
"EnableColorImpairedModeHelpText": "Estil alterat per permetre als usuaris amb problemes de color distingir millor la informació codificada per colors",
|
||||
"EnableColorImpairedModeHelpText": "Estil alterat per a permetre als usuaris amb problemes de color distingir millor la informació codificada per colors",
|
||||
"EnableHelpText": "Activa la creació de fitxers de metadades per a aquest tipus de metadades",
|
||||
"EnableInteractiveSearch": "Activa la cerca interactiva",
|
||||
"EnableSSL": "Activa SSL",
|
||||
@@ -190,7 +190,7 @@
|
||||
"GoToInterp": "Vés a {0}",
|
||||
"Grab": "Captura",
|
||||
"GrabID": "Captura ID",
|
||||
"ICalHttpUrlHelpText": "Copieu aquest URL als vostres clients o feu clic per subscriure's si el vostre navegador és compatible amb webcal",
|
||||
"ICalHttpUrlHelpText": "Copieu aquest URL als vostres clients o feu clic per a subscriure's si el vostre navegador és compatible amb webcal",
|
||||
"IconForCutoffUnmet": "Icona per a tall no assolit",
|
||||
"IllRestartLater": "Reinicia més tard",
|
||||
"ImportedTo": "Importat a",
|
||||
@@ -224,7 +224,7 @@
|
||||
"Metadata": "Metadada",
|
||||
"MetadataSettings": "Configuració de metadades",
|
||||
"MIA": "MIA",
|
||||
"MinimumAgeHelpText": "Només Usenet: edat mínima en minuts dels NZB abans de ser capturats. Utilitzeu-ho per donar temps a les noves versions per propagar-se al vostre proveïdor d'usenet.",
|
||||
"MinimumAgeHelpText": "Només Usenet: edat mínima en minuts dels NZB abans de ser capturats. Utilitzeu-ho per a donar temps a les noves versions per propagar-se al vostre proveïdor d'usenet.",
|
||||
"MinimumFreeSpace": "Espai lliure mínim",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Eviteu la importació si quedara menys d'aquesta quantitat d'espai disponible en disc",
|
||||
"Monitor": "Monitora",
|
||||
@@ -325,7 +325,7 @@
|
||||
"DownloadClientCheckNoneAvailableMessage": "No hi ha cap client de baixada disponible",
|
||||
"DownloadClientStatusCheckAllClientMessage": "Tots els clients de descàrrega no estan disponibles a causa d'errors",
|
||||
"DownloadClientStatusCheckSingleClientMessage": "Baixa els clients no disponibles a causa d'errors: {0}",
|
||||
"Duration": "durada",
|
||||
"Duration": "Durada",
|
||||
"FileWasDeletedByViaUI": "El fitxer s'ha suprimit mitjançant la interfície d'usuari",
|
||||
"GeneralSettingsSummary": "Port, SSL, nom d'usuari/contrasenya, servidor intermediari, analítiques i actualitzacions",
|
||||
"GrabRelease": "Captura novetat",
|
||||
@@ -358,7 +358,7 @@
|
||||
"UpgradeAllowedHelpText": "Si les qualitats estan desactivades no s'actualitzaran",
|
||||
"WeekColumnHeader": "Capçalera de la columna de la setmana",
|
||||
"AddList": "Afegeix una llista",
|
||||
"AppDataLocationHealthCheckMessage": "No es podrà actualitzar per evitar que s'eliminin AppData a l'actualització",
|
||||
"AppDataLocationHealthCheckMessage": "No es podrà actualitzar per a evitar que s'eliminin AppData a l'actualització",
|
||||
"ChangeFileDate": "Canvia la data del fitxer",
|
||||
"Dates": "Dates",
|
||||
"Delete": "Suprimeix",
|
||||
@@ -550,7 +550,7 @@
|
||||
"UpdateSelected": "Actualització seleccionada",
|
||||
"Database": "Base de dades",
|
||||
"DeleteQualityProfileMessageText": "Esteu segur que voleu suprimir el perfil de qualitat '{name}'?",
|
||||
"DeleteReleaseProfile": "Suprimeix el perfil de retard",
|
||||
"DeleteReleaseProfile": "Suprimeix el perfil de llançament",
|
||||
"DeleteReleaseProfileMessageText": "Esteu segur que voleu suprimir aquest perfil de retard?",
|
||||
"DeleteRootFolderMessageText": "Esteu segur que voleu suprimir l'indexador '{0}'?",
|
||||
"DeleteSelectedBookFiles": "Suprimeix els fitxers de pel·lícules seleccionats",
|
||||
@@ -577,7 +577,7 @@
|
||||
"BookIsDownloadingInterp": "La pel·lícula s'està baixant - {0}% {1}",
|
||||
"Label": "Etiqueta",
|
||||
"ChooseImportMethod": "Trieu el mode d'importació",
|
||||
"ClickToChangeReleaseGroup": "Feu clic per canviar el grup de llançaments",
|
||||
"ClickToChangeReleaseGroup": "Feu clic per a canviar el grup de llançaments",
|
||||
"HardlinkCopyFiles": "Enllaç dur/Copia fitxers",
|
||||
"MoveFiles": "Mou arxius",
|
||||
"OnApplicationUpdate": "A l'actualitzar de l'aplicació",
|
||||
@@ -588,7 +588,7 @@
|
||||
"CustomFormatScore": "Puntuació de format personalitzat",
|
||||
"EnableRssHelpText": "S'utilitzarà quan Radarr cerqui publicacions periòdicament mitjançant RSS Sync",
|
||||
"ImportListMultipleMissingRoots": "Falten diverses carpetes arrel per a les llistes d'importació: {0}",
|
||||
"IndexerDownloadClientHelpText": "Especifiqueu quin client de baixada s'utilitza per capturar des d'aquest indexador",
|
||||
"IndexerDownloadClientHelpText": "Especifiqueu quin client de baixada s'utilitza per a capturar des d'aquest indexador",
|
||||
"ThemeHelpText": "Canvieu el tema de la interfície d'usuari de l'aplicació, el tema \"Automàtic\" utilitzarà el tema del vostre sistema operatiu per configurar el mode clar o fosc. Inspirat en Theme.Park",
|
||||
"UnableToLoadCustomFormats": "No es poden carregar formats personalitzats",
|
||||
"DeleteCustomFormat": "Suprimeix el format personalitzat",
|
||||
@@ -614,13 +614,13 @@
|
||||
"ImportListMissingRoot": "Falta la carpeta arrel per a les llistes d'importació: {0}",
|
||||
"IndexerTagsHelpText": "Utilitzeu aquest indexador només per a pel·lícules amb almenys una etiqueta coincident. Deixeu-ho en blanc per utilitzar-ho amb totes les pel·lícules.",
|
||||
"ColonReplacement": "Substitució de dos punts",
|
||||
"HiddenClickToShow": "Amagat, feu clic per mostrar",
|
||||
"HiddenClickToShow": "Amagat, feu clic per a mostrar",
|
||||
"HideAdvanced": "Amaga avançat",
|
||||
"ReplaceWithDash": "Substitueix per guió",
|
||||
"ReplaceWithSpaceDash": "Substitueix per espai i guió",
|
||||
"ReplaceWithSpaceDashSpace": "Substitueix per espai, guió i espai",
|
||||
"ShowAdvanced": "Mostra característiques avançades",
|
||||
"ShownClickToHide": "Es mostra, feu clic per amagar",
|
||||
"ShownClickToHide": "Es mostra, feu clic per a amagar",
|
||||
"AutomaticAdd": "Afegeix automàticament",
|
||||
"ApplyTagsHelpTextHowToApplyIndexers": "Com aplicar etiquetes als indexadors seleccionats",
|
||||
"DeleteCondition": "Suprimeix la condició",
|
||||
@@ -657,7 +657,7 @@
|
||||
"AutomaticUpdatesDisabledDocker": "Les actualitzacions automàtiques no s'admeten directament quan s'utilitza el mecanisme d'actualització de Docker. Haureu d'actualitzar la imatge del contenidor fora de {appName} o utilitzar un script",
|
||||
"Activity": "Activitat",
|
||||
"AddNew": "Afegeix nou",
|
||||
"ApplyTagsHelpTextReplace": "Substitució: substituïu les etiquetes per les etiquetes introduïdes (no introduïu cap etiqueta per esborrar totes les etiquetes)",
|
||||
"ApplyTagsHelpTextReplace": "Substitució: substituïu les etiquetes per les etiquetes introduïdes (no introduïu cap etiqueta per a esborrar totes les etiquetes)",
|
||||
"ApplyTagsHelpTextRemove": "Eliminar: elimina les etiquetes introduïdes",
|
||||
"BlocklistReleases": "Llista de llançaments bloquejats",
|
||||
"AutoAdd": "Afegeix automàticament",
|
||||
@@ -675,9 +675,21 @@
|
||||
"ReleaseProfiles": "Perfils de llançament",
|
||||
"ConnectionLost": "Connexió perduda",
|
||||
"ConnectionLostReconnect": "{appName} intentarà connectar-se automàticament, o podeu fer clic a recarregar.",
|
||||
"ConnectionLostToBackend": "{appName} ha perdut la connexió amb el backend i s'haurà de tornar a carregar per restaurar la funcionalitat.",
|
||||
"ConnectionLostToBackend": "{appName} ha perdut la connexió amb el backend i s'haurà de tornar a carregar per a restaurar la funcionalitat.",
|
||||
"DeleteSelectedImportListsMessageText": "Esteu segur que voleu suprimir {count} llista(es) d'importació seleccionada(es)?",
|
||||
"DeleteSelectedDownloadClients": "Suprimeix el(s) client(s) de baixada",
|
||||
"DeleteSelectedDownloadClientsMessageText": "Esteu segur que voleu suprimir {count} client(s) de baixada seleccionat(s)?",
|
||||
"ChownGroup": "Canvia el grup propietari"
|
||||
"ChownGroup": "Canvia el grup propietari",
|
||||
"DeleteRemotePathMapping": "Editeu el mapa de camins remots",
|
||||
"Events": "Esdeveniments",
|
||||
"Location": "Ubicació",
|
||||
"Negated": "Negat",
|
||||
"No": "No",
|
||||
"System": "Sistema",
|
||||
"Required": "Obligatori",
|
||||
"Yes": "Si",
|
||||
"Ui": "Interfície",
|
||||
"Other": "Altres",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "Tornar a baixar baixades fallades des de la cerca interactiva",
|
||||
"AutoRedownloadFailed": "Tornar a baixar les baixades fallades"
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
"CreateGroup": "Vytvořit skupinu",
|
||||
"CutoffHelpText": "Jakmile je této kvality dosaženo, Radarr již nebude stahovat filmy",
|
||||
"CutoffUnmet": "Vynechat nevyhovující",
|
||||
"DBMigration": "Migrace databáze",
|
||||
"DatabaseMigration": "Migrace databáze",
|
||||
"Dates": "Termíny",
|
||||
"DelayProfile": "Profil zpoždění",
|
||||
"DelayProfiles": "Profily zpoždění",
|
||||
@@ -683,5 +683,10 @@
|
||||
"ListsSettingsSummary": "Seznam k importu",
|
||||
"ExtraFileExtensionsHelpText": "Seznam extra souborů k importu oddělených čárkami (.nfo bude importován jako .nfo-orig)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Příklady: „.sub, .nfo“ nebo „sub, nfo“",
|
||||
"ImportLists": "Seznam k importu"
|
||||
"ImportLists": "Seznam k importu",
|
||||
"RemoveQueueItemConfirmation": "Opravdu chcete odebrat {0} položku {1} z fronty?",
|
||||
"SourceTitle": "Název zdroje",
|
||||
"AutoRedownloadFailed": "Opětovné stažení se nezdařilo",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "Opětovné stažení z interaktivního vyhledávání selhalo",
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Automaticky vyhledat a pokusit se o stažení jiného vydání, pokud bylo neúspěšné vydání zachyceno z interaktivního vyhledávání"
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"CreateGroup": "Opret gruppe",
|
||||
"CutoffHelpText": "Når denne kvalitet er nået, downloader Radarr ikke længere film",
|
||||
"CutoffUnmet": "Afskåret ude",
|
||||
"DBMigration": "DB Migration",
|
||||
"DatabaseMigration": "DB Migration",
|
||||
"DelayProfile": "Udskyd Profiler",
|
||||
"DelayProfiles": "Udskyd Profiler",
|
||||
"DelayingDownloadUntilInterp": "Forsinker download indtil {0} kl. {1}",
|
||||
@@ -637,5 +637,6 @@
|
||||
"ExtraFileExtensionsHelpText": "Kommasepareret liste over ekstra filer, der skal importeres (.nfo importeres som .nfo-orig)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Eksempler: '.sub, .nfo' eller 'sub, nfo'",
|
||||
"AutoRedownloadFailed": "Download fejlede",
|
||||
"SourceTitle": "Kildetitel"
|
||||
"SourceTitle": "Kildetitel",
|
||||
"RemoveQueueItemConfirmation": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?"
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
"CreateGroup": "Gruppe erstellen",
|
||||
"CutoffHelpText": "Sobald diese Qualität erreicht wird, werden keine neuen Releases erfasst",
|
||||
"CutoffUnmet": "› Schwelle nicht erreicht",
|
||||
"DBMigration": "DB Migration",
|
||||
"DatabaseMigration": "DB Migration",
|
||||
"Dates": "Termine",
|
||||
"DelayProfile": "Verzögerungsprofil",
|
||||
"DelayProfiles": "Verzögerungsprofile",
|
||||
@@ -507,7 +507,7 @@
|
||||
"ThisCannotBeCancelled": "Nach dem Start kann dies nicht mehr abgebrochen werden ohne alle Indexer zu deaktivieren.",
|
||||
"UnselectAll": "Alle abwählen",
|
||||
"UpdateSelected": "Auswahl aktualisieren",
|
||||
"Wanted": "Gesucht",
|
||||
"Wanted": "› Gesucht",
|
||||
"CreateEmptyAuthorFolders": "Leere Filmordner erstellen",
|
||||
"All": "Alle",
|
||||
"Country": "Land",
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"CreateEmptyAuthorFoldersHelpText": "Δημιουργήστε φακέλους ταινιών που λείπουν κατά τη σάρωση δίσκου",
|
||||
"CreateGroup": "Δημιουργησε ΟΜΑΔΑ",
|
||||
"CutoffHelpText": "Μόλις επιτευχθεί αυτή η ποιότητα, το Radarr δεν θα κατεβάζει πλέον ταινίες",
|
||||
"DBMigration": "Μετεγκατάσταση DB",
|
||||
"DatabaseMigration": "Μετεγκατάσταση DB",
|
||||
"Dates": "Ημερομηνίες",
|
||||
"DelayProfile": "Προφίλ χρονοκαθυστέρησης",
|
||||
"DelayProfiles": "Προφίλ χρονοκαθυστέρησης",
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"AnyEditionOkHelpText": "Readarr will automatically switch to the edition best matching downloaded files",
|
||||
"ApiKeyHelpTextWarning": "Requires restart to take effect",
|
||||
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
|
||||
"AppDataDirectory": "AppData directory",
|
||||
"AppDataDirectory": "AppData Directory",
|
||||
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
|
||||
"AppUpdated": "{appName} Updated",
|
||||
"AppUpdatedVersion": "{appName} has been updated to version `{version}`, in order to get the latest changes you'll need to reload {appName}",
|
||||
@@ -80,6 +80,12 @@
|
||||
"BindAddressHelpText": "Valid IP address, localhost or '*' for all interfaces",
|
||||
"BindAddressHelpTextWarning": "Requires restart to take effect",
|
||||
"Blocklist": "Blocklist",
|
||||
"BlocklistAndSearch": "Blocklist and Search",
|
||||
"BlocklistAndSearchHint": "Start a search for a replacement after blocklisting",
|
||||
"BlocklistAndSearchMultipleHint": "Start searches for replacements after blocklisting",
|
||||
"BlocklistMultipleOnlyHint": "Blocklist without searching for replacements",
|
||||
"BlocklistOnly": "Blocklist Only",
|
||||
"BlocklistOnlyHint": "Blocklist without searching for a replacement",
|
||||
"BlocklistRelease": "Blocklist Release",
|
||||
"BlocklistReleaseHelpText": "Prevents Readarr from automatically grabbing these files again",
|
||||
"BlocklistReleases": "Blocklist Releases",
|
||||
@@ -126,6 +132,9 @@
|
||||
"CatalogNumber": "Catalog Number",
|
||||
"CertificateValidation": "Certificate Validation",
|
||||
"CertificateValidationHelpText": "Change how strict HTTPS certification validation is. Do not change unless you understand the risks.",
|
||||
"ChangeCategory": "Change Category",
|
||||
"ChangeCategoryHint": "Changes download to the 'Post-Import Category' from Download Client",
|
||||
"ChangeCategoryMultipleHint": "Changes downloads to the 'Post-Import Category' from Download Client",
|
||||
"ChangeFileDate": "Change File Date",
|
||||
"ChangeHasNotBeenSavedYet": "Change has not been saved yet",
|
||||
"ChmodFolder": "chmod Folder",
|
||||
@@ -151,7 +160,7 @@
|
||||
"Columns": "Columns",
|
||||
"CompletedDownloadHandling": "Completed Download Handling",
|
||||
"Component": "Component",
|
||||
"Conditions": "'Conditions'",
|
||||
"Conditions": "Conditions",
|
||||
"Connect": "Connect",
|
||||
"ConnectSettings": "Connect Settings",
|
||||
"ConnectSettingsSummary": "Notifications, connections to media servers/players and custom scripts",
|
||||
@@ -181,10 +190,11 @@
|
||||
"CustomFormatScore": "Custom Format Score",
|
||||
"CustomFormatSettings": "Custom Format Settings",
|
||||
"CustomFormats": "Custom Formats",
|
||||
"CustomFormatsSpecificationRegularExpression": "Regular Expression",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "Custom Format RegEx is Case Insensitive",
|
||||
"CutoffFormatScoreHelpText": "Once this custom format score is reached Readarr will no longer grab book releases",
|
||||
"CutoffHelpText": "Once this quality is reached Readarr will no longer download books",
|
||||
"CutoffUnmet": "Cutoff Unmet",
|
||||
"DBMigration": "DB Migration",
|
||||
"DashOrSpaceDashDependingOnName": "Dash or Space Dash depending on name",
|
||||
"DataAllBooks": "Monitor all books",
|
||||
"DataExistingBooks": "Monitor books that have files or have not released yet",
|
||||
@@ -200,6 +210,7 @@
|
||||
"DataNewNone": "Don't monitor any new books",
|
||||
"DataNone": "No books will be monitored",
|
||||
"Database": "Database",
|
||||
"DatabaseMigration": "Database Migration",
|
||||
"Dates": "Dates",
|
||||
"DefaultMetadataProfileIdHelpText": "Default Metadata Profile for authors detected in this folder",
|
||||
"DefaultMonitorOptionHelpText": "Which books should be monitored on initial add for authors detected in this folder",
|
||||
@@ -264,6 +275,8 @@
|
||||
"DiscCount": "Disc Count",
|
||||
"DiscNumber": "Disc Number",
|
||||
"DiskSpace": "Disk Space",
|
||||
"DoNotBlocklist": "Do not Blocklist",
|
||||
"DoNotBlocklistHint": "Remove without blocklisting",
|
||||
"Docker": "Docker",
|
||||
"DownloadClient": "Download Client",
|
||||
"DownloadClientCheckDownloadingToRoot": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.",
|
||||
@@ -388,6 +401,10 @@
|
||||
"IconTooltip": "Scheduled",
|
||||
"IfYouDontAddAnImportListExclusionAndTheAuthorHasAMetadataProfileOtherThanNoneThenThisBookMayBeReaddedDuringTheNextAuthorRefresh": "If you don't add an import list exclusion and the author has a metadata profile other than 'None' then this book may be re-added during the next author refresh.",
|
||||
"IgnoreDeletedBooks": "Ignore Deleted Books",
|
||||
"IgnoreDownload": "Ignore Download",
|
||||
"IgnoreDownloadHint": "Stops {appName} from processing this download further",
|
||||
"IgnoreDownloads": "Ignore Downloads",
|
||||
"IgnoreDownloadsHint": "Stops {appName} from processing these downloads further",
|
||||
"IgnoredAddresses": "Ignored Addresses",
|
||||
"IgnoredHelpText": "The release will be rejected if it contains one or more of terms (case insensitive)",
|
||||
"IgnoredMetaHelpText": "Books will be ignored if they contains one or more of terms (case insensitive)",
|
||||
@@ -736,9 +753,16 @@
|
||||
"RemoveFailedDownloadsHelpText": "Remove failed downloads from download client history",
|
||||
"RemoveFilter": "Remove filter",
|
||||
"RemoveFromBlocklist": "Remove from blocklist",
|
||||
"RemoveFromDownloadClient": "Remove From Download Client",
|
||||
"RemoveFromDownloadClient": "Remove from Download Client",
|
||||
"RemoveFromDownloadClientHint": "Removes download and file(s) from download client",
|
||||
"RemoveFromQueue": "Remove from queue",
|
||||
"RemoveHelpTextWarning": "Removing will remove the download and the file(s) from the download client.",
|
||||
"RemoveMultipleFromDownloadClientHint": "Removes downloads and files from download client",
|
||||
"RemoveQueueItem": "Remove - {sourceTitle}",
|
||||
"RemoveQueueItemConfirmation": "Are you sure you want to remove '{sourceTitle}' from the queue?",
|
||||
"RemoveQueueItemRemovalMethod": "Removal Method",
|
||||
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Remove from Download Client' will remove the download and the file(s) from the download client.",
|
||||
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remove from Download Client' will remove the downloads and the files from the download client.",
|
||||
"RemoveSelected": "Remove Selected",
|
||||
"RemoveSelectedItem": "Remove Selected Item",
|
||||
"RemoveSelectedItemBlocklistMessageText": "Are you sure you want to remove the selected items from the blocklist?",
|
||||
@@ -883,7 +907,7 @@
|
||||
"StandardBookFormat": "Standard Book Format",
|
||||
"StartTypingOrSelectAPathBelow": "Start typing or select a path below",
|
||||
"Started": "Started",
|
||||
"StartupDirectory": "Startup directory",
|
||||
"StartupDirectory": "Startup Directory",
|
||||
"Status": "Status",
|
||||
"StatusEndedContinuing": "Continuing",
|
||||
"StatusEndedDeceased": "Deceased",
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"CreateGroup": "Crear grupo",
|
||||
"CutoffHelpText": "Una vez que se alcanze esta calidad, Radarr no descargará películas",
|
||||
"CutoffUnmet": "Límite no alcanzado",
|
||||
"DBMigration": "Migración de DB",
|
||||
"DatabaseMigration": "Migración de la base de datos",
|
||||
"Dates": "Fechas",
|
||||
"DelayProfile": "Perfil de retardo",
|
||||
"DelayProfiles": "Perfiles de retardo",
|
||||
@@ -74,35 +74,35 @@
|
||||
"DeleteBackup": "Eliminar copia de seguridad",
|
||||
"DeleteBackupMessageText": "Seguro que quieres eliminar la copia de seguridad '{name}'?",
|
||||
"DeleteDelayProfile": "Eliminar Perfil de Retardo",
|
||||
"DeleteDelayProfileMessageText": "Está seguro que quieres borrar este perfil de retraso?",
|
||||
"DeleteDownloadClient": "Borrar Gestor de Descargas",
|
||||
"DeleteDelayProfileMessageText": "¿Está seguro de que desea borrar este perfil de retraso?",
|
||||
"DeleteDownloadClient": "Borrar cliente de descarga",
|
||||
"DeleteDownloadClientMessageText": "Seguro que quieres eliminar el gestor de descargas '{name}'?",
|
||||
"DeleteEmptyFolders": "Borrar carpetas vacías",
|
||||
"DeleteEmptyFoldersHelpText": "Borrar carpetas vacías durante la exploración del disco y cuando se eliminen archivos",
|
||||
"DeleteImportListExclusion": "Borrar exclusión de lista de importación",
|
||||
"DeleteImportListExclusionMessageText": "Estás seguro de que quieres borrar esta exclusión de lista de importación?",
|
||||
"DeleteImportListExclusion": "Eliminar exclusión de listas de importación",
|
||||
"DeleteImportListExclusionMessageText": "¿Está seguro de que desea eliminar esta exclusión de la lista de importación?",
|
||||
"DeleteImportListMessageText": "Seguro que quieres eliminar la lista '{name}'?",
|
||||
"DeleteIndexer": "Borrar Indexer",
|
||||
"DeleteIndexerMessageText": "Seguro que quieres eliminar el indexer '{name}'?",
|
||||
"DeleteMetadataProfileMessageText": "¿Seguro que quieres eliminar el perfil de metadatos '{name}'?",
|
||||
"DeleteNotification": "Borrar Notificación",
|
||||
"DeleteNotification": "Borrar Notificacion",
|
||||
"DeleteNotificationMessageText": "¿Seguro que quieres eliminar la notificación '{name}'?",
|
||||
"DeleteQualityProfile": "Borrar Perfil de Calidad",
|
||||
"DeleteQualityProfile": "Borrar perfil de calidad",
|
||||
"DeleteQualityProfileMessageText": "¿Seguro que quieres eliminar el perfil de calidad {name}?",
|
||||
"DeleteReleaseProfile": "Borrar Perfil de Retraso",
|
||||
"DeleteReleaseProfile": "Borrar perfil de estreno",
|
||||
"DeleteReleaseProfileMessageText": "Está seguro que quieres borrar este perfil de retraso?",
|
||||
"DeleteSelectedBookFiles": "Borrar Archivos Seleccionados",
|
||||
"DeleteSelectedBookFilesMessageText": "Seguro que quieres eliminar el archivo de la película seleccionada?",
|
||||
"DeleteTag": "Borrar Etiqueta",
|
||||
"DeleteTag": "Eliminar Etiqueta",
|
||||
"DeleteTagMessageText": "Seguro que quieres eliminar la etiqueta '{0}'?",
|
||||
"DestinationPath": "Ruta de Destino",
|
||||
"DestinationPath": "Ruta de destino",
|
||||
"DetailedProgressBar": "Barra de Progreso Detallada",
|
||||
"DetailedProgressBarHelpText": "Mostrar texto en la barra de progreso",
|
||||
"DetailedProgressBarHelpText": "Mostrar tecto en la barra de progreso",
|
||||
"DiskSpace": "Espacio en Disco",
|
||||
"Docker": "Docker",
|
||||
"DownloadClient": "Gestor de Descargas",
|
||||
"DownloadClientSettings": "Ajustes de Gestor de Descargas",
|
||||
"DownloadClients": "Gestores de Descargas",
|
||||
"DownloadClient": "Cliente de descarga",
|
||||
"DownloadClientSettings": "Opciones del cliente de descarga",
|
||||
"DownloadClients": "Clientes de descarga",
|
||||
"DownloadFailedCheckDownloadClientForMoreDetails": "Error de descarga: consulte el gestor de descargas para obtener más detalles",
|
||||
"DownloadFailedInterp": "Descarga fallida: {0}",
|
||||
"DownloadPropersAndRepacksHelpTexts1": "Decidir si automaticamente actualizar a Propers/Repacks",
|
||||
@@ -110,9 +110,9 @@
|
||||
"Edit": "Editar",
|
||||
"Edition": "Edición",
|
||||
"Enable": "Habilitar",
|
||||
"EnableAutomaticAdd": "Habilitar Añadido Automático",
|
||||
"EnableAutomaticAdd": "Habilitar añadido automático",
|
||||
"EnableAutomaticSearch": "Habilitar Búsqueda Automática",
|
||||
"EnableColorImpairedMode": "Activar Modo De Color Degradado",
|
||||
"EnableColorImpairedMode": "Habilitar Modo de dificultad con los colores",
|
||||
"EnableColorImpairedModeHelpText": "Estilo modificado para permitir que usuarios con problemas de color distingan mejor la información codificada por colores",
|
||||
"EnableCompletedDownloadHandlingHelpText": "Importar automáticamente las descargas completas del gestor de descargas",
|
||||
"EnableHelpText": "Habilitar la creación de un fichero de metadatos para este tipo de metadato",
|
||||
@@ -120,31 +120,31 @@
|
||||
"EnableRSS": "Habilitar RSS",
|
||||
"EnableSSL": "Habilitar SSL",
|
||||
"EnableSslHelpText": " Requiere reiniciar la aplicación como administrador para que surta efecto",
|
||||
"Ended": "Terminó",
|
||||
"ErrorLoadingContents": "Error al cargar los contenidos",
|
||||
"Ended": "Finalizado",
|
||||
"ErrorLoadingContents": "Error cargando contenidos",
|
||||
"ErrorLoadingPreviews": "Error al cargar las previsualizaciones",
|
||||
"Exception": "Excepción",
|
||||
"FailedDownloadHandling": "Manipulación de Descargas Fallidas",
|
||||
"FileDateHelpText": "Cambiar la fecha del archivo al importar/rescan",
|
||||
"FileManagement": "Administración de Archivos",
|
||||
"FileNames": "Nombres de Archivos",
|
||||
"Filename": "Nombre del archivo",
|
||||
"FileManagement": "Gestión de archivos",
|
||||
"FileNames": "Nombres de archivos",
|
||||
"Filename": "Nombre de archivo",
|
||||
"Files": "Archivos",
|
||||
"FirstDayOfWeek": "Primer Día de la Semana",
|
||||
"FirstDayOfWeek": "Primer día de la semana",
|
||||
"Fixed": "Arreglado",
|
||||
"Folder": "Carpeta",
|
||||
"Folders": "Carpetas",
|
||||
"ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Para más información individual de los gestores de descarga, haz clic en los botones de información.",
|
||||
"ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Para más información individual sobre los indexers, haz clic en los botones de información.",
|
||||
"ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Para más información individual sobre las listas de importación, haz clic en los botones de información.",
|
||||
"GeneralSettings": "Ajustes Generales",
|
||||
"GeneralSettings": "Opciones generales",
|
||||
"Global": "Global",
|
||||
"GoToInterp": "Ir a {0}",
|
||||
"Grab": "Capturar",
|
||||
"GrabID": "Capturar ID",
|
||||
"GrabRelease": "Capturar Estreno",
|
||||
"GrabRelease": "Capturar lanzamiento",
|
||||
"GrabReleaseMessageText": "Radarr no pudo determinar para qué película es este lanzamiento. Radarr no podrá importar este lanzamiento automáticamente. Quieres descargar {0}?",
|
||||
"GrabSelected": "Capturar Seleccionados",
|
||||
"GrabSelected": "Capturar seleccionado",
|
||||
"HasPendingChangesNoChanges": "Sin Cambios",
|
||||
"HasPendingChangesSaveChanges": "Guardar Cambios",
|
||||
"History": "Historial",
|
||||
@@ -201,7 +201,7 @@
|
||||
"MinimumFreeSpace": "Espacio Libre Mínimo",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Evitar importación si dejase menos de esta cantidad en disco disponible",
|
||||
"MinimumLimits": "Límites Mínimos",
|
||||
"Missing": "Falta",
|
||||
"Missing": "Faltantes",
|
||||
"Mode": "Modo",
|
||||
"Monitored": "Monitorizado",
|
||||
"MoreInfo": "Más Información",
|
||||
@@ -454,8 +454,8 @@
|
||||
"UnableToLoadBlocklist": "No se han podido cargar las bloqueadas",
|
||||
"Level": "Nivel",
|
||||
"ReleaseBranchCheckOfficialBranchMessage": "Las versión {0} no es una versión válida de Radarr, no recibirás actualizaciones",
|
||||
"Blocklist": "Bloqueadas",
|
||||
"BlocklistRelease": "Lista de lanzamientos bloqueados",
|
||||
"Blocklist": "Lista de bloqueos",
|
||||
"BlocklistRelease": "Lista de bloqueos de lanzamiento",
|
||||
"CreateEmptyAuthorFolders": "Crear carpetas de películas vacías",
|
||||
"SelectAll": "Seleccionar Todas",
|
||||
"SelectedCountBooksSelectedInterp": "{0} Película(s) Seleccionada(s)",
|
||||
@@ -497,7 +497,7 @@
|
||||
"Filters": "Filtros",
|
||||
"FileWasDeletedByViaUI": "El archivo se eliminó a través de la interfaz de usuario",
|
||||
"AllowFingerprinting": "Permitir impresión digital",
|
||||
"DownloadClientsSettingsSummary": "Gestores de descargas, manipulación de descargas y mapeados remotos",
|
||||
"DownloadClientsSettingsSummary": "Clientes de descarga, manejo de descarga y mapeo de rutas remotas",
|
||||
"OnHealthIssue": "En Problema de Salud",
|
||||
"DeleteBookFileMessageText": "¿Seguro que quieres eliminar {0}?",
|
||||
"HealthNoIssues": "No hay problemas con tu configuración",
|
||||
@@ -551,7 +551,7 @@
|
||||
"SearchFiltered": "Buscar Filtradas",
|
||||
"DownloadClientStatusCheckAllClientMessage": "Los gestores de descargas no están disponibles debido a errores",
|
||||
"FailedToLoadQueue": "No se pudo cargar la cola",
|
||||
"GeneralSettingsSummary": "Puerto, SSL, nombre de usuario/contraseña , proxy, analíticas y actualizaciones",
|
||||
"GeneralSettingsSummary": "Puerto, SSL, usuario/contraseña, proxy, analíticas y actualizaciones",
|
||||
"ProxyCheckResolveIpMessage": "No se pudo resolver la dirección IP del Host Proxy configurado {0}",
|
||||
"UISettingsSummary": "Calendario, fecha y opciones de color deteriorado",
|
||||
"Connect": "Conectar",
|
||||
@@ -585,7 +585,7 @@
|
||||
"ImportListExclusions": "Borrar exclusión de lista de importación",
|
||||
"ChooseImportMethod": "Elegir Modo de Importación",
|
||||
"ClickToChangeReleaseGroup": "Clic para cambiar el grupo de lanzamiento",
|
||||
"HardlinkCopyFiles": "Hardlink/Copia de Archivos",
|
||||
"HardlinkCopyFiles": "Enlace permanente/Copiar archivos",
|
||||
"MoveFiles": "Mover Archivos",
|
||||
"OnApplicationUpdate": "Al Actualizar La Aplicación",
|
||||
"OnApplicationUpdateHelpText": "Al Actualizar La Aplicación",
|
||||
@@ -610,7 +610,7 @@
|
||||
"CustomFormatSettings": "Ajustes de Formatos Propios",
|
||||
"CutoffFormatScoreHelpText": "Una vez alcanzada esta puntuación del formato propio Radarr dejará de descargar películas",
|
||||
"DeleteCustomFormatMessageText": "Seguro que quieres eliminar el indexer '{name}'?",
|
||||
"ExportCustomFormat": "Exportar Formato Personalizado",
|
||||
"ExportCustomFormat": "Exportar formato personalizado",
|
||||
"ResetTitles": "Restablecer títulos",
|
||||
"UpgradesAllowed": "Mejoras permitidas",
|
||||
"EnableRssHelpText": "Se utilizará cuando Radarr busque periódicamente publicaciones a través de RSS Sync",
|
||||
@@ -625,8 +625,8 @@
|
||||
"ReplaceWithDash": "Reemplazar con Dash",
|
||||
"ReplaceWithSpaceDash": "Reemplazar con Space Dash",
|
||||
"ReplaceWithSpaceDashSpace": "Reemplazar con Space Dash Space",
|
||||
"DeleteRemotePathMapping": "Editar Mapeo de Ruta Remota",
|
||||
"BlocklistReleases": "Lista de lanzamientos bloqueados",
|
||||
"DeleteRemotePathMapping": "Borrar mapeo de ruta remota",
|
||||
"BlocklistReleases": "Lista de bloqueos de lanzamientos",
|
||||
"DeleteConditionMessageText": "Seguro que quieres eliminar la etiqueta '{0}'?",
|
||||
"Negated": "Negado",
|
||||
"RemoveSelectedItem": "Eliminar el elemento seleccionado",
|
||||
@@ -652,12 +652,12 @@
|
||||
"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 Descargas",
|
||||
"DeleteSelectedDownloadClients": "Borrar gestor 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",
|
||||
"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": "Etiqueta existente",
|
||||
"ExistingTag": "Etiquetas existentes",
|
||||
"No": "No",
|
||||
"NoChange": "Sin Cambio",
|
||||
"RemovingTag": "Eliminando etiqueta",
|
||||
@@ -705,7 +705,7 @@
|
||||
"Large": "Grande",
|
||||
"Library": "Biblioteca",
|
||||
"SomeResultsAreHiddenByTheAppliedFilter": "Algunos resultados están ocultos por el filtro aplicado",
|
||||
"FreeSpace": "Espacio Libre",
|
||||
"FreeSpace": "Espacio libre",
|
||||
"LastDuration": "Duración",
|
||||
"LastExecution": "Última ejecución",
|
||||
"LastWriteTime": "Última Fecha de Escritura",
|
||||
@@ -747,7 +747,7 @@
|
||||
"AutomaticallySwitchEdition": "Cambiar edición automáticamente",
|
||||
"BookNaming": "Nombrado de libros",
|
||||
"Books": "Libro",
|
||||
"NoHistoryBlocklist": "Sin lista de bloqueo de historial",
|
||||
"NoHistoryBlocklist": "Sin historial de la lista de bloqueos",
|
||||
"WouldYouLikeToRestoreBackup": "Te gustaria restaurar la copia de seguridad '{name}'?",
|
||||
"IsShowingMonitoredUnmonitorSelected": "Monitorizar Seleccionados",
|
||||
"CloneCustomFormat": "Clonar formato personalizado",
|
||||
@@ -763,8 +763,8 @@
|
||||
"CompletedDownloadHandling": "Manipulación de descargas completas",
|
||||
"EnableProfile": "Habilitar perfil",
|
||||
"ListsSettingsSummary": "lista de importación",
|
||||
"ExtraFileExtensionsHelpText": "Separar con cons la lista de los archivos extra a importar (.nfo será impotado como .nfo-orig)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Ejemplos : '.sub, .nfo' o 'sub,nfo'",
|
||||
"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",
|
||||
"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",
|
||||
@@ -773,5 +773,24 @@
|
||||
"NoCutoffUnmetItems": "Sin objetos sin condiciones de corte incumplidas",
|
||||
"StatusEndedContinuing": "Continua",
|
||||
"ChownGroup": "Cambiar grupo propietario",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Si usar el diseño de contenido configurado de qBittorrent, el diseño original del torrent o siempre crear una subcarpeta (qBittorrent 4.3.2+)"
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Si usar el diseño de contenido configurado de qBittorrent, el diseño original del torrent o siempre crear una subcarpeta (qBittorrent 4.3.2+)",
|
||||
"CustomFormatsSpecificationRegularExpression": "Expresión regular",
|
||||
"ErrorLoadingContent": "Hubo un error cargando este contenido",
|
||||
"BlocklistAndSearch": "Lista de bloqueos y búsqueda",
|
||||
"BlocklistAndSearchMultipleHint": "Inicia búsquedas de sustitutos tras añadir a la lista de bloqueos",
|
||||
"ChangeCategory": "Cambiar categoría",
|
||||
"BlocklistOnlyHint": "Añadir a la lista de bloqueos sin buscar un sustituto",
|
||||
"ChangeCategoryMultipleHint": "Cambia las descargas a la 'categoría post-importación' desde el cliente de descarga",
|
||||
"ChangeCategoryHint": "Cambia la descarga a la 'categoría post-importación' desde el cliente de descarga",
|
||||
"BlocklistMultipleOnlyHint": "Añadir a la lista de bloqueos sin buscar sustitutos",
|
||||
"BlocklistOnly": "Solo añadir a la lista de bloqueos",
|
||||
"DoNotBlocklist": "No añadir a la lista de bloqueos",
|
||||
"DoNotBlocklistHint": "Eliminar sin añadir a la lista de bloqueos",
|
||||
"BlocklistAndSearchHint": "Inicia la búsqueda de un sustituto tras añadir a la lista de bloqueos",
|
||||
"DashOrSpaceDashDependingOnName": "Dash o Space Dash según el nombre",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "El formato personalizado RegEx no distingue mayúsculas de minúsculas",
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"CreateGroup": "Luo ryhmä",
|
||||
"CutoffHelpText": "Kun tämä laatu on saavutettu, Readarr ei enää lataa elokuvia",
|
||||
"CutoffUnmet": "Katkaisutasoa ei savutettu",
|
||||
"DBMigration": "Tietokannan siirto",
|
||||
"DatabaseMigration": "Tietokannan siirto",
|
||||
"Dates": "Päiväykset",
|
||||
"DelayProfile": "Viiveprofiili",
|
||||
"DelayProfiles": "Viiveprofiilit",
|
||||
@@ -109,17 +109,17 @@
|
||||
"Edit": "Muokkaa",
|
||||
"Edition": "Painos",
|
||||
"Enable": "Käytä",
|
||||
"EnableAutomaticAdd": "Automaattilisäys",
|
||||
"EnableAutomaticAdd": "Käytä automaattilisäystä",
|
||||
"EnableAutomaticSearch": "Käytä automaattihakua",
|
||||
"EnableColorImpairedMode": "Heikentyneen värinäön tila",
|
||||
"EnableColorImpairedModeHelpText": "Vaihtoehtoinen tyyli, joka auttaa erottamaan värikoodatut tiedot paremmin.",
|
||||
"EnableCompletedDownloadHandlingHelpText": "Tuo valmistuneet lataukset lataustyökalusta automaattisesti.",
|
||||
"EnableHelpText": "Luo tälle metatietotyypille metatietotiedostot.",
|
||||
"EnableHelpText": "Luo metatietotiedostot tälle metatietotyypille.",
|
||||
"EnableInteractiveSearch": "Käytä manuaalihakua",
|
||||
"EnableRSS": "RSS-syöte",
|
||||
"EnableSSL": "SSL-salaus",
|
||||
"EnableSslHelpText": " Käyttöönotto vaatii uudelleenkäynnistyksen järjestelmänvavojan oikeuksilla.",
|
||||
"Ended": "Päättyi",
|
||||
"Ended": "Päättynyt",
|
||||
"ErrorLoadingContents": "Virhe ladattaessa sisältöjä",
|
||||
"ErrorLoadingPreviews": "Virhe ladattaessa esikatselua",
|
||||
"Exception": "Poikkeus",
|
||||
@@ -132,7 +132,7 @@
|
||||
"FirstDayOfWeek": "Viikon ensimmäinen päivä",
|
||||
"Fixed": "Korjattu",
|
||||
"Folder": "Kansio",
|
||||
"Folders": "Kansioiden käsittely",
|
||||
"Folders": "Kansiot",
|
||||
"ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Saat yksittäisestä lataustyökalusta lisätietoja painamalla sen ohessa olevaa \"Lisätietoja\"-painiketta.",
|
||||
"ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Lue lisää tietolähteestä painamalla 'Lisätietoja'.",
|
||||
"ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Lue lisää tuontilistoista painamalla 'Lisätietoja'.",
|
||||
@@ -182,14 +182,14 @@
|
||||
"LogFiles": "Lokitiedostot",
|
||||
"LogLevel": "Lokikirjauksen laajuus",
|
||||
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "Jäljityskirjausta tulee käyttää vain tilapäisesti.",
|
||||
"Logging": "Lokitietojen kirjaus",
|
||||
"Logging": "Lokikirjaus",
|
||||
"Logs": "Lokitiedot",
|
||||
"LongDateFormat": "Pitkä päivämäärämuoto",
|
||||
"LongDateFormat": "Pitkän päiväyksen esitys",
|
||||
"MIA": "Puuttuu",
|
||||
"ManualImport": "Manuaalinen tuonti",
|
||||
"MarkAsFailed": "Merkitse epäonnistuneeksi",
|
||||
"MarkAsFailedMessageText": "Haluatko varmasti merkitä kohteen {0} epäonnistuneeksi?",
|
||||
"MaximumLimits": "Enimmäismäärät",
|
||||
"MaximumLimits": "Enimmäisrajoitukset",
|
||||
"MaximumSize": "Enimmäiskoko",
|
||||
"MaximumSizeHelpText": "Kaapattavien julkaisujen enimmäiskoko megatavuina. Arvo \"0\" (nolla) poistaa rajoituksen.",
|
||||
"Mechanism": "Mekanismi",
|
||||
@@ -201,7 +201,7 @@
|
||||
"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.",
|
||||
"MinimumLimits": "Vähimmäismäärät",
|
||||
"MinimumLimits": "Vähimmäisrajoitukset",
|
||||
"Missing": "Puuttuu",
|
||||
"Mode": "Tila",
|
||||
"Monitored": "Valvotut",
|
||||
@@ -218,11 +218,11 @@
|
||||
"NoLogFiles": "Lokitiedostoja ei ole",
|
||||
"NoMinimumForAnyRuntime": "Ei toistoajan vähimmäiskestoa",
|
||||
"NoUpdatesAreAvailable": "Päivityksiä ei ole saatavilla",
|
||||
"NotificationTriggers": "Laukaisijat",
|
||||
"NotificationTriggers": "Laukaisimet",
|
||||
"OnGrabHelpText": "Kun julkaisu kaapataan",
|
||||
"OnHealthIssueHelpText": "Kun havaitaan kuntoon liittyvä ongelma",
|
||||
"OnRenameHelpText": "Kun elokuva nimetään uudelleen",
|
||||
"OnUpgradeHelpText": "Kun elokuva päivitetään",
|
||||
"OnHealthIssueHelpText": "Vakausongelmat",
|
||||
"OnRenameHelpText": "Uudelleennimeäminen",
|
||||
"OnUpgradeHelpText": "Päivitys",
|
||||
"OpenBrowserOnStart": "Avaa selain käynnistettäessä",
|
||||
"Options": "Asetukset",
|
||||
"Original": "Alkuperäiset",
|
||||
@@ -237,16 +237,16 @@
|
||||
"PortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
|
||||
"PortNumber": "Portin numero",
|
||||
"PosterSize": "Julisteiden koko",
|
||||
"PreviewRename": "Esikatsele nimeämistä",
|
||||
"PreviewRename": "Nimeämisen esikatselu",
|
||||
"Profiles": "Profiilit",
|
||||
"Proper": "Kunnollinen",
|
||||
"PropersAndRepacks": "Proper- ja repack-julkaisut",
|
||||
"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ä erottimena ',' ja '*.' jokerimerkkinä aliverkkotunnuksille (esim. www.esimerkki.fi,*.esimerkki.fi)",
|
||||
"ProxyBypassFilterHelpText": "Käytä aliverkkotunnusten erottimena pilkkua (,) ja jokerimerkkinä tähteä ja pistettä (*.). Esimerkkejä: www.esimerkki.fi,*.esimerkki.fi.",
|
||||
"ProxyType": "Välityspalvelimen tyyppi",
|
||||
"ProxyUsernameHelpText": "Käyttäjätunnus ja salasana tulee syöttää vain tarvittaessa. Muussa tapauksessa jätä kentät tyhjiksi.",
|
||||
"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ä",
|
||||
"Quality": "Laatu",
|
||||
"QualityDefinitions": "Laatumääritykset",
|
||||
@@ -322,15 +322,15 @@
|
||||
"SetPermissionsLinuxHelpText": "Tulisiko chmod suorittaa, kun tiedostoja tuodaan/nimetään uudelleen?",
|
||||
"SetPermissionsLinuxHelpTextWarning": "Jollet ole varma mitä nämä asetukset tekevät, älä muuta niitä.",
|
||||
"Settings": "Asetukset",
|
||||
"ShortDateFormat": "Lyhyt päivämäärämuoto",
|
||||
"ShortDateFormat": "Lyhyen päiväyksen esitys",
|
||||
"ShowCutoffUnmetIconHelpText": "Näytä kuvake tiedostoille, joiden määritettyä katkaisutasoa ei ole vielä saavutettu.",
|
||||
"ShowDateAdded": "Näytä lisäyspäivä",
|
||||
"ShowMonitored": "Näytä valvontatila",
|
||||
"ShowMonitoredHelpText": "Näytä valvonnan tila julisteen alla.",
|
||||
"ShowQualityProfile": "Näytä laatuprofiili",
|
||||
"ShowQualityProfileHelpText": "Näytä laatuprofiili julisteen alla.",
|
||||
"ShowRelativeDates": "Näytä suhteutetut päiväykset",
|
||||
"ShowRelativeDatesHelpText": "Näytä suhteutetut (tänään/eilen/yms.) absoluuttisten sijaan",
|
||||
"ShowRelativeDates": "Käytä suhteellisia päiväyksiä",
|
||||
"ShowRelativeDatesHelpText": "Korvaa absoluuttiset päiväykset suhteellisilla päiväyksillä (tänään/eilen/yms.).",
|
||||
"ShowSearch": "Näytä haku",
|
||||
"ShowSearchActionHelpText": "Näytä hakupainike osoitettaessa.",
|
||||
"ShowSizeOnDisk": "Näytä koko levyllä",
|
||||
@@ -342,7 +342,7 @@
|
||||
"SorryThatBookCannotBeFound": "Valitettavasti elokuvaa ei löydy.",
|
||||
"Source": "Lähdekoodi",
|
||||
"SourcePath": "Lähdesijainti",
|
||||
"SslCertPasswordHelpText": "Salasana pfx-tiedostolle",
|
||||
"SslCertPasswordHelpText": "Pfx-tiedoston salasana",
|
||||
"SslCertPathHelpText": "Polku pfx-tiedostoon",
|
||||
"SslPortHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
|
||||
"StandardBookFormat": "Elokuvan vakiomuoto",
|
||||
@@ -360,15 +360,15 @@
|
||||
"TagIsNotUsedAndCanBeDeleted": "Tunnistetta ei ole määritetty millekään kohteelle, joten sen voi poistaa.",
|
||||
"Tags": "Tunnisteet",
|
||||
"Tasks": "Tehtävät",
|
||||
"TestAll": "Testaa kaikki",
|
||||
"TestAllClients": "Testaa kaikki lataustyökalut",
|
||||
"TestAllIndexers": "Testaa tietolähteet",
|
||||
"TestAllLists": "Testaa listat",
|
||||
"TestAll": "Kaikkien testaus",
|
||||
"TestAllClients": "Lataustyökalujen testaus",
|
||||
"TestAllIndexers": "Tietolähteiden testaus",
|
||||
"TestAllLists": "Kaikkien listojen testaus",
|
||||
"ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Tämä koskee kaikkia tietolähteitä. Noudata niiden asettamia sääntöjä.",
|
||||
"TimeFormat": "Kellonajan esitys",
|
||||
"Title": "Nimike",
|
||||
"TorrentDelay": "Torrent-viive",
|
||||
"TorrentDelayHelpText": "Viive minuutteina ennen kuin torrentia siepataan.",
|
||||
"TorrentDelayHelpText": "Minuuttiviive, joka odotetaan ennen julkaisun Torrent-kaappausta.",
|
||||
"Torrents": "Torrentit",
|
||||
"TotalFileSize": "Kokonaistiedostokoko",
|
||||
"UILanguage": "Käyttöliittymän kieli",
|
||||
@@ -381,7 +381,7 @@
|
||||
"UnableToAddANewIndexerPleaseTryAgain": "Uuden tietolähteen lisäys epäonnistui. Yritä uudelleen.",
|
||||
"UnableToAddANewListPleaseTryAgain": "Tuontilistan lisäys epäonnistui. Yritä uudelleen.",
|
||||
"UnableToAddANewMetadataProfilePleaseTryAgain": "Uutta laatuprofiilia ei voi lisätä, yritä uudelleen.",
|
||||
"UnableToAddANewNotificationPleaseTryAgain": "Kytkennän lisäys epäonnistui. 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.",
|
||||
"UnableToAddANewRootFolderPleaseTryAgain": "Uutta mukautettua muotoa ei voi lisätä, yritä uudelleen.",
|
||||
@@ -398,7 +398,7 @@
|
||||
"UnableToLoadMediaManagementSettings": "Medianhallinnan asetuksien lataus epäonnistui.",
|
||||
"UnableToLoadMetadata": "Metatietojen lataus epäonnistui.",
|
||||
"UnableToLoadNamingSettings": "Nimeämisen asetuksien lataus epäonnistui.",
|
||||
"UnableToLoadNotifications": "Kytkentöjen lataus epäonnistui.",
|
||||
"UnableToLoadNotifications": "Kytkösten lataus epäonnistui.",
|
||||
"UnableToLoadQualities": "Laatujen lataus epäonnistui.",
|
||||
"UnableToLoadQualityDefinitions": "Laatumäärityksien lataus epäonnistui.",
|
||||
"UnableToLoadQualityProfiles": "Laatuprofiilien lataus epäonnistui.",
|
||||
@@ -423,7 +423,7 @@
|
||||
"UseProxy": "Käytä välityspalvelinta",
|
||||
"Usenet": "Usenet",
|
||||
"UsenetDelay": "Usenet-viive",
|
||||
"UsenetDelayHelpText": "Viivästy muutamassa minuutissa odottaaksesi, ennen kuin tartut julkaisun Usenetiin",
|
||||
"UsenetDelayHelpText": "Minuuttiviive, joka odotetaan ennen julkaisun Usenet-kaappausta.",
|
||||
"Username": "Käyttäjätunnus",
|
||||
"UsingExternalUpdateMechanismBranchToUseToUpdateReadarr": "Sovelluksen versiopäivityksiin käytettävä kehityshaara.",
|
||||
"UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Ulkoisen päivitysratkaisun käyttämä kehityshaara.",
|
||||
@@ -434,7 +434,7 @@
|
||||
"ApiKeyHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen.",
|
||||
"DeleteRootFolderMessageText": "Haluatko varmasti poistaa juurikansion \"{name}\"?",
|
||||
"LoadingBooksFailed": "Elokuvatiedostojen lataaminen epäonnistui",
|
||||
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee syöttää vain tarvittaessa. Muussa tapauksessa jätä kentät tyhjiksi.",
|
||||
"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.",
|
||||
"DownloadClientCheckDownloadingToRoot": "Lataustyökalu \"{0}\" tallentaa lataukset juurikansioon \"{1}\", mutta ne tulisi tallentaa muualle.",
|
||||
@@ -442,7 +442,7 @@
|
||||
"OutputPath": "Tallennussijainti",
|
||||
"Progress": "Tilanne",
|
||||
"Actions": "Toiminnot",
|
||||
"ReleaseTitle": "Julkaisunimike",
|
||||
"ReleaseTitle": "Julkaisun nimike",
|
||||
"Today": "Tänään",
|
||||
"Tomorrow": "Huomenna",
|
||||
"BookAvailableButMissing": "Kirja on saatavilla, mutta puuttuu",
|
||||
@@ -459,10 +459,10 @@
|
||||
"Time": "Aika",
|
||||
"Blocklist": "Estolista",
|
||||
"BlocklistRelease": "Lisää julkaisu estolistalle",
|
||||
"MaintenanceRelease": "Huoltojulkaisu: Korjauksia ja muita parannuksia. Lue lisää Githubin historiasta muutoshistoriasta.",
|
||||
"MaintenanceRelease": "Huoltojulkaisu: korjauksia ja muita parannuksia. Lue lisää Githubin muutoshistoriasta.",
|
||||
"DeleteImportList": "Poista tuontilista",
|
||||
"SkipBooksWithNoISBNOrASIN": "Ohita kirjat, joilta puuttuu ISBN- tai ASIN-tunniste",
|
||||
"ImportListExclusions": "Tuotilistojen poikkeukset",
|
||||
"ImportListExclusions": "Tuontilistojen poikkeukset",
|
||||
"ShowName": "Näytä nimi",
|
||||
"ShowTitleHelpText": "Näytä kirjailijan nimi julisteen alla",
|
||||
"ShowUnknownAuthorItems": "Näytä 'Tuntemattomat kirjailijat' -kohde",
|
||||
@@ -506,7 +506,7 @@
|
||||
"AllowAuthorChangeClickToChangeAuthor": "Paina vaihtaaksesi kirjailijaa",
|
||||
"AllowedLanguages": "Sallitut kielet",
|
||||
"AnyEditionOkHelpText": "Readarr vaihtaa automaattisesti versioon, joka vastaa ladattuja tiedostoja parhaiten",
|
||||
"AuthorEditor": "Kirjailijaeditori",
|
||||
"AuthorEditor": "Kirjailijan muokkaus",
|
||||
"AudioFileMetadata": "Kirjoita metatiedot äänitiedostoihin",
|
||||
"AuthorFolderFormat": "Kirjailijakansion muoto",
|
||||
"AuthorNameHelpText": "Poissuljettavan kirjailijan/kirjan nimi (voi olla mitä tahansa merkityksellistä)",
|
||||
@@ -561,7 +561,7 @@
|
||||
"IndexerPriorityHelpText": "Tietolähteen painotus, 1– 50 (korkein-alin). Oletusarvo on 25. Käytetään muutoin tasaveroisten julkaisujen kaappauspäätökseen. Kaikkia käytössä olevia tietolähteitä käytetään edelleen RSS-synkronointiin ja hakuun.",
|
||||
"IndexerLongTermStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi: {0}",
|
||||
"IndexerLongTermStatusCheckAllClientMessage": "Mikään tietolähde ei ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi.",
|
||||
"IndexerSearchCheckNoInteractiveMessage": "Manuaalihakua varten ei ole määritetty tietolähteitä, eikä se sen vuoksi löydä tuloksia.",
|
||||
"IndexerSearchCheckNoInteractiveMessage": "Manuaalihaulle ei ole määritetty tietolähteitä, eikä se sen vuoksi löydä tuloksia.",
|
||||
"IsCalibreLibraryHelpText": "Hallinnoi kirjastoa Calibren sisältöpalvelimen avulla.",
|
||||
"IsInUseCantDeleteAMetadataProfileThatIsAttachedToAnAuthorOrImportList": "Kirjailijaan tai tuontilistaan liitettyä metatietoprofiilia ei voi poistaa.",
|
||||
"IsInUseCantDeleteAQualityProfileThatIsAttachedToAnAuthorOrImportList": "Kirjailijaan tai tuontilistaan liitettyä laatuprofiilia ei voi poistaa.",
|
||||
@@ -585,14 +585,14 @@
|
||||
"QualityProfileIdHelpText": "Laatuprofiili, joka listalta lisätyille kohteille tulee asettaa.",
|
||||
"SendMetadataToCalibre": "Lähetä metatiedot Calibrelle",
|
||||
"ShouldMonitorExisting": "Valvo olemassa olevia kirjoja",
|
||||
"ShouldMonitorExistingHelpText": "Valvo automaattisesti tällä listalla olevia kirjoja, jotka ovat jo kirjastossasi.",
|
||||
"ShouldMonitorExistingHelpText": "Valvo automaattisesti tällä listalla olevia {appName}in kirjaston kirjoja.",
|
||||
"Started": "Alkoi",
|
||||
"TooManyBooks": "Puuttuuko kirjoja tai onko niitä liikaa? Muokkaa tai luo uusi.",
|
||||
"UseCalibreContentServer": "Käytä Calibren sisältöpalvelinta",
|
||||
"UpdateCoversHelpText": "Määritä kirjojen kansikuvat Calibressa vastaamaan Readarrin kuvia.",
|
||||
"UsernameHelpText": "Calibre-sisältöpalvelimen käyttäjätunnus.",
|
||||
"UseSslHelpText": "Muodosta yhteys Calibre-sisältöpalvelimeen SSL-protokollan välityksellä.",
|
||||
"UseSSL": "SSL-salaus",
|
||||
"UseSslHelpText": "Yhdistä Calibre-sisältöpalvelimeen SSL-protokollan välityksellä.",
|
||||
"UseSSL": "Käytä SSL-salausta",
|
||||
"SearchForAllMissingBooks": "Etsi kaikkia puuttuvia kirjoja",
|
||||
"GeneralSettingsSummary": "Portti, SSL-salaus, käyttäjätunnus ja salasana, välityspalvelin, analytiikka ja päivitykset.",
|
||||
"PathHelpText": "Kirjakokoelmasi pääkansio.",
|
||||
@@ -639,7 +639,7 @@
|
||||
"DownloadClientStatusCheckAllClientMessage": "Lataustyökaluja ei ole ongelmien vuoksi käytettävissä",
|
||||
"DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kartoitukset.",
|
||||
"Connect": "Kytkökset",
|
||||
"TimeLeft": "Jäljellä oleva aika",
|
||||
"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.",
|
||||
@@ -657,9 +657,9 @@
|
||||
"OnBookFileDeleteForUpgrade": "Kun elokuvatiedosto poistetaan päivitystä varten",
|
||||
"OnBookFileDeleteForUpgradeHelpText": "Kun elokuvatiedosto poistetaan päivitystä varten",
|
||||
"OnGrab": "Kun julkaisu kaapataan",
|
||||
"OnHealthIssue": "Kun havaitaan kuntoon liittyvä ongelma",
|
||||
"OnRename": "Kun elokuva nimetään uudelleen",
|
||||
"OnUpgrade": "Kun elokuva päivitetään",
|
||||
"OnHealthIssue": "Vakausongelmat",
|
||||
"OnRename": "Uudelleennimeäminen",
|
||||
"OnUpgrade": "Päivitettäessä",
|
||||
"ProxyCheckResolveIpMessage": "Määritetyn välityspalvelimen \"{0}\" IP-osoitteen selvitys epäonnistui.",
|
||||
"QualitySettingsSummary": "Laatukoot ja nimeäminen",
|
||||
"QueueIsEmpty": "Jono on tyhjä",
|
||||
@@ -676,15 +676,15 @@
|
||||
"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",
|
||||
"WatchLibraryForChangesHelpText": "Suorita automaattinen uudelleentutkinta, kun juurikansiossa havaitaan tiedostomuutoksia.",
|
||||
"RestartRequiredHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen",
|
||||
"RestartRequiredHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
|
||||
"AddList": "Lisää lista",
|
||||
"InstanceName": "Instanssin nimi",
|
||||
"InstanceNameHelpText": "Instanssin nimi välilehdellä ja järjestelmälokissa",
|
||||
"InstanceNameHelpText": "Instanssin nimi välilehdellä ja järjestelmälokissa.",
|
||||
"MonitorExistingBooks": "Valvo olemassa olevia kirjoja",
|
||||
"MonitorNewBooks": "Valvo uusia kirjoja",
|
||||
"RenameFiles": "Nimeä tiedostot",
|
||||
"Test": "Kokeile",
|
||||
"AllowFingerprintingHelpText": "Tarkenna kirjojen täsmäystarkkuutta piiloleimauksen avulla.",
|
||||
"Test": "Testaa",
|
||||
"AllowFingerprintingHelpText": "Tarkenna kirjojen tunnistustarkkuutta piiloleimauksen avulla.",
|
||||
"AllowFingerprinting": "Salli piiloleimaus",
|
||||
"Database": "Tietokanta",
|
||||
"ManualImportSelectEdition": "Manuaalinen tuonti - Valitse versio",
|
||||
@@ -749,9 +749,9 @@
|
||||
"EndedAllBooksDownloaded": "Päättynyt (kaikki kappaleet on ladattu)",
|
||||
"GoToAuthorListing": "Avaa esittäjälistaus",
|
||||
"ListsSettingsSummary": "Tuotilistat",
|
||||
"MusicBrainzAuthorID": "MusicBrainz-esittäjätunniste",
|
||||
"MusicBrainzAuthorID": "MusicBrainzin kirjailija-ID",
|
||||
"SearchForNewItems": "Etsi uusia kohteita",
|
||||
"SelectedCountAuthorsSelectedInterp": "{0} esittäjä(ä) valittu",
|
||||
"SelectedCountAuthorsSelectedInterp": "{0} kirjailija(a) valittu",
|
||||
"TheBooksFilesWillBeDeleted": "Albumin tiedostot poistetaan.",
|
||||
"TotalBookCountBooksTotalBookFileCountBooksWithFilesInterp": "Yhteensä {0} kappaletta. {1} kappaleelle on tiedostoja.",
|
||||
"ContinuingAllBooksDownloaded": "Jatkuva (kaikki kappaleet on ladattu)",
|
||||
@@ -762,16 +762,16 @@
|
||||
"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.",
|
||||
"EntityName": "Entiteetin nimi",
|
||||
"EnableAutomaticAddHelpText": "Lisää esittäjät/albumit, kun synkronoinnit suoritetaan käyttöliittymästä tai sovelluksen toimesta.",
|
||||
"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",
|
||||
"IndexerIdHelpTextWarning": "Yksittäisen tietolähteen käyttö sanapainotuksen kanssa saattaa aiheuttaa julkaisujen kaksoiskappaleiden kaappauksia.",
|
||||
"ChooseImportMethod": "Valitse tuontitila",
|
||||
"ClickToChangeReleaseGroup": "Vaihda julkaisuryhmää painamalla tästä",
|
||||
"HardlinkCopyFiles": "Hardlink/tiedostojen kopiointi",
|
||||
"MoveFiles": "Siirrä tiedostoja",
|
||||
"MoveFiles": "Siirrä tiedostot",
|
||||
"DataListMonitorAll": "Valvo esittäjiä ja jokaisen esittäjän kaikkia tuontilistan sisältämiä albumeita",
|
||||
"OnApplicationUpdate": "Sovelluksen päivittyessä",
|
||||
"OnApplicationUpdateHelpText": "Sovelluksen päivittyessä",
|
||||
"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.",
|
||||
"EnableRssHelpText": "Käytetään {appName}in etsiessä julkaisuja ajoitetusti RSS-synkronoinnilla.",
|
||||
@@ -824,7 +824,7 @@
|
||||
"ResetQualityDefinitions": "Palauta laatumääritykset",
|
||||
"ResetQualityDefinitionsMessageText": "Haluatko varmasti palauttaa laatumääritykset?",
|
||||
"NoEventsFound": "Tapahtumia ei löytynyt",
|
||||
"BlocklistReleaseHelpText": "Estää näiden tiedostojen automaattisen uudelleenkaappauksen.",
|
||||
"BlocklistReleaseHelpText": "Estää {appName}ia lataamasta näitä tiedostoja uudelleen.",
|
||||
"RecycleBinUnableToWriteHealthCheck": "Määritettyyn roskakorikansioon ei voi tallentaa: {0}. Varmista, että sijainti on olemassa ja että käyttäjällä on kirjoitusoikeus kansioon.",
|
||||
"ApplyTagsHelpTextHowToApplyAuthors": "Tunnisteisiin kohdistettavat toimenpiteet:",
|
||||
"DeleteSelectedImportLists": "Poista tuontilista(t)",
|
||||
@@ -844,15 +844,15 @@
|
||||
"DeleteSelectedIndexers": "Poista tietoläh(de/teet)",
|
||||
"DeleteSelectedIndexersMessageText": "Haluatko varmasti poistaa {count} valit(un/tua) tietoläh(teen/dettä)?",
|
||||
"DownloadClientTagHelpText": "Lataustyökalua käytetään vähintään yhdellä täsmäävällä tunnisteella merkityille kirjailijoille. Käytä kaikille jättämällä tyhjäksi.",
|
||||
"ExistingTag": "Olemassa oleva tunniste",
|
||||
"ExistingTag": "Tunniste on jo olemassa",
|
||||
"NoChange": "Ei muutosta",
|
||||
"RemoveFailed": "Poisto epäonnistui",
|
||||
"RemovingTag": "Tunniste poistetaan",
|
||||
"RemoveCompleted": "Poisto on valmis",
|
||||
"RemoveCompleted": "Poisto on suoritettu",
|
||||
"RemoveDownloadsAlert": "Poistoasetukset on siirretty yllä olevan taulukon lataustyökalukohtaisiin asetuksiin.",
|
||||
"SetTags": "Tunnisteiden määritys",
|
||||
"ConnectionLostToBackend": "{appName} kadotti yhteyden taustajärjestelmään ja se on käynnistettävä uudelleen.",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Kaikki ilmoitukset eivät ole ongelmien vuoksi käytettävissä",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Mikään ilmoituspavelu ei ole ongelmien vuoksi käytettävissä.",
|
||||
"NotificationStatusSingleClientHealthCheckMessage": "Ilmoitukset eivät ole ongelmien vuoksi käytettävissä: {0}",
|
||||
"System": "Järjestelmä",
|
||||
"TotalSpace": "Kokonaistila",
|
||||
@@ -870,7 +870,7 @@
|
||||
"Large": "Suuri",
|
||||
"LastDuration": "Edellinen kesto",
|
||||
"LastExecution": "Edellinen suoritus",
|
||||
"LastWriteTime": "Edellinen tallennusaika",
|
||||
"LastWriteTime": "Viimeksi tallennettu",
|
||||
"Location": "Sijainti",
|
||||
"NoResultsFound": "Ei tuloksia",
|
||||
"SomeResultsAreHiddenByTheAppliedFilter": "Joitakin tuloksia piilottaa käytetty suodatin",
|
||||
@@ -883,15 +883,15 @@
|
||||
"AppUpdatedVersion": "{appName} on päivitetty versioon {version} ja muutosten käyttöönottamiseksi se on käynnistettävä uudelleen.",
|
||||
"Iso639-3": "ISO 639-3 -kielikoodit tai \"null\" (pilkuin eroteltuna)",
|
||||
"ExtraFileExtensionsHelpText": "Pilkuin eroteltu listaus tuotavista oheistiedostoista (.nfo-tiedostot tuodaan \".nfo-orig\"-nimellä).",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Esimerkkejä: '\"sub, .nfo\" tai \"sub,nfo\".",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Esimerkiksi '\"sub, .nfo\" tai \"sub,nfo\".",
|
||||
"NoCutoffUnmetItems": "Katkaisutasoa saavuttamattomia kohteita ei ole",
|
||||
"DeleteSelected": "Poista valitut",
|
||||
"CountAuthorsSelected": "{selectedCount} tietolähde(ttä) on valittu",
|
||||
"NoMissingItems": "Ei puuttuvia kohteita",
|
||||
"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.",
|
||||
"ThereWasAnErrorLoadingThisItem": "Virhe ladattaessa tätä kohdetta",
|
||||
"ThereWasAnErrorLoadingThisPage": "Virhe ladattaessa tätä sivua",
|
||||
"ThereWasAnErrorLoadingThisItem": "Virhe ladattaessa kohdetta",
|
||||
"ThereWasAnErrorLoadingThisPage": "Virhe ladattaessa sivua",
|
||||
"DeleteRemotePathMappingMessageText": "Haluatko varmasti poistaa tämä etäsijainnin kartoituksen?",
|
||||
"ManageDownloadClients": "Hallitse lataustyökaluja",
|
||||
"ManageIndexers": "Hallitse tietolähteitä",
|
||||
@@ -912,7 +912,7 @@
|
||||
"ChownGroup": "chown-ryhmä",
|
||||
"CountDownloadClientsSelected": "{selectedCount} lataustyökalu(a) on valittu",
|
||||
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "Lataustyökalu \"{0}\" on määritetty poistamaan valmistuneet lataukset, jonka seuraksena ne saatetaan poistaa ennen kuin {1} ehtii tuoda niitä.",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Sisällön asettelu",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Sisällön rakenne",
|
||||
"EditSelectedDownloadClients": "Muokkaa valittuja lataustyökaluja",
|
||||
"EditSelectedIndexers": "Muokkaa valittuja sisältölähteitä",
|
||||
"LogSQL": "Kirjaa SQL",
|
||||
@@ -924,5 +924,38 @@
|
||||
"BypassIfHighestQualityHelpText": "Ohitusviive kun julkaisun laatu vastaa laatuprofiilin korkeinta käytössä olevaa laatua halutulla protokollalla.",
|
||||
"BypassIfAboveCustomFormatScore": "Ohita, jos ylittää mukautetun muodon pisteytyksen",
|
||||
"ASIN": "ASIN",
|
||||
"AutoAdd": "Automaattilisäys"
|
||||
"AutoAdd": "Automaattilisäys",
|
||||
"ManageImportLists": "Tuontilistojen hallinta",
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Etsi automaattisesti ja pyri lataamaan eri julkaisu vaikka epäonnistunut julkaisu oli kaapattu manuaalihausta.",
|
||||
"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.",
|
||||
"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",
|
||||
"SourceTitle": "Lähteen nimike",
|
||||
"EditSelectedImportLists": "Muokkaa valittuja tuontilistoja",
|
||||
"ListWillRefreshEveryInterp": "Lista päivitetään {0} välein",
|
||||
"HasMonitoredBooksNoMonitoredBooksForThisAuthor": "Kirjailijalta ei valvota kirjoja",
|
||||
"ManageClients": "Hallitse työkaluja",
|
||||
"NoImportListsFound": "Tuotilistoja ei löytynyt",
|
||||
"FilterAuthor": "Suodata kirjailija",
|
||||
"StatusEndedDeceased": "Kuollut",
|
||||
"OnAuthorDeleteHelpText": "Kun kirjailija poistetaan",
|
||||
"ListRefreshInterval": "Listan päivityksen ajoitus",
|
||||
"MonitorAuthor": "Valvo kirjailijaa",
|
||||
"EditAuthor": "Muokkaa kirjailijaa",
|
||||
"NameStyle": "Kirjailijan nimen tyyli",
|
||||
"MonitoredAuthorIsUnmonitored": "Kirjailijaa ei valvota",
|
||||
"OnAuthorDelete": "Kun kirjailija poistetaan",
|
||||
"DataListMonitorNone": "Älä valvo kirjailijoita tai kirjoja",
|
||||
"MonitoredAuthorIsMonitored": "Kirjailijaa valvotaan",
|
||||
"RefreshAuthor": "Päivitä kirjailija",
|
||||
"OnAuthorAdded": "Kun kirjailija lisätään",
|
||||
"OnAuthorAddedHelpText": "Kun kirjailija lisätään",
|
||||
"SkipRedownloadHelpText": "Estää {appName}ia lataamasta vaihtoehtoisia julkaisuja poistetuille kohteille.",
|
||||
"RemoveFromDownloadClientHint": "Poistaa latauksen ja ladatut tiedostot lataustyökalusta.",
|
||||
"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."
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"20MinutesTwenty": "20 Minutes: {0}",
|
||||
"45MinutesFourtyFive": "45 Minutes: {0}",
|
||||
"60MinutesSixty": "60 Minutes: {0}",
|
||||
"20MinutesTwenty": "20 Minutes : {0}",
|
||||
"45MinutesFourtyFive": "45 Minutes : {0}",
|
||||
"60MinutesSixty": "60 Minutes : {0}",
|
||||
"APIKey": "Clé API",
|
||||
"About": "À propos",
|
||||
"AddListExclusion": "Ajouter une liste d'exclusion",
|
||||
@@ -76,7 +76,7 @@
|
||||
"CreateGroup": "Créer un groupe",
|
||||
"CutoffHelpText": "Quand cette qualité est atteinte, Readarr ne téléchargera plus de livres",
|
||||
"CutoffUnmet": "Seuil non atteint",
|
||||
"DBMigration": "Migration de la base de données",
|
||||
"DatabaseMigration": "Migration de la base de données",
|
||||
"Dates": "Dates",
|
||||
"DelayProfile": "Profil de retard",
|
||||
"DelayProfiles": "Profils de retard",
|
||||
@@ -104,7 +104,7 @@
|
||||
"DeleteReleaseProfileMessageText": "Êtes vous sûr de vouloir effacer ce profil de version ?",
|
||||
"DeleteSelectedBookFiles": "Supprimer les fichiers de livres sélectionnés",
|
||||
"DeleteSelectedBookFilesMessageText": "Voulez-vous vraiment supprimer les fichiers vidéo sélectionnés ?",
|
||||
"DeleteTag": "Supprimer le tag",
|
||||
"DeleteTag": "Supprimer l'étiquette",
|
||||
"DeleteTagMessageText": "Voulez-vous vraiment supprimer la balise '{0}' ?",
|
||||
"DestinationPath": "Chemin de destination",
|
||||
"DetailedProgressBar": "Barre de progression détaillée",
|
||||
@@ -238,7 +238,7 @@
|
||||
"PageSizeHelpText": "Nombre d'éléments à afficher sur chaque page",
|
||||
"Password": "Mot de passe",
|
||||
"Path": "Chemin",
|
||||
"Permissions": "Permissions",
|
||||
"Permissions": "Autorisations",
|
||||
"Port": "Port",
|
||||
"PortHelpTextWarning": "Nécessite un redémarrage pour prendre effet",
|
||||
"PortNumber": "Numéro de port",
|
||||
@@ -930,5 +930,19 @@
|
||||
"DeleteSelected": "Supprimer sélectionnée",
|
||||
"InvalidUILanguage": "Votre interface utilisateur est définie sur une langue non valide, corrigez-la et enregistrez vos paramètres",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Disposition du contenu",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)"
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "Format personnalisé RegEx est insensible à la casse",
|
||||
"CustomFormatsSpecificationRegularExpression": "Expression régulière",
|
||||
"BlocklistAndSearch": "Liste de blocage et recherche",
|
||||
"BlocklistAndSearchHint": "Lancer la recherche d'un remplaçant après l'inscription sur la liste de blocage",
|
||||
"BlocklistAndSearchMultipleHint": "Lancer la recherche de remplaçants après l'inscription sur la liste de blocage",
|
||||
"BlocklistMultipleOnlyHint": "Liste de blocage sans recherche de remplaçants",
|
||||
"BlocklistOnly": "Liste de blocage uniquement",
|
||||
"BlocklistOnlyHint": "Liste de blocage sans recherche de remplaçant",
|
||||
"ChangeCategory": "Changer de catégorie",
|
||||
"ChangeCategoryMultipleHint": "Modifie les téléchargements dans la \"catégorie post-importation\" du client de téléchargement",
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"CreateGroup": "צור קבוצה",
|
||||
"CutoffHelpText": "לאחר שהאיכות הזו תושג Radarr כבר לא תוריד סרטים",
|
||||
"CutoffUnmet": "חתך שלא הושג",
|
||||
"DBMigration": "הגירת DB",
|
||||
"DatabaseMigration": "הגירת DB",
|
||||
"Dates": "תאריכים",
|
||||
"DelayProfile": "עיכוב פרופיל",
|
||||
"DelayProfiles": "עיכוב פרופילים",
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
"CreateGroup": "समूह बनाएँ",
|
||||
"CutoffHelpText": "एक बार जब यह गुणवत्ता पहुँच जाती है तो Redarr फिल्में डाउनलोड नहीं करेगा",
|
||||
"CutoffUnmet": "कट-ऑफ Unmet",
|
||||
"DBMigration": "DB प्रवासन",
|
||||
"DatabaseMigration": "DB प्रवासन",
|
||||
"Dates": "खजूर",
|
||||
"DelayProfile": "देरी प्रोफ़ाइल",
|
||||
"DelayProfiles": "देरी प्रोफाइल",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"BackupNow": "Biztonsági Mentés",
|
||||
"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": "Kapcsolási Cím",
|
||||
"BindAddress": "Kötési cím",
|
||||
"BindAddressHelpText": "Érvényes IPv4-cím, vagy „*” minden interfészhez",
|
||||
"BindAddressHelpTextWarning": "Újraindítás szükséges a hatálybalépéshez",
|
||||
"BookIsDownloading": "A film letöltés alatt",
|
||||
@@ -32,17 +32,17 @@
|
||||
"ChmodFolder": "chmod Mappa",
|
||||
"ChmodFolderHelpText": "Octal, importáláskor / átnevezéskor alkalmazva a média mappákra és fájlokra (bitek végrehajtása nélkül)",
|
||||
"ChmodFolderHelpTextWarning": "Ez csak akkor működik, ha a Radarr-t futtató felhasználó a fájl tulajdonosa. Jobb, ha ellenőrzöd a letöltési kliensben megfelelően vannak-e beállítva az engedélyek.",
|
||||
"ChownGroupHelpText": "Csoport neve vagy gid. A gid használata távoli fájlrendszerekhez.",
|
||||
"ChownGroupHelpText": "Csoport neve vagy gid. Távoli fájlrendszerekhez használja a gid-t.",
|
||||
"ChownGroupHelpTextWarning": "Ez csak akkor működik, ha a Radarrt futtató felhasználó a fájl tulajdonosa. Jobb, ha a letöltési kliens ugyanazt a csoportot használja, mint a Radarr.",
|
||||
"Clear": "Törölni",
|
||||
"ClickToChangeQuality": "Kattintson a minőség módosításához",
|
||||
"ClientPriority": "Kliens Prioritás",
|
||||
"CloneIndexer": "Indexer Klónozása",
|
||||
"CloneProfile": "Profil Klónozása",
|
||||
"ClientPriority": "Kliens prioritás",
|
||||
"CloneIndexer": "Indexelő klónozása",
|
||||
"CloneProfile": "Profil klónozása",
|
||||
"Close": "Bezárás",
|
||||
"Columns": "Oszlopok",
|
||||
"CompletedDownloadHandling": "Kész Letöltések Kezelése",
|
||||
"ConnectSettings": "Kapcsolódási Beállítások",
|
||||
"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",
|
||||
"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.",
|
||||
@@ -50,7 +50,7 @@
|
||||
"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",
|
||||
"DBMigration": "DB Migráció",
|
||||
"DatabaseMigration": "DB Migráció",
|
||||
"Dates": "Dátumok",
|
||||
"DelayProfile": "Késleltetési Profil",
|
||||
"DelayProfiles": "Késleltetési Profilok",
|
||||
@@ -59,21 +59,21 @@
|
||||
"DeleteBackup": "Biztonsági Mentés törlése",
|
||||
"DeleteBackupMessageText": "Biztosan törli a '{name}' biztonsági mentést?",
|
||||
"DeleteDelayProfile": "Késleltetési Profil törlése",
|
||||
"DeleteDelayProfileMessageText": "Biztos hogy törölni szeretnéd ezt a késleltetési profilt?",
|
||||
"DeleteDelayProfileMessageText": "Biztosan törli ezt a késleltetési profilt?",
|
||||
"DeleteDownloadClient": "Letöltőkliens törlése",
|
||||
"DeleteDownloadClientMessageText": "Biztosan törlöd a(z) „{0}” letöltő klienst?",
|
||||
"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",
|
||||
"DeleteImportListExclusionMessageText": "Biztos, hogy törölni szeretnéd az importálási lista kivételeit?",
|
||||
"DeleteImportListMessageText": "Biztosan törlöd a(z) „{0}” listát?",
|
||||
"DeleteImportListExclusionMessageText": "Biztosan törli ezt az importlista-kizárást?",
|
||||
"DeleteImportListMessageText": "Biztosan törli a(z) „{name}” listát?",
|
||||
"DeleteIndexer": "Indexer Törlése",
|
||||
"DeleteIndexerMessageText": "Biztosan törlöd a(z) „{0}” indexert?",
|
||||
"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",
|
||||
"DeleteNotificationMessageText": "Biztosan törlöd a(z) „{0}” értesítést?",
|
||||
"DeleteNotificationMessageText": "Biztosan törli a(z) „{name}” értesítést?",
|
||||
"DeleteQualityProfile": "Minőségi Profil Törlése",
|
||||
"DeleteQualityProfileMessageText": "Biztosan törli a {0} minőségi profilt?",
|
||||
"DeleteQualityProfileMessageText": "Biztosan törli a(z) „{name}” minőségi profilt?",
|
||||
"DeleteReleaseProfile": "Késleltetési 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",
|
||||
@@ -83,16 +83,16 @@
|
||||
"DestinationPath": "Célmappa Útvonala",
|
||||
"DetailedProgressBar": "Részletes Folyamat Sáv",
|
||||
"DetailedProgressBarHelpText": "Szöveg megjelenítése a folyamatjelző sávon",
|
||||
"DiskSpace": "Szabad Tárhely",
|
||||
"DiskSpace": "Lemez terület",
|
||||
"Docker": "Docker",
|
||||
"DownloadClient": "Letöltési Kliens",
|
||||
"DownloadClient": "Letöltési kliens",
|
||||
"DownloadClientSettings": "Letöltőkliens Beállítások",
|
||||
"DownloadClients": "Letöltőkliensek",
|
||||
"DownloadClients": "Letöltő kliensek",
|
||||
"DownloadFailedCheckDownloadClientForMoreDetails": "Letöltés Sikertelen : Nézd meg a letöltőkliensed további információért",
|
||||
"DownloadFailedInterp": "Letöltés sikertelen: {0}",
|
||||
"DownloadPropersAndRepacksHelpTexts1": "Függetlenül attól, hogy automatikusan frissíteni kell-e Propers/Repacks verzióra",
|
||||
"DownloadWarningCheckDownloadClientForMoreDetails": "Letöltési figyelmeztetés: Nézd meg a letöltőkliensed további információért",
|
||||
"Edit": "szerkeszt",
|
||||
"Edit": "Szerkeszt",
|
||||
"Edition": "Kiadás",
|
||||
"Enable": "Aktiválás",
|
||||
"EnableAutomaticAdd": "Engedélyezd az automatikus hozzáadást",
|
||||
@@ -111,10 +111,10 @@
|
||||
"Exception": "Kivétel",
|
||||
"FailedDownloadHandling": "Nem sikerült a letöltés kezelése",
|
||||
"FileDateHelpText": "A fájl dátumának módosítása az importáláskor / újrakereséskor",
|
||||
"FileManagement": "Fájlkezelő",
|
||||
"FileManagement": "Fájlkezelés",
|
||||
"FileNames": "Fájlnevek",
|
||||
"Filename": "Fájl név",
|
||||
"Files": "Fájl",
|
||||
"Files": "Fájlok",
|
||||
"FirstDayOfWeek": "A Hét Első Napja",
|
||||
"Fixed": "Rögzített",
|
||||
"Folder": "Mappa",
|
||||
@@ -149,7 +149,7 @@
|
||||
"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",
|
||||
"Importing": "Importálás Folyamatban",
|
||||
"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",
|
||||
@@ -165,46 +165,46 @@
|
||||
"LaunchBrowserHelpText": " Nyisson meg egy böngészőt, és az alkalmazás indításakor lépjen a Readarr kezdőlapjára.",
|
||||
"LoadingBookFilesFailed": "A film fájljainak betöltése sikertelen",
|
||||
"Local": "Helyi",
|
||||
"LogFiles": "Log Fájlok",
|
||||
"LogLevel": "Log Szint",
|
||||
"LogFiles": "Naplófájlok",
|
||||
"LogLevel": "Napló szint",
|
||||
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "A nyomkövetést csak ideiglenesen szabad engedélyezni",
|
||||
"Logging": "Loggolás",
|
||||
"Logs": "Naplók",
|
||||
"LongDateFormat": "Hosszú dátumformátum",
|
||||
"LongDateFormat": "Hosszú dátum formátum",
|
||||
"MIA": "MIA",
|
||||
"ManualImport": "Manuális Importálás",
|
||||
"MarkAsFailed": "Megjelölés Sikertelenként",
|
||||
"ManualImport": "Kézi importálás",
|
||||
"MarkAsFailed": "Megjelölés sikertelenként",
|
||||
"MarkAsFailedMessageText": "Biztosan sikertelennek szeretnéd jelölni a (z) „{0}”-t?",
|
||||
"MaximumLimits": "Maximális Limit",
|
||||
"MaximumSize": "Maximális Méret",
|
||||
"MaximumLimits": "Maximális korlátok",
|
||||
"MaximumSize": "Maximális méret",
|
||||
"MaximumSizeHelpText": "A kiadás maximális mérete MB-ban. Állítsd nullára a korlátlan értékre.",
|
||||
"Mechanism": "Mechanizmus",
|
||||
"MediaInfo": "Média Információ",
|
||||
"MediaManagementSettings": "Média Kezelési Beállítások",
|
||||
"Mechanism": "Gépezet",
|
||||
"MediaInfo": "Média információ",
|
||||
"MediaManagementSettings": "Médiakezelési beállítások",
|
||||
"Message": "Üzenet",
|
||||
"MetadataSettings": "Metaadat Beállítások",
|
||||
"MinimumAge": "Minimális Kor",
|
||||
"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.",
|
||||
"MinimumFreeSpace": "Minimális Szabad Tárhely",
|
||||
"MinimumFreeSpace": "Minimális szabad hely",
|
||||
"MinimumFreeSpaceWhenImportingHelpText": "Akadályozza meg az importálást, ha ennél kevesebb lemezterület maradna",
|
||||
"MinimumLimits": "Minimális Határ",
|
||||
"MinimumLimits": "Minimális korlátok",
|
||||
"Missing": "Hiányzó",
|
||||
"Mode": "Mód",
|
||||
"Monitored": "Felügyelt",
|
||||
"MoreInfo": "Több Információ",
|
||||
"MoreInfo": "Több információ",
|
||||
"MustContain": "Tartalmaznia kell",
|
||||
"MustNotContain": "Nem tartalmazhatja",
|
||||
"MustNotContain": "Nem tartalmazhat",
|
||||
"Name": "Név",
|
||||
"NamingSettings": "Elnevezési beállítások",
|
||||
"New": "Új",
|
||||
"NoBackupsAreAvailable": "Nincs elérhető biztonsági mentés",
|
||||
"NoBackupsAreAvailable": "Nincsenek biztonsági mentések",
|
||||
"NoHistory": "Nincs(enek) előzmény(ek).",
|
||||
"NoLeaveIt": "Nem, hagyd így",
|
||||
"NoLimitForAnyRuntime": "Nincs futási idő korlát",
|
||||
"NoLogFiles": "Nincsen log fájl",
|
||||
"NoLeaveIt": "Nem, Hagyd",
|
||||
"NoLimitForAnyRuntime": "Nincs korlátozás semmilyen futási időre",
|
||||
"NoLogFiles": "Nincsenek naplófájlok",
|
||||
"NoMinimumForAnyRuntime": "Nincs minimális futásidő",
|
||||
"NoUpdatesAreAvailable": "Nincsenek elérhető frissítések",
|
||||
"NotificationTriggers": "Értesítés(ek) kiváltója",
|
||||
"NoUpdatesAreAvailable": "Nem érhetők el frissítések",
|
||||
"NotificationTriggers": "Értesítési triggerek",
|
||||
"OnGrabHelpText": "Kiválasztás alatt",
|
||||
"OnHealthIssueHelpText": "Állapotprobléma",
|
||||
"OnRenameHelpText": "Átnevezés alatt",
|
||||
@@ -234,7 +234,7 @@
|
||||
"ProxyType": "Proxy Típusa",
|
||||
"ProxyUsernameHelpText": "Csak akkor kell megadnod felhasználónevet és jelszót, ha szükséges. Egyébként hagyd üresen.",
|
||||
"PublishedDate": "Közzététel dátuma",
|
||||
"Quality": "minőség",
|
||||
"Quality": "Minőség",
|
||||
"QualityDefinitions": "Minőségi meghatározások",
|
||||
"QualityProfile": "Minőségi profil",
|
||||
"QualityProfiles": "Minőségi profilok",
|
||||
@@ -242,25 +242,25 @@
|
||||
"Queue": "Várakozási sor",
|
||||
"RSSSync": "RSS Szinkronizálás",
|
||||
"RSSSyncInterval": "RSS Szikronizálás Intervalluma",
|
||||
"ReadTheWikiForMoreInformation": "Olvasd el a Wiki-t további információkért",
|
||||
"ReadTheWikiForMoreInformation": "További információkért olvassa el a Wikit",
|
||||
"ReadarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "A Radarr minden indexert támogat, amely a Newznab szabványt használja, valamint az alább felsorolt egyéb indexereket.",
|
||||
"ReadarrTags": "Radarr Címkék",
|
||||
"Real": "Igazi",
|
||||
"Real": "Igaz",
|
||||
"Reason": "Ok",
|
||||
"RecycleBinCleanupDaysHelpText": "Állítsd 0-ra az automatikus tisztítás letiltásához",
|
||||
"RecycleBinCleanupDaysHelpTextWarning": "A kiválasztott napoknál régebbi fájlok a lomtárban automatikusan törlésre kerülnek",
|
||||
"RecycleBinHelpText": "A filmfájlok végleges törlés helyett ide kerülnek törléskor",
|
||||
"RecyclingBin": "Lomtár",
|
||||
"RecyclingBinCleanup": "Lomtár kiürítése",
|
||||
"RecyclingBinCleanup": "Lomtár tisztítása",
|
||||
"Redownload": "Letöltés újra",
|
||||
"Refresh": "Frissítés",
|
||||
"RefreshInformationAndScanDisk": "Információk frissítése és lemez átvizsgálása",
|
||||
"ReleaseDate": "Megjelenés Dátuma",
|
||||
"ReleaseGroup": "Kiadási Csoport",
|
||||
"ReleaseGroup": "Release csapat",
|
||||
"ReleaseRejected": "Kiadás elutasítva",
|
||||
"ReleaseWillBeProcessedInterp": "A kiadás feldolgozása {0}",
|
||||
"Reload": "Újratöltés",
|
||||
"RemotePathMappings": "Távoli Elérési Útvonal",
|
||||
"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",
|
||||
@@ -282,10 +282,10 @@
|
||||
"Reset": "Visszaállítás",
|
||||
"ResetAPIKey": "API Kulcs visszaállítása",
|
||||
"ResetAPIKeyMessageText": "Biztos hogy vissza szeretnéd állítani az API-Kulcsod?",
|
||||
"Restart": "Újraindítás",
|
||||
"Restart": "Újrakezd",
|
||||
"RestartNow": "Újraindítás Most",
|
||||
"RestartReadarr": "Radarr Újraindítása",
|
||||
"Restore": "Visszaállítás",
|
||||
"Restore": "Visszaállít",
|
||||
"RestoreBackup": "Biztonsági mentés visszaállítása",
|
||||
"Result": "Eredmény",
|
||||
"Retention": "Visszatartás",
|
||||
@@ -305,26 +305,26 @@
|
||||
"SearchSelected": "Kiválasztottak keresése",
|
||||
"Security": "Biztonság",
|
||||
"SendAnonymousUsageData": "Névtelen használati adatok küldése",
|
||||
"SetPermissions": "Engedélyek beállítása",
|
||||
"SetPermissions": "Állítsa be az engedélyeket",
|
||||
"SetPermissionsLinuxHelpText": "Futtatni kell a chmod-ot fájlok importálásakor / átnevezésekor?",
|
||||
"SetPermissionsLinuxHelpTextWarning": "Ha nem vagy biztos abban, hogy ezek a beállítások mit csinálnak, ne változtasd meg őket.",
|
||||
"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",
|
||||
"ShowCutoffUnmetIconHelpText": "Szimbólum megjelenítése, ha a minőségi küszöböt még nem érték el",
|
||||
"ShowDateAdded": "Hozzáadás dátuma",
|
||||
"ShowMonitored": "Monitorozottak mutatása",
|
||||
"ShowMonitoredHelpText": "Monitorozott státusz kijelzése a poszter alatt",
|
||||
"ShowPath": "Útvonal mutatása",
|
||||
"ShowQualityProfile": "Minőségi profil megjelenítése",
|
||||
"ShowQualityProfileHelpText": "Minőségi profil megjelenítése a poszter alatt",
|
||||
"ShowDateAdded": "Hozzáadás dátumának megjelenítése",
|
||||
"ShowMonitored": "Megfigyelt megjelenítése",
|
||||
"ShowMonitoredHelpText": "A figyelt állapot megjelenítése a plakát alatt",
|
||||
"ShowPath": "Útvonal megjelenítése",
|
||||
"ShowQualityProfile": "Minőségi Profil mutatása",
|
||||
"ShowQualityProfileHelpText": "Minőségi profil megjelenítése a plakát alatt",
|
||||
"ShowRelativeDates": "Relatív dátumok megjelenítése",
|
||||
"ShowRelativeDatesHelpText": "Relatív (Ma / Tegnap / stb.) vagy valós dátumok megjelenítése",
|
||||
"ShowSearch": "Keresés(ek) megjelenítése",
|
||||
"ShowSearch": "Keresés mutatása",
|
||||
"ShowSearchActionHelpText": "A kereső gomb megjelenítése az egérrel",
|
||||
"ShowSizeOnDisk": "Használt hely megjelenítése",
|
||||
"ShowSizeOnDisk": "Méret megjelenítése a lemezen",
|
||||
"ShownAboveEachColumnWhenWeekIsTheActiveView": "Minden oszlop felett jelenjen meg, hogy melyik hét az aktuális",
|
||||
"Size": " Méret",
|
||||
"SkipFreeSpaceCheck": "A szabad hely ellenőrzésének kihagyása",
|
||||
"SkipFreeSpaceCheck": "Kihagyja a szabad hely ellenőrzését",
|
||||
"SkipFreeSpaceCheckWhenImportingHelpText": "Akkor használja, ha a Readarr nem képes felismerni a gyökérmappában lévő szabad helyet",
|
||||
"SorryThatAuthorCannotBeFound": "Sajnáljuk, ez a film nem található.",
|
||||
"SorryThatBookCannotBeFound": "Sajnáljuk, ez a film nem található.",
|
||||
@@ -400,7 +400,7 @@
|
||||
"AgeWhenGrabbed": "Életkor (amikor megragadták)",
|
||||
"AlreadyInYourLibrary": "Már a könyvtárban",
|
||||
"UnableToLoadRemotePathMappings": "Nem lehet betölteni a Távoli útvonal-hozzárendeléseket",
|
||||
"None": "Nincs",
|
||||
"None": "Egyik sem",
|
||||
"UnableToLoadRootFolders": "Nem lehet betölteni a gyökérmappákat",
|
||||
"Tags": "Címkék",
|
||||
"UnableToLoadTags": "Nem sikerült betölteni a címkéket",
|
||||
@@ -428,7 +428,7 @@
|
||||
"Version": "Verzió",
|
||||
"WeekColumnHeader": "Heti oszlopfejléc",
|
||||
"Year": "Év",
|
||||
"YesCancel": "Igen, Mégsem",
|
||||
"YesCancel": "Igen, elvet",
|
||||
"AllExpandedCollapseAll": "Összes becsukása",
|
||||
"AllowFingerprintingHelpText": "Használja az ujjlenyomatot a könyvillesztés pontosságának javításához",
|
||||
"AllowFingerprintingHelpTextWarning": "Ehhez a Readarr-nak el kell olvasnia a fájl olyan részeit, amelyek lelassítják a beolvasást, és magas lemez- vagy hálózati aktivitást okozhatnak.",
|
||||
@@ -486,9 +486,9 @@
|
||||
"DeleteBookFile": "Könyvfájl törlése",
|
||||
"DeleteBookFileMessageText": "Biztosan törli a következőt: {0}?",
|
||||
"DeleteFilesHelpText": "Törölje a könyvfájlokat és a szerzői mappát",
|
||||
"DeleteImportList": "Importlista törlése",
|
||||
"DeleteImportList": "Importálási lista törlése",
|
||||
"DeleteMetadataProfile": "Metaadat-profil törlése",
|
||||
"DeleteRootFolder": "Gyökérmappa törlése",
|
||||
"DeleteRootFolder": "Gyökérmappa törlés",
|
||||
"Development": "Fejlesztés",
|
||||
"DiscCount": "Lemezszám",
|
||||
"DiscNumber": "Lemez száma",
|
||||
@@ -540,14 +540,14 @@
|
||||
"LogRotation": "Napló forgatása",
|
||||
"LogSQL": "Naplózza az SQL-t",
|
||||
"LogSqlHelpText": "Naplózza az összes SQL-lekérdezést a Readarr-ból",
|
||||
"MaintenanceRelease": "Karbantartási frissítés: hibajavítások és egyéb fejlesztések. További részletekért lásd: Github Commit History",
|
||||
"MaintenanceRelease": "Karbantartási kiadás: hibajavítások és egyéb fejlesztések. További részletekért lásd: Github Commit History",
|
||||
"ManualDownload": "Kézi letöltés",
|
||||
"MetadataConsumers": "Metaadat-fogyasztók",
|
||||
"MetadataProfile": "Metaadat-profil",
|
||||
"MetadataProfileIdHelpText": "A Metaadat-profil listaelemeket hozzá kell adni a",
|
||||
"MetadataProfiles": "Metaadat-profilok",
|
||||
"MetadataProviderSource": "Metaadat-szolgáltató forrása",
|
||||
"MetadataSource": "Metaadat-forrás",
|
||||
"MetadataSource": "Metaadatforrás",
|
||||
"MetadataSourceHelpText": "Alternatív metaadat-forrás (hagyd üresen az alapértelmezéshez)",
|
||||
"MinPopularityHelpText": "A népszerűség átlagos értékelése * szavazatok száma",
|
||||
"MinimumPopularity": "Minimális népszerűség",
|
||||
@@ -596,7 +596,7 @@
|
||||
"StatusEndedContinuing": "Folytatás",
|
||||
"SpecificBook": "Konkrét könyv",
|
||||
"SkipSecondarySeriesBooks": "A másodlagos sorozatú könyvek kihagyása",
|
||||
"SkipRedownload": "Az újraletöltés átugrása",
|
||||
"SkipRedownload": "Az újraletöltés kihagyása",
|
||||
"SkipPartBooksAndSets": "Részletkönyvek és könyvkészlet(ek) kihagyása",
|
||||
"SkipBooksWithNoISBNOrASIN": "ISBN vagy ASIN nélküli könyvek kihagyása",
|
||||
"SkipBooksWithMissingReleaseDate": "Hagyja ki a hiányzó megjelenési dátummal rendelkező könyveket",
|
||||
@@ -624,7 +624,7 @@
|
||||
"RescanAfterRefreshHelpText": "A szerző frissítése után vizsgálja át a szerzői mappát",
|
||||
"ReplaceIllegalCharactersHelpText": "Helyettesítse az illegális karaktereket. Ha nincs bejelölve, akkor a Readarr eltávolítja őket",
|
||||
"RenameBooks": "Könyvek átnevezése",
|
||||
"ReleaseProfiles": "Kiadási profilok",
|
||||
"ReleaseProfiles": "Release profilok",
|
||||
"RefreshInformation": "Információk frissítése",
|
||||
"RefreshAuthor": "Szerző frissítése",
|
||||
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "A Readarr több listát is támogat a Könyvek és Szerzők adatbázisba történő importálásához.",
|
||||
@@ -673,7 +673,7 @@
|
||||
"NotMonitored": "Nincs monitorozva",
|
||||
"ShowBookTitleHelpText": "Mutasd a filmcímet a poszter alatt",
|
||||
"ShowReleaseDate": "Megjelenés dátuma",
|
||||
"ShowTitle": "Cím megjelenítése",
|
||||
"ShowTitle": "Cím mutatása",
|
||||
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "A '{0}' film mappája és annak tartalma törlésre kerül.",
|
||||
"BookMonitoring": "Könyv Figyelés",
|
||||
"BooksTotal": "Könyvek ({0})",
|
||||
@@ -685,11 +685,11 @@
|
||||
"SeriesTotal": "Sorozat ({0})",
|
||||
"TooManyBooks": "Hiányzik valamelyik, vagy túl sok a könyv? Módosíts vagy hozzon létre újat",
|
||||
"BlocklistRelease": "Blokklista Release",
|
||||
"NoHistoryBlocklist": "Nincs blokkolási előzménylista",
|
||||
"NoHistoryBlocklist": "Nincs előzmény a tiltólistán",
|
||||
"Blocklist": "Feketelista",
|
||||
"RemoveFromBlocklist": "Eltávolítás a feketelistáról",
|
||||
"UnableToLoadBlocklist": "Nem sikerült betölteni a feketelistát",
|
||||
"Component": "Komponens",
|
||||
"Component": "Összetevő",
|
||||
"Level": "Szint",
|
||||
"ReleaseBranchCheckOfficialBranchMessage": "A(z) {0} nem érvényes Readarr frissítési ágazat, ezért nem kap frissítéseket",
|
||||
"Time": "Idő",
|
||||
@@ -761,7 +761,7 @@
|
||||
"UserAgentProvidedByTheAppThatCalledTheAPI": "Az API-t hívó alkalmazás biztosítja a User-Agent szolgáltatást",
|
||||
"Yesterday": "Tegnap",
|
||||
"IndexerJackettAll": "A nem támogatott Jackett „összes” végpontot használó indexelők: {0}",
|
||||
"DownloadClientsSettingsSummary": "Letöltőkliensek, letöltések kezelése, és távoli elérési útvonalak",
|
||||
"DownloadClientsSettingsSummary": "Kliensek letöltése, letöltéskezelés és távoli útvonalleképezések",
|
||||
"Duration": "Időtartam",
|
||||
"ForeignId": "Külföldi azonosító",
|
||||
"ProxyCheckBadRequestMessage": "Proxy tesztelése sikertelen. Állapotkód: {0}",
|
||||
@@ -782,10 +782,10 @@
|
||||
"IndexerRssHealthCheckNoIndexers": "Nincs elérhető indexer RSS szinkronizálással, így a Readarr nem fogja automatikusan megragadni az új kiadásokat",
|
||||
"IndexerSearchCheckNoAvailableIndexersMessage": "Az összes keresésre képes indexer átmenetileg nem elérhető, a legutóbbi indexelő hibák miatt",
|
||||
"Lists": "Listák",
|
||||
"Metadata": "metaadat",
|
||||
"Monitor": "Monitorozni",
|
||||
"Metadata": "Metaadat",
|
||||
"Monitor": "Monitor",
|
||||
"MountCheckMessage": "A szerzőt tartalmazó mappa csak olvasható: ",
|
||||
"Queued": "Sorba helyezve",
|
||||
"Queued": "Sorban",
|
||||
"RemotePathMappingCheckFileRemoved": "A(z) {0} fájlt a feldolgozás során eltávolították.",
|
||||
"RemotePathMappingCheckFilesGenericPermissions": "A letöltőkliens {0} jelentett fájljait a(z) {1} fájlba, de a Readarr nem látja ezt a könyvtárat. Lehet, hogy módosítania kell a mappa engedélyeit.",
|
||||
"RemotePathMappingCheckFilesWrongOSPath": "A távoli letöltőkliens {0} fájlokat jelentett a(z) {1} fájlban, de ez nem érvényes {2} elérési út. Ellenőrizze a távoli elérési utak hozzárendelését és a letöltőkliens beállításait.",
|
||||
@@ -816,14 +816,14 @@
|
||||
"HealthNoIssues": "Nincs hiba a konfigurációval",
|
||||
"ImportListStatusCheckAllClientMessage": "Az összes lista elérhetetlen, hiba miatt",
|
||||
"IndexerStatusCheckSingleClientMessage": "Indexerek elérhetetlenek a következő hiba miatt: {0}",
|
||||
"MediaManagement": "Média Kezelés",
|
||||
"MediaManagement": "Médiakezelés",
|
||||
"ProxyCheckFailedToTestMessage": "Proxy tesztelése sikertelen: {0}",
|
||||
"RefreshAndScan": "Frissítés & Keresés",
|
||||
"RefreshAndScan": "Frissítés és Keresés",
|
||||
"RemotePathMappingCheckDownloadPermissions": "A Readarr láthatja, de nem fér hozzá a letöltött filmhez {0}. Valószínűleg engedélyezési hiba.",
|
||||
"RootFolderCheckMultipleMessage": "Több gyökérmappa hiányzik: {0}",
|
||||
"SettingsRemotePathMappingLocalPath": "Helyi útvonal",
|
||||
"SizeLimit": "Méretkorlát",
|
||||
"Started": "Elkezdődött",
|
||||
"Started": "Elindult",
|
||||
"TimeLeft": "Hátralévő idő",
|
||||
"UpdateCheckStartupNotWritableMessage": "A frissítés nem telepíthető, mert a (z) „{0}” indítási mappát a „{1}” felhasználó nem írhatja.",
|
||||
"UpdateCheckStartupTranslocationMessage": "Nem lehet telepíteni a frissítést, mert a (z) „{0}” indítási mappa az Alkalmazások Transzlokációs mappájában található.",
|
||||
@@ -856,17 +856,17 @@
|
||||
"ManualImportSelectEdition": "Kézi importálás – Válaszd ki a Kiadást",
|
||||
"Database": "Adatbázis",
|
||||
"ApplicationURL": "Alkalmazás URL",
|
||||
"ApplicationUrlHelpText": "Az alkalmazás külső URL-címe, beleértve a http(s)://-t, a portot és az URL-alapot",
|
||||
"ApplicationUrlHelpText": "Ennek az alkalmazásnak a külső URL-címe, beleértve a http-eket",
|
||||
"ChooseImportMethod": "Importálási mód kiválasztása",
|
||||
"ClickToChangeReleaseGroup": "Kattintson a kiadási csoport módosításához",
|
||||
"HardlinkCopyFiles": "Hardlinkelés/Fájl(ok) Másolása",
|
||||
"MoveFiles": "Fájl(ok) mozgatása",
|
||||
"MoveFiles": "Fájlok áthelyezése",
|
||||
"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",
|
||||
"EnableRssHelpText": "Akkor használatos, amikor a Radarr rendszeresen keres kiadásokat az RSS Sync segítségével",
|
||||
"MinimumCustomFormatScore": "Minimum Egyéni Formátum száma",
|
||||
"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",
|
||||
"CloneCustomFormat": "Egyéni formátum klónozása",
|
||||
@@ -880,7 +880,7 @@
|
||||
"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?",
|
||||
"ExportCustomFormat": "Egyéni formátum exportálása",
|
||||
"Formats": "Formátumok",
|
||||
"Formats": "Formátum",
|
||||
"IncludeCustomFormatWhenRenamingHelpText": "Tartalmazza a(z) {Custom Formats} átnevezési formátumot",
|
||||
"MinFormatScoreHelpText": "A letöltéshez engedélyezett minimális egyéni formátum pontszám",
|
||||
"NegateHelpText": "Ha be van jelölve, az egyéni formátum nem lesz érvényes, ha ez a(z) {0} feltétel megegyezik.",
|
||||
@@ -910,22 +910,22 @@
|
||||
"RemoveSelectedItemsQueueMessageText": "Biztosan el akar távolítani {0} elemet a várólistáról?",
|
||||
"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ény",
|
||||
"NoEventsFound": "Nem található események",
|
||||
"ResetQualityDefinitions": "Állítsd vissza a minőségi meghatározásokat",
|
||||
"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",
|
||||
"ApplyTagsHelpTextReplace": "Csere: Cserélje ki a címkéket a beírt címkékre (az összes címke törléséhez ne adjon meg címkéket)",
|
||||
"ApplyTagsHelpTextReplace": "Csere: Cserélje ki a címkéket a megadott címkékkel (az összes címke törléséhez ne írjon be címkéket)",
|
||||
"AutomaticAdd": "Automatikus hozzáadás",
|
||||
"EditSelectedImportLists": "Kiválasztott import listák szerkesztése",
|
||||
"RemoveFailed": "Eltávolítás Sikertelen",
|
||||
"EditSelectedImportLists": "Kijelölt importálási listák szerkesztése",
|
||||
"RemoveFailed": "Eltávolítás nem sikerült",
|
||||
"RemoveFailedDownloads": "Sikertelen letöltések eltávolítása",
|
||||
"SetTags": "Címkék beállítása",
|
||||
"Yes": "Igen",
|
||||
"BlocklistReleases": "Feketelista kiadása",
|
||||
"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",
|
||||
"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é.",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Címkék alkalmazása a kiválasztott letöltési kliensekre",
|
||||
"ApplyChanges": "Változások alkalmazása",
|
||||
@@ -935,34 +935,34 @@
|
||||
"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?",
|
||||
"DeleteSelectedDownloadClients": "Letöltőkliens Törlése",
|
||||
"DeleteSelectedImportLists": "Importlista törlése",
|
||||
"DeleteSelectedIndexers": "Indexer Törlése",
|
||||
"DeleteSelectedDownloadClients": "Letöltési kliens(ek) törlése",
|
||||
"DeleteSelectedImportLists": "Importálási lista(k) törlése",
|
||||
"DeleteSelectedIndexers": "Indexelő(k) törlése",
|
||||
"DownloadClientTagHelpText": "Csak olyan filmekhez használja ezt az indexelőt, amelyek legalább egy megfelelő címkével rendelkeznek. Hagyja üresen az összes filmhez való használathoz.",
|
||||
"EditSelectedDownloadClients": "Kiválasztott letöltési kliensek szerkesztése",
|
||||
"EditSelectedDownloadClients": "Kijelölt letöltési kliensek szerkesztése",
|
||||
"EditSelectedIndexers": "Kiválasztott indexelők szerkesztése",
|
||||
"ExistingTag": "Meglévő Címke",
|
||||
"Negated": "Megtagadva",
|
||||
"ExistingTag": "Létező címke",
|
||||
"Negated": "Negatív",
|
||||
"No": "Nem",
|
||||
"NoChange": "Nincs változtatás",
|
||||
"NoChange": "Nincs változás",
|
||||
"RemoveCompletedDownloads": "Befejezett letöltések eltávolítása",
|
||||
"RemovingTag": "Címke eltávolítása",
|
||||
"NextExecution": "Következő végrehajtás",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Összes alkalmazás elérhetetlen hiba miatt",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Az összes értesítés nem érhető el hibák miatt",
|
||||
"NotificationStatusSingleClientHealthCheckMessage": "Az alkalmazás nem áll rendelkezésre az alábbi hibák miatt: {0}",
|
||||
"Small": "kicsi",
|
||||
"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",
|
||||
"NoResultsFound": "Nem eredményezett találatot",
|
||||
"SomeResultsAreHiddenByTheAppliedFilter": "Néhány találat nem látható az alkalmazott szűrők miatt",
|
||||
"NoResultsFound": "Nincs találat",
|
||||
"SomeResultsAreHiddenByTheAppliedFilter": "Néhány eredményt elrejtett az alkalmazott szűrő",
|
||||
"System": "Rendszer",
|
||||
"TotalSpace": "Összesített terület",
|
||||
"Ui": "Felület",
|
||||
"ConnectionLost": "Kapcsolódás Elveszett",
|
||||
"ConnectionLostReconnect": "A Radarr megpróbál automatikusan csatlakozni, vagy kattints a frissítés gombra.",
|
||||
"ConnectionLostToBackend": "A Radarr elvesztette kapcsolatát a háttérrendszerrel, a funkciók helyreállításához frissíts.",
|
||||
"RecentChanges": "Friss változtatások",
|
||||
"ConnectionLost": "A kapcsolat megszakadt",
|
||||
"ConnectionLostReconnect": "A(z) {appName} automatikusan megpróbál csatlakozni, vagy kattintson az újratöltés gombra lent.",
|
||||
"ConnectionLostToBackend": "A(z) {appName} megszakadt a kapcsolat a háttérrendszerrel, ezért újra kell tölteni a működés visszaállításához.",
|
||||
"RecentChanges": "Friss változások",
|
||||
"WhatsNew": "Mi az újdonság?",
|
||||
"Large": "Óriási",
|
||||
"LastDuration": "Utolsó időtartam",
|
||||
@@ -973,12 +973,33 @@
|
||||
"AllResultsAreHiddenByTheAppliedFilter": "Az összes eredményt elrejti az alkalmazott szűrő",
|
||||
"Activity": "Aktivitás",
|
||||
"AddNew": "Új hozzáadása",
|
||||
"Backup": "biztonsági mentés",
|
||||
"Backup": "Biztonsági mentés",
|
||||
"Medium": "Közepes",
|
||||
"AutoAdd": "Automatikus hozzáadás",
|
||||
"ExtraFileExtensionsHelpText": "Az importálandó extra fájlok vesszővel lesznek elválasztva (.nfo .nfo-orig néven lesz importálva)",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Például: '.sub, .nfo' vagy 'sub, nfo'",
|
||||
"ExtraFileExtensionsHelpTextsExamples": "Példák: \".sub, .nfo\" vagy \"sub,nfo\"",
|
||||
"Implementation": "Végrehajtás",
|
||||
"Clone": "Klón",
|
||||
"AppUpdated": "{appName} frissítve"
|
||||
"AppUpdated": "{appName} frissítve",
|
||||
"ManageLists": "Listák kezelése",
|
||||
"NoDownloadClientsFound": "Nem találhatók letöltő kliensek",
|
||||
"NoImportListsFound": "Nem található importálási lista",
|
||||
"AutoRedownloadFailed": "Az újraletöltés nem sikerült",
|
||||
"ManageIndexers": "Indexelők kezelése",
|
||||
"ManageImportLists": "Importálási listák kezelése",
|
||||
"NoIndexersFound": "Nem található indexelő",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "Az újraletöltés nem sikerült az interaktív keresésből",
|
||||
"DeleteRemotePathMappingMessageText": "Biztosan törli ezt a távoli útvonal-leképezést?",
|
||||
"AutomaticUpdatesDisabledDocker": "Az automatikus frissítések közvetlenül nem támogatottak a Docker frissítési mechanizmus használatakor. Frissítenie kell a tároló képét a {appName} alkalmazáson kívül, vagy szkriptet kell használnia",
|
||||
"DeleteSelectedDownloadClientsMessageText": "Biztosan törölni szeretné a kiválasztott {count} letöltési klienst?",
|
||||
"SmartReplace": "Intelligens csere",
|
||||
"DeleteSelectedImportListsMessageText": "Biztosan törölni szeretne {count} kiválasztott importlistát?",
|
||||
"DeleteSelectedIndexersMessageText": "Biztosan törölni szeretne {count} kiválasztott indexelőt?",
|
||||
"ManageClients": "Ügyfelek kezelése",
|
||||
"ManageDownloadClients": "Letöltési kliensek kezelése",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Tartalom elrendezése",
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"CreateGroup": "Búðu til hóp",
|
||||
"CutoffHelpText": "Þegar þessum gæðum er náð mun Radarr ekki lengur hlaða niður kvikmyndum",
|
||||
"CutoffUnmet": "Cut-off Ómetið",
|
||||
"DBMigration": "DB fólksflutningar",
|
||||
"DatabaseMigration": "DB fólksflutningar",
|
||||
"Dates": "Dagsetningar",
|
||||
"DelayProfile": "Seinka prófíl",
|
||||
"DelayProfiles": "Seinka snið",
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
"YesCancel": "Si, Cancella",
|
||||
"AgeWhenGrabbed": "Età (quando recuperato)",
|
||||
"AlreadyInYourLibrary": "Già presente nella tua libreria",
|
||||
"AlternateTitles": "Titoli Alternativi",
|
||||
"Analytics": "Analitica",
|
||||
"AlternateTitles": "Titolo alternativo",
|
||||
"Analytics": "Statistiche",
|
||||
"AnalyticsEnabledHelpText": "Inviare informazioni anonime sull'utilizzo e sugli errori ai server di Readarr. Ciò include informazioni sul tuo browser, quali pagine dell'interfaccia di Readarr usi, la segnalazione di errori così come la versione del sistema operativo e del runtime. Utilizzeremo queste informazioni per dare priorità alle nuove funzioni e alle correzioni di bug.",
|
||||
"AppDataDirectory": "Cartella AppData",
|
||||
"ApplyTags": "Applica Etichette",
|
||||
@@ -39,10 +39,10 @@
|
||||
"Automatic": "Automatico",
|
||||
"BackupFolderHelpText": "I percorsi relativi saranno nella cartella AppData di Readarr",
|
||||
"BackupNow": "Esegui backup ora",
|
||||
"BackupRetentionHelpText": "I backup automatici più vecchi del periodo di conservazione verranno eliminati automaticamente",
|
||||
"BackupRetentionHelpText": "I backup più vecchi del periodo specificato saranno cancellati automaticamente",
|
||||
"Backups": "Backups",
|
||||
"BindAddress": "Indirizzo di Bind",
|
||||
"BindAddressHelpText": "Indirizzo IP valido, localhost o '*' per tutte le interfacce di rete",
|
||||
"BindAddress": "Indirizzo di Ascolto",
|
||||
"BindAddressHelpText": "Indirizzi IP validi, localhost o '*' per tutte le interfacce",
|
||||
"BindAddressHelpTextWarning": "Richiede il riavvio per avere effetto",
|
||||
"BookIsDownloading": "Libro in download",
|
||||
"BookIsDownloadingInterp": "Libro in download - {0}% {1}",
|
||||
@@ -59,24 +59,24 @@
|
||||
"ChmodFolder": "Permessi Cartella",
|
||||
"ChmodFolderHelpText": "Octal, applicato durante l'importazione/rinomina verso cartelle e file (senza bits di esecuzione)",
|
||||
"ChmodFolderHelpTextWarning": "Funziona solo se l'utente di Radarr è il proprietario del file. E' meglio assicurarsi che i client di download impostino i permessi correttamente.",
|
||||
"ChownGroupHelpText": "Nome Gruppo o guida. Usa guida per sistemi remoti.",
|
||||
"ChownGroupHelpText": "Nome del gruppo o gid. Usa gid per sistemi di file remoti.",
|
||||
"ChownGroupHelpTextWarning": "Funziona solo se l'utente di Radarr è il proprietario del file. E' meglio assicurarsi che i client di download usino lo stesso gruppo di Radarr.",
|
||||
"Clear": "Cancella",
|
||||
"ClickToChangeQuality": "Clicca per cambiare qualità",
|
||||
"ClientPriority": "Priorità del Client",
|
||||
"CloneProfile": "Clona il Profilo",
|
||||
"ClickToChangeQuality": "Click per cambiare qualità",
|
||||
"ClientPriority": "Priorità Client",
|
||||
"CloneProfile": "Copia Profilo",
|
||||
"Close": "Chiudi",
|
||||
"Columns": "Colonne",
|
||||
"CompletedDownloadHandling": "Gestione dei Download Completati",
|
||||
"ConnectSettings": "Impostazioni di Connessione",
|
||||
"Connections": "Collegamenti",
|
||||
"ConnectSettings": "Impostazioni Collegamento",
|
||||
"Connections": "Connessioni",
|
||||
"CopyUsingHardlinksHelpText": "Utilizzare gli Hardlink quando si cerca di copiare file di un torrent che è ancora in seeding",
|
||||
"CopyUsingHardlinksHelpTextWarning": "Occasionalmente i file bloccatti possono impedire la rinomina dei file in seeding. Puoi disattivare temporaneamente il seeding e utilizzare la funzione di rinomina di Readarr per evitare il problema.",
|
||||
"CreateEmptyAuthorFoldersHelpText": "Crea le cartelle dei film mancanti durante la scansione del disco",
|
||||
"CreateGroup": "Crea gruppo",
|
||||
"CutoffHelpText": "Una volta raggiunta questa qualità, Radarr non scaricherà più film",
|
||||
"CutoffUnmet": "Soglia Non Raggiunta",
|
||||
"DBMigration": "Migrazione DB",
|
||||
"DatabaseMigration": "Migrazione DB",
|
||||
"Dates": "Date",
|
||||
"DelayProfile": "Profilo di Ritardo",
|
||||
"DelayProfiles": "Profili di Ritardo",
|
||||
@@ -86,7 +86,7 @@
|
||||
"DeleteBackupMessageText": "Sei sicuro di voler cancellare il backup '{0}'?",
|
||||
"DeleteDelayProfile": "Cancella Profilo di Ritardo",
|
||||
"DeleteDelayProfileMessageText": "Sei sicuro di voler cancellare questo profilo di ritardo?",
|
||||
"DeleteDownloadClient": "Cancella il Client di Download",
|
||||
"DeleteDownloadClient": "Cancella Client di Download",
|
||||
"DeleteDownloadClientMessageText": "Sei sicuro di voler eliminare il client di download '{0}'?",
|
||||
"DeleteEmptyFolders": "Cancella le cartelle vuote",
|
||||
"DeleteEmptyFoldersHelpText": "Cancellare le cartelle vuote dei film durante la scansione del disco e quando i file di film vengono cancellati",
|
||||
@@ -96,7 +96,7 @@
|
||||
"DeleteIndexer": "Cancella Indicizzatore",
|
||||
"DeleteIndexerMessageText": "Sicuro di voler eliminare l'indicizzatore '{0}'?",
|
||||
"DeleteMetadataProfileMessageText": "Sicuro di voler cancellare il profilo di qualità {0}",
|
||||
"DeleteNotification": "Cancella la Notifica",
|
||||
"DeleteNotification": "Cancella Notifica",
|
||||
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{0}'?",
|
||||
"DeleteQualityProfile": "Cancella il Profilo di Qualità",
|
||||
"DeleteQualityProfileMessageText": "Sicuro di voler cancellare il profilo di qualità {0}",
|
||||
@@ -452,7 +452,7 @@
|
||||
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "La cartella del film \"{0}\" e tutto il suo contenuto verranno eliminati.",
|
||||
"Today": "Oggi",
|
||||
"Tomorrow": "Domani",
|
||||
"CloneIndexer": "Clona Indicizzatore",
|
||||
"CloneIndexer": "Copia Indicizzatore",
|
||||
"RemoveFromBlocklist": "Rimuovi della blacklist",
|
||||
"Time": "Ora",
|
||||
"Label": "Etichetta",
|
||||
@@ -546,7 +546,7 @@
|
||||
"FileWasDeletedByUpgrade": "Il file è stato eliminato per importare un aggiornamento",
|
||||
"FileWasDeletedByViaUI": "Il file è stato eliminato tramite l'interfaccia utente",
|
||||
"Yesterday": "Ieri",
|
||||
"Connect": "Collega",
|
||||
"Connect": "Collegamento",
|
||||
"Disabled": "Disabilitato",
|
||||
"DownloadClientCheckUnableToCommunicateMessage": "Impossibile comunicare con {0}.",
|
||||
"IndexerPriorityHelpText": "Priorità dell'indexer da 1 (più alto) a 50 (più basso). Default: 25.",
|
||||
@@ -611,10 +611,10 @@
|
||||
"ApplicationUrlHelpText": "L'URL esterno di questa applicazione, incluso http(s)://, porta e URL base",
|
||||
"CatalogNumber": "Numero Catalogo",
|
||||
"Country": "Nazione",
|
||||
"Continuing": "Continuando",
|
||||
"Continuing": "In Corso",
|
||||
"EditList": "Modifica Lista",
|
||||
"EnableProfile": "Abilita Profilo",
|
||||
"ChownGroup": "chown Group",
|
||||
"ChownGroup": "Gruppo chown",
|
||||
"DiscNumber": "Numero Disco",
|
||||
"DeleteImportList": "Cancella la lista di importazione",
|
||||
"DeleteRootFolder": "Cancella la cartella principale",
|
||||
@@ -649,9 +649,9 @@
|
||||
"OnApplicationUpdateHelpText": "All'aggiornamento dell'applicazione",
|
||||
"ThemeHelpText": "Cambia il Tema dell'interfaccia dell’applicazione, il Tema 'Auto' userà il suo Tema di Sistema per impostare la modalità Chiara o Scura. Ispirato da {0}",
|
||||
"BypassIfHighestQuality": "Aggira se è di Qualità Massima",
|
||||
"CustomFormatScore": "Punteggio del Formato Personalizzato",
|
||||
"CustomFormatScore": "Formato Personalizzato Punteggio",
|
||||
"MinimumCustomFormatScore": "Punteggio formato personalizzato minimo",
|
||||
"CloneCustomFormat": "Duplica Formato Personalizzato",
|
||||
"CloneCustomFormat": "Copia Formato Personalizzato",
|
||||
"Conditions": "Condizioni",
|
||||
"CopyToClipboard": "Copia negli Appunti",
|
||||
"CustomFormats": "Formati Personalizzati",
|
||||
@@ -667,7 +667,7 @@
|
||||
"UnableToLoadCustomFormats": "Non riesco a caricare i formati personalizzati",
|
||||
"UpgradesAllowed": "Aggiornamenti consentiti",
|
||||
"Theme": "Tema",
|
||||
"CustomFormat": "Formati Personalizzati",
|
||||
"CustomFormat": "Formato Personalizzato",
|
||||
"CustomFormatSettings": "Impostazioni dei Formati Personalizzati",
|
||||
"IndexerTagsHelpText": "Usa questo indicizzatore per i film con almeno un tag corrispondente. Lascia in bianco per usarlo con tutti i film.",
|
||||
"ImportListMissingRoot": "Persa la cartella principale per l’importazione delle liste : {0}",
|
||||
@@ -697,8 +697,8 @@
|
||||
"RemoveFailed": "Rimozione fallita",
|
||||
"RemoveSelectedItemsQueueMessageText": "Sei sicuro di voler rimuovere {0} dalla coda?",
|
||||
"ApplyTagsHelpTextAdd": "Aggiungi: Aggiunge le etichette alla lista esistente di etichette",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Come applicare etichette agli autori selezionati",
|
||||
"ApplyTagsHelpTextHowToApplyImportLists": "Come applicare etichette agli autori selezionati",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "Come applicare etichette ai client di download selezionati",
|
||||
"ApplyTagsHelpTextHowToApplyImportLists": "Come applicare etichette alle liste di importazione selezionate",
|
||||
"ApplyTagsHelpTextHowToApplyIndexers": "Come applicare etichette agli indicizzatori selezionati",
|
||||
"ApplyTagsHelpTextRemove": "Rimuovi: Rimuove le etichette inserite",
|
||||
"BlocklistReleaseHelpText": "Impedisci a Lidarr di re-acquisire automaticamente questa versione",
|
||||
@@ -723,5 +723,13 @@
|
||||
"AddNew": "Aggiungi Nuovo",
|
||||
"AutomaticAdd": "Aggiungi Automaticamente",
|
||||
"Backup": "Backup",
|
||||
"CloneCondition": "Duplica Condizione"
|
||||
"CloneCondition": "Duplica Condizione",
|
||||
"EditSelectedImportLists": "Modifica le Liste di Importazione Selezionate",
|
||||
"EditSelectedDownloadClients": "Modifica i Client di Download Selezionati",
|
||||
"Clone": "Copia",
|
||||
"DeleteCondition": "Cancella Condizione",
|
||||
"ConnectionLost": "Connessione Persa",
|
||||
"AppUpdated": "{appName} Aggiornato",
|
||||
"AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato",
|
||||
"AutoRedownloadFailed": "Download fallito"
|
||||
}
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
"CreateGroup": "グループを作成",
|
||||
"CutoffHelpText": "この品質に達すると、Radarrは映画をダウンロードしなくなります",
|
||||
"CutoffUnmet": "カットオフアンメット",
|
||||
"DBMigration": "DB移行",
|
||||
"DatabaseMigration": "DB移行",
|
||||
"Dates": "日付",
|
||||
"DelayProfile": "遅延プロファイル",
|
||||
"DelayProfiles": "遅延プロファイル",
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
"CreateGroup": "그룹 만들기",
|
||||
"CutoffHelpText": "이 품질에 도달하면 Radarr는 더 이상 영화를 다운로드하지 않습니다.",
|
||||
"CutoffUnmet": "컷오프 미충족",
|
||||
"DBMigration": "DB 마이그레이션",
|
||||
"DatabaseMigration": "DB 마이그레이션",
|
||||
"Dates": "날짜",
|
||||
"DelayProfile": "지연 프로필",
|
||||
"DelayProfiles": "지연 프로필",
|
||||
|
||||
@@ -148,5 +148,6 @@
|
||||
"45MinutesFourtyFive": "45 Minutter: {0}",
|
||||
"60MinutesSixty": "60 Minutter: {0}",
|
||||
"ApplyChanges": "Bekreft endringer",
|
||||
"ApiKeyValidationHealthCheckMessage": "Vennligst oppdater din API-nøkkel til å være minst {0} tegn lang. Du kan gjøre dette via innstillinger eller konfigurasjonsfilen"
|
||||
"ApiKeyValidationHealthCheckMessage": "Vennligst oppdater din API-nøkkel til å være minst {0} tegn lang. Du kan gjøre dette via innstillinger eller konfigurasjonsfilen",
|
||||
"Activity": "Aktivitet"
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"CreateGroup": "Groep aanmaken",
|
||||
"CutoffHelpText": "Wanneer deze kwaliteit is behaald, zal Radarr niet langer films downloaden",
|
||||
"CutoffUnmet": "Onbereikte Drempel",
|
||||
"DBMigration": "DB Migratie",
|
||||
"DatabaseMigration": "DB Migratie",
|
||||
"Dates": "Datum en tijd",
|
||||
"DelayProfile": "Vertragingsprofiel",
|
||||
"DelayProfiles": "Vertragingsprofielen",
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"CreateGroup": "Stworzyć grupę",
|
||||
"CutoffHelpText": "Po osiągnięciu tej jakości Radarr nie będzie już pobierał filmów",
|
||||
"CutoffUnmet": "Odcięcie niespełnione",
|
||||
"DBMigration": "Migracja bazy danych",
|
||||
"DatabaseMigration": "Migracja bazy danych",
|
||||
"Dates": "Daktyle",
|
||||
"DelayProfile": "Profil opóźnienia",
|
||||
"DelayProfiles": "Profile opóźnień",
|
||||
|
||||
@@ -191,7 +191,7 @@
|
||||
"CreateGroup": "Criar grupo",
|
||||
"CutoffHelpText": "Quando esta qualidade for alcançada, o Readarr não transferirá mais filmes",
|
||||
"CutoffUnmet": "Limite não-correspondido",
|
||||
"DBMigration": "Migração da base de dados",
|
||||
"DatabaseMigration": "Migração da base de dados",
|
||||
"DeleteBackup": "Eliminar cópia de segurança",
|
||||
"DeleteBackupMessageText": "Tem a certeza que quer eliminar a cópia de segurança \"{name}\"?",
|
||||
"DeleteDelayProfile": "Eliminar perfil de atraso",
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
"CreateGroup": "Criar grupo",
|
||||
"CutoffHelpText": "Assim que esta qualidade for alcançada, o Readarr não baixará mais livros",
|
||||
"CutoffUnmet": "Corte não atendido",
|
||||
"DBMigration": "Migração de banco de dados",
|
||||
"DatabaseMigration": "Migração de banco de dados",
|
||||
"Dates": "Datas",
|
||||
"DelayProfile": "Perfil de atraso",
|
||||
"DelayProfiles": "Perfis de atraso",
|
||||
@@ -130,7 +130,7 @@
|
||||
"DeleteRootFolderMessageText": "Tem certeza de que deseja excluir a pasta raiz '{name}'?",
|
||||
"DeleteSelectedBookFiles": "Excluir arquivos do livro selecionado",
|
||||
"DeleteSelectedBookFilesMessageText": "Tem certeza de que deseja excluir os arquivos do livro selecionado?",
|
||||
"DeleteTag": "Excluir tag",
|
||||
"DeleteTag": "Excluir Etiqueta",
|
||||
"DeleteTagMessageText": "Tem certeza de que deseja excluir a tag \"{0}\"?",
|
||||
"DestinationPath": "Caminho de destino",
|
||||
"DetailedProgressBarHelpText": "Mostrar texto na barra de progresso",
|
||||
@@ -290,7 +290,7 @@
|
||||
"RemoveCompletedDownloadsHelpText": "Remover downloads importados do histórico do cliente de download",
|
||||
"RemoveFailedDownloadsHelpText": "Remova downloads com falha do histórico do cliente de download",
|
||||
"RemoveFilter": "Remover filtro",
|
||||
"RemoveFromDownloadClient": "Remover do cliente de download",
|
||||
"RemoveFromDownloadClient": "Remover do Cliente de Download",
|
||||
"RemoveFromQueue": "Remover da fila",
|
||||
"RemoveHelpTextWarning": "Isso removerá o download e o(s) arquivo(s) do cliente de download.",
|
||||
"RemoveSelected": "Remover Selecionado",
|
||||
@@ -360,7 +360,7 @@
|
||||
"SslPortHelpTextWarning": "Requer reinício para ter efeito",
|
||||
"StandardBookFormat": "Formato de livro padrão",
|
||||
"StartTypingOrSelectAPathBelow": "Comece a digitar ou selecione um caminho abaixo",
|
||||
"StartupDirectory": "Diretório de inicialização",
|
||||
"StartupDirectory": "Diretório de Inicialização",
|
||||
"Status": "Status",
|
||||
"StatusEndedEnded": "Terminado",
|
||||
"Style": "Estilo",
|
||||
@@ -883,7 +883,7 @@
|
||||
"RecycleBinUnableToWriteHealthCheck": "Não é possível gravar na pasta da lixeira configurada: {0}. Certifique-se de que este caminho exista e seja gravável pelo usuário executando o Readarr",
|
||||
"Clone": "Clonar",
|
||||
"CloneCustomFormat": "Clonar formato personalizado",
|
||||
"Conditions": "'Condições'",
|
||||
"Conditions": "Condições",
|
||||
"CopyToClipboard": "Copiar para a área de transferência",
|
||||
"CustomFormat": "Formato personalizado",
|
||||
"CustomFormatSettings": "Configurações de formato personalizado",
|
||||
@@ -942,7 +942,7 @@
|
||||
"EditSelectedImportLists": "Editar listas de importação selecionadas",
|
||||
"EditSelectedIndexers": "Editar indexadores selecionados",
|
||||
"Implementation": "Implementação",
|
||||
"ManageClients": "Gerenciar clientes",
|
||||
"ManageClients": "Gerenciar Clientes",
|
||||
"ManageIndexers": "Gerenciar indexadores",
|
||||
"ManageLists": "Gerenciar listas",
|
||||
"NoChange": "Sem alteração",
|
||||
@@ -1029,5 +1029,29 @@
|
||||
"SourceTitle": "Título da Fonte",
|
||||
"AutoRedownloadFailed": "Falha no Novo Download",
|
||||
"AutoRedownloadFailedFromInteractiveSearch": "Falha no Novo Download da Pesquisa Interativa",
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procure e tente baixar automaticamente uma versão diferente quando a versão com falha for obtida da pesquisa interativa"
|
||||
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Procure e tente baixar automaticamente uma versão diferente quando a versão com falha for obtida da pesquisa interativa",
|
||||
"BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar a lista de bloqueio",
|
||||
"BlocklistMultipleOnlyHint": "Adiciona a Lista de bloqueio sem procurar substitutos",
|
||||
"BlocklistOnly": "Apenas Adicionar a Lista de Bloqueio",
|
||||
"ChangeCategoryMultipleHint": "Altera os downloads para a 'Categoria Pós-Importação' do Cliente de Download",
|
||||
"CustomFormatsSpecificationRegularExpression": "Expressão Regular",
|
||||
"IgnoreDownload": "Ignorar Download",
|
||||
"IgnoreDownloadHint": "Impede que {appName} processe ainda mais este download",
|
||||
"IgnoreDownloads": "Ignorar Downloads",
|
||||
"IgnoreDownloadsHint": "Impede que {appName} processe ainda mais esses downloads",
|
||||
"RemoveQueueItem": "Remover - {sourceTitle}",
|
||||
"RemoveQueueItemConfirmation": "Tem certeza de que deseja remover '{sourceTitle}' da fila?",
|
||||
"RemoveQueueItemRemovalMethod": "Método de Remoção",
|
||||
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remover do Cliente de Download' removerá os downloads e os arquivos do cliente de download.",
|
||||
"BlocklistAndSearch": "Lista de Bloqueio e Pesquisa",
|
||||
"BlocklistAndSearchHint": "Inicie uma busca por um substituto após adicionar a lista de bloqueio",
|
||||
"BlocklistOnlyHint": "Adiciona a Lista de bloqueio sem procurar um substituto",
|
||||
"ChangeCategory": "Alterar Categoria",
|
||||
"ChangeCategoryHint": "Altera o download para a 'Categoria Pós-Importação' do Cliente de Download",
|
||||
"CustomFormatsSpecificationRegularExpressionHelpText": "RegEx do Formato Personalizado Não Diferencia Maiúsculas de Minúsculas",
|
||||
"DoNotBlocklist": "Não coloque na lista de bloqueio",
|
||||
"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."
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
"CreateGroup": "Creați un grup",
|
||||
"CutoffHelpText": "Odată atinsă această calitate, Radarr nu va mai descărca filme",
|
||||
"CutoffUnmet": "Calitate maximă neatinsă",
|
||||
"DBMigration": "Migrarea BD",
|
||||
"DatabaseMigration": "Migrarea BD",
|
||||
"Dates": "Date",
|
||||
"DelayProfile": "Profile de întârziere",
|
||||
"DelayProfiles": "Profile de întârziere",
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
"CreateGroup": "Создать группу",
|
||||
"CutoffHelpText": "Radarr перестанет скачивать фильмы после достижения указанного качества",
|
||||
"CutoffUnmet": "Порог невыполнен",
|
||||
"DBMigration": "Перенос БД",
|
||||
"DatabaseMigration": "Перенос БД",
|
||||
"Dates": "Даты",
|
||||
"DelayProfile": "Профиль приостановки",
|
||||
"DelayProfiles": "Профиль задержки",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"CreateGroup": "Skapa grupp",
|
||||
"CutoffHelpText": "När denna kvalitet har uppnåtts kommer Readarr inte längre att ladda ner filmer",
|
||||
"CutoffUnmet": "Avgränsande ej tillgodosedd",
|
||||
"DBMigration": "DB Migration",
|
||||
"DatabaseMigration": "DB Migration",
|
||||
"Dates": "Datum",
|
||||
"DelayProfiles": "Fördröjande profiler",
|
||||
"DelayingDownloadUntilInterp": "Försenar nedladdningen till {0} kl. {1}",
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
"CreateGroup": "สร้างกลุ่ม",
|
||||
"CutoffHelpText": "เมื่อถึงคุณภาพนี้แล้ว Radarr จะไม่ดาวน์โหลดภาพยนตร์อีกต่อไป",
|
||||
"CutoffUnmet": "ตัด Unmet",
|
||||
"DBMigration": "การย้ายฐานข้อมูล",
|
||||
"DatabaseMigration": "การย้ายฐานข้อมูล",
|
||||
"Dates": "วันที่",
|
||||
"DelayProfile": "โปรไฟล์ล่าช้า",
|
||||
"DelayProfiles": "โปรไฟล์ล่าช้า",
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"CreateGroup": "Grup oluştur",
|
||||
"CutoffHelpText": "Bu kaliteye ulaşıldığında Radarr artık film indirmeyecektir",
|
||||
"CutoffUnmet": "Kesme Karşılanmadı",
|
||||
"DBMigration": "DB Geçişi",
|
||||
"DatabaseMigration": "DB Geçişi",
|
||||
"Dates": "Tarih",
|
||||
"DelayProfile": "Gecikme Profilleri",
|
||||
"DelayProfiles": "Gecikme Profilleri",
|
||||
@@ -450,7 +450,7 @@
|
||||
"ShowTitle": "Başlığı göster",
|
||||
"Today": "Bugün",
|
||||
"Tomorrow": "Yarın",
|
||||
"Actions": "Etkiler",
|
||||
"Actions": "Eylemler",
|
||||
"Component": "Bileşen",
|
||||
"Level": "Seviye",
|
||||
"ReleaseBranchCheckOfficialBranchMessage": "Dal {0} geçerli bir Radarr sürüm dalı değil, güncelleme almayacaksınız",
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"Close": "Закрити",
|
||||
"AddingTag": "Додавання тегу",
|
||||
"AddListExclusion": "Додати винятки списку",
|
||||
"About": "Деталі",
|
||||
"About": "Про нас",
|
||||
"Actions": "Дії",
|
||||
"All": "Всі",
|
||||
"Calendar": "Календар",
|
||||
@@ -34,7 +34,7 @@
|
||||
"Connect": "Підключити",
|
||||
"CreateGroup": "Створити групу",
|
||||
"Dates": "Дати",
|
||||
"DBMigration": "Міграція БД",
|
||||
"DatabaseMigration": "Міграція БД",
|
||||
"DelayingDownloadUntilInterp": "Завантаження відкладається до {0} о {1}",
|
||||
"DelayProfile": "Профіль затримки",
|
||||
"DelayProfiles": "Профілі затримки",
|
||||
@@ -644,5 +644,6 @@
|
||||
"NoChange": "Без змін",
|
||||
"ResetQualityDefinitions": "Скинути визначення якості",
|
||||
"SetTags": "Встановити теги",
|
||||
"AddNew": "Додати новий"
|
||||
"AddNew": "Додати новий",
|
||||
"Activity": "Активність"
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
"CreateGroup": "Tạo nhóm",
|
||||
"CutoffHelpText": "Khi đạt đến chất lượng này Radarr sẽ không tải phim nữa",
|
||||
"CutoffUnmet": "Cắt bỏ chưa được đáp ứng",
|
||||
"DBMigration": "Di chuyển DB",
|
||||
"DatabaseMigration": "Di chuyển DB",
|
||||
"Dates": "ngày",
|
||||
"DelayingDownloadUntilInterp": "Trì hoãn tải xuống cho đến {0} lúc {1}",
|
||||
"Delete": "Xóa bỏ",
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
"CreateGroup": "创建组",
|
||||
"CutoffHelpText": "一旦质量满足则Radarr不会再下载影片",
|
||||
"CutoffUnmet": "未达截止条件",
|
||||
"DBMigration": "数据库迁移版本",
|
||||
"DatabaseMigration": "数据库迁移版本",
|
||||
"Dates": "日期",
|
||||
"DelayProfile": "延时配置",
|
||||
"DelayProfiles": "延迟配置",
|
||||
|
||||
@@ -33,5 +33,12 @@
|
||||
"APIKey": "API密鑰",
|
||||
"20MinutesTwenty": "20分鐘:{0}",
|
||||
"45MinutesFourtyFive": "45分鐘:{0}",
|
||||
"60MinutesSixty": "60分鐘:{0}"
|
||||
"60MinutesSixty": "60分鐘:{0}",
|
||||
"AppUpdated": "{appName}已更新",
|
||||
"AppUpdatedVersion": "重新載入",
|
||||
"ApplyTagsHelpTextHowToApplyImportLists": "如何套用標籤在所選擇的輸入清單",
|
||||
"ApplyTagsHelpTextHowToApplyDownloadClients": "如何將標籤套用在被選擇的下載客戶端",
|
||||
"AgeWhenGrabbed": "年齡(當獲取時)",
|
||||
"ApplyChanges": "應用",
|
||||
"ApplyTagsHelpTextAdd": "加入:將標籤加入已存在的標籤清單"
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace NzbDrone.Core.Queue
|
||||
public RemoteBook RemoteBook { get; set; }
|
||||
public DownloadProtocol Protocol { get; set; }
|
||||
public string DownloadClient { get; set; }
|
||||
public bool DownloadClientHasPostImportCategory { get; set; }
|
||||
public string Indexer { get; set; }
|
||||
public string OutputPath { get; set; }
|
||||
public string ErrorMessage { get; set; }
|
||||
|
||||
@@ -89,7 +89,8 @@ namespace NzbDrone.Core.Queue
|
||||
DownloadClient = trackedDownload.DownloadItem.DownloadClientInfo.Name,
|
||||
Indexer = trackedDownload.Indexer,
|
||||
OutputPath = trackedDownload.DownloadItem.OutputPath.ToString(),
|
||||
DownloadForced = downloadForced
|
||||
DownloadForced = downloadForced,
|
||||
DownloadClientHasPostImportCategory = trackedDownload.DownloadItem.DownloadClientInfo.HasPostImportCategory
|
||||
};
|
||||
|
||||
queue.Id = HashConverter.GetHashInt31($"trackedDownload-{trackedDownload.DownloadClient}-{trackedDownload.DownloadItem.DownloadId}-book{book?.Id ?? 0}");
|
||||
|
||||
@@ -107,6 +107,11 @@ namespace NzbDrone.Core.Update
|
||||
|
||||
var updateSandboxFolder = _appFolderInfo.GetUpdateSandboxFolder();
|
||||
|
||||
if (_diskProvider.GetTotalSize(updateSandboxFolder) < 1.Gigabytes())
|
||||
{
|
||||
_logger.Warn("Temporary location '{0}' has less than 1 GB free space, Readarr may not be able to update itself.", updateSandboxFolder);
|
||||
}
|
||||
|
||||
var packageDestination = Path.Combine(updateSandboxFolder, updatePackage.FileName);
|
||||
|
||||
if (_diskProvider.FolderExists(updateSandboxFolder))
|
||||
|
||||
@@ -41,7 +41,7 @@ namespace NzbDrone.Mono.Test.EnvironmentInfo.VersionAdapters
|
||||
versionName.FullName.Should().Be("macOS " + versionString);
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
[Test]
|
||||
public void should_detect_server()
|
||||
{
|
||||
var fileContent = File.ReadAllText(GetTestPath("Files/macOS/SystemVersion.plist"));
|
||||
@@ -63,7 +63,7 @@ namespace NzbDrone.Mono.Test.EnvironmentInfo.VersionAdapters
|
||||
versionName.Name.Should().Be("macOS Server");
|
||||
}
|
||||
|
||||
[TestCase]
|
||||
[Test]
|
||||
public void should_return_null_if_folder_doesnt_exist()
|
||||
{
|
||||
Mocker.GetMock<IDiskProvider>()
|
||||
|
||||
@@ -127,7 +127,7 @@ namespace Readarr.Api.V1.Author
|
||||
|
||||
MapCoversToLocal(authorResources.ToArray());
|
||||
LinkNextPreviousBooks(authorResources.ToArray());
|
||||
LinkAuthorStatistics(authorResources, authorStats);
|
||||
LinkAuthorStatistics(authorResources, authorStats.ToDictionary(x => x.AuthorId));
|
||||
LinkRootFolderPath(authorResources.ToArray());
|
||||
|
||||
return authorResources;
|
||||
@@ -200,17 +200,14 @@ namespace Readarr.Api.V1.Author
|
||||
LinkAuthorStatistics(resource, _authorStatisticsService.AuthorStatistics(resource.Id));
|
||||
}
|
||||
|
||||
private void LinkAuthorStatistics(List<AuthorResource> resources, List<AuthorStatistics> authorStatistics)
|
||||
private void LinkAuthorStatistics(List<AuthorResource> resources, Dictionary<int, AuthorStatistics> authorStatistics)
|
||||
{
|
||||
foreach (var author in resources)
|
||||
{
|
||||
var stats = authorStatistics.SingleOrDefault(ss => ss.AuthorId == author.Id);
|
||||
if (stats == null)
|
||||
if (authorStatistics.TryGetValue(author.Id, out var stats))
|
||||
{
|
||||
continue;
|
||||
LinkAuthorStatistics(author, stats);
|
||||
}
|
||||
|
||||
LinkAuthorStatistics(author, stats);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -69,31 +69,64 @@ namespace Readarr.Api.V1.Queue
|
||||
}
|
||||
|
||||
[RestDeleteById]
|
||||
public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipRedownload = false)
|
||||
public void RemoveAction(int id, bool removeFromClient = true, bool blocklist = false, bool skipRedownload = false, bool changeCategory = false)
|
||||
{
|
||||
var trackedDownload = Remove(id, removeFromClient, blocklist, skipRedownload);
|
||||
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
|
||||
|
||||
if (trackedDownload != null)
|
||||
if (pendingRelease != null)
|
||||
{
|
||||
_trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId);
|
||||
Remove(pendingRelease);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var trackedDownload = GetTrackedDownload(id);
|
||||
|
||||
if (trackedDownload == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
|
||||
Remove(trackedDownload, removeFromClient, blocklist, skipRedownload, changeCategory);
|
||||
_trackedDownloadService.StopTracking(trackedDownload.DownloadItem.DownloadId);
|
||||
}
|
||||
|
||||
[HttpDelete("bulk")]
|
||||
public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipRedownload = false)
|
||||
public object RemoveMany([FromBody] QueueBulkResource resource, [FromQuery] bool removeFromClient = true, [FromQuery] bool blocklist = false, [FromQuery] bool skipRedownload = false, [FromQuery] bool changeCategory = false)
|
||||
{
|
||||
var trackedDownloadIds = new List<string>();
|
||||
var pendingToRemove = new List<NzbDrone.Core.Queue.Queue>();
|
||||
var trackedToRemove = new List<TrackedDownload>();
|
||||
|
||||
foreach (var id in resource.Ids)
|
||||
{
|
||||
var trackedDownload = Remove(id, removeFromClient, blocklist, skipRedownload);
|
||||
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
|
||||
|
||||
if (pendingRelease != null)
|
||||
{
|
||||
pendingToRemove.Add(pendingRelease);
|
||||
continue;
|
||||
}
|
||||
|
||||
var trackedDownload = GetTrackedDownload(id);
|
||||
|
||||
if (trackedDownload != null)
|
||||
{
|
||||
trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId);
|
||||
trackedToRemove.Add(trackedDownload);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var pendingRelease in pendingToRemove.DistinctBy(p => p.Id))
|
||||
{
|
||||
Remove(pendingRelease);
|
||||
}
|
||||
|
||||
foreach (var trackedDownload in trackedToRemove.DistinctBy(t => t.DownloadItem.DownloadId))
|
||||
{
|
||||
Remove(trackedDownload, removeFromClient, blocklist, skipRedownload, changeCategory);
|
||||
trackedDownloadIds.Add(trackedDownload.DownloadItem.DownloadId);
|
||||
}
|
||||
|
||||
_trackedDownloadService.StopTracking(trackedDownloadIds);
|
||||
|
||||
return new { };
|
||||
@@ -206,25 +239,14 @@ namespace Readarr.Api.V1.Queue
|
||||
}
|
||||
}
|
||||
|
||||
private TrackedDownload Remove(int id, bool removeFromClient, bool blocklist, bool skipRedownload)
|
||||
private void Remove(NzbDrone.Core.Queue.Queue pendingRelease)
|
||||
{
|
||||
var pendingRelease = _pendingReleaseService.FindPendingQueueItem(id);
|
||||
|
||||
if (pendingRelease != null)
|
||||
{
|
||||
_blocklistService.Block(pendingRelease.RemoteBook, "Pending book manually blocklisted");
|
||||
_pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
var trackedDownload = GetTrackedDownload(id);
|
||||
|
||||
if (trackedDownload == null)
|
||||
{
|
||||
throw new NotFoundException();
|
||||
}
|
||||
_blocklistService.Block(pendingRelease.RemoteBook, "Pending release manually blocklisted");
|
||||
_pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id);
|
||||
}
|
||||
|
||||
private TrackedDownload Remove(TrackedDownload trackedDownload, bool removeFromClient, bool blocklist, bool skipRedownload, bool changeCategory)
|
||||
{
|
||||
if (removeFromClient)
|
||||
{
|
||||
var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient);
|
||||
@@ -236,13 +258,24 @@ namespace Readarr.Api.V1.Queue
|
||||
|
||||
downloadClient.RemoveItem(trackedDownload.DownloadItem, true);
|
||||
}
|
||||
else if (changeCategory)
|
||||
{
|
||||
var downloadClient = _downloadClientProvider.Get(trackedDownload.DownloadClient);
|
||||
|
||||
if (downloadClient == null)
|
||||
{
|
||||
throw new BadRequestException();
|
||||
}
|
||||
|
||||
downloadClient.MarkItemAsImported(trackedDownload.DownloadItem);
|
||||
}
|
||||
|
||||
if (blocklist)
|
||||
{
|
||||
_failedDownloadService.MarkAsFailed(trackedDownload.DownloadItem.DownloadId, skipRedownload);
|
||||
}
|
||||
|
||||
if (!removeFromClient && !blocklist)
|
||||
if (!removeFromClient && !blocklist && !changeCategory)
|
||||
{
|
||||
if (!_ignoredDownloadService.IgnoreDownload(trackedDownload))
|
||||
{
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace Readarr.Api.V1.Queue
|
||||
public string DownloadId { get; set; }
|
||||
public DownloadProtocol Protocol { get; set; }
|
||||
public string DownloadClient { get; set; }
|
||||
public bool DownloadClientHasPostImportCategory { get; set; }
|
||||
public string Indexer { get; set; }
|
||||
public string OutputPath { get; set; }
|
||||
public bool DownloadForced { get; set; }
|
||||
@@ -74,6 +75,7 @@ namespace Readarr.Api.V1.Queue
|
||||
DownloadId = model.DownloadId,
|
||||
Protocol = model.Protocol,
|
||||
DownloadClient = model.DownloadClient,
|
||||
DownloadClientHasPostImportCategory = model.DownloadClientHasPostImportCategory,
|
||||
Indexer = model.Indexer,
|
||||
OutputPath = model.OutputPath,
|
||||
DownloadForced = model.DownloadForced
|
||||
|
||||
@@ -90,7 +90,7 @@ namespace Readarr.Api.V1.System.Backup
|
||||
}
|
||||
|
||||
[HttpPost("restore/upload")]
|
||||
[RequestFormLimits(MultipartBodyLengthLimit = 500000000)]
|
||||
[RequestFormLimits(MultipartBodyLengthLimit = 1000000000)]
|
||||
public object UploadAndRestore()
|
||||
{
|
||||
var files = Request.Form.Files;
|
||||
|
||||
@@ -42,11 +42,11 @@ namespace Readarr.Api.V1.Wanted
|
||||
|
||||
if (monitored)
|
||||
{
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == false || v.Author.Value.Monitored == false);
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true);
|
||||
}
|
||||
else
|
||||
{
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true);
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == false || v.Author.Value.Monitored == false);
|
||||
}
|
||||
|
||||
return pagingSpec.ApplyToPage(_bookCutoffService.BooksWhereCutoffUnmet, v => MapToResource(v, includeAuthor));
|
||||
|
||||
@@ -38,11 +38,11 @@ namespace Readarr.Api.V1.Wanted
|
||||
|
||||
if (monitored)
|
||||
{
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == false || v.Author.Value.Monitored == false);
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true);
|
||||
}
|
||||
else
|
||||
{
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Author.Value.Monitored == true);
|
||||
pagingSpec.FilterExpressions.Add(v => v.Monitored == false || v.Author.Value.Monitored == false);
|
||||
}
|
||||
|
||||
return pagingSpec.ApplyToPage(_bookService.BooksWithoutFiles, v => MapToResource(v, includeAuthor));
|
||||
|
||||
@@ -6365,6 +6365,14 @@
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "changeCategory",
|
||||
"in": "query",
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
@@ -6403,6 +6411,14 @@
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "changeCategory",
|
||||
"in": "query",
|
||||
"schema": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
@@ -12418,6 +12434,9 @@
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"downloadClientHasPostImportCategory": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"indexer": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
|
||||
Reference in New Issue
Block a user