Compare commits

...

36 Commits

Author SHA1 Message Date
Mark McDowall
faeb78801c Fixed: Monitored status being reset after refresh when author is edited manually
Resolves #54
2024-01-30 19:36:11 +02:00
Bogdan
bd5695f2dd Bump version to 0.3.18 2024-01-28 09:10:32 +02:00
Weblate
5375cbe1c2 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Crocmou <slaanesh8854@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: diaverso <alexito_perez.95@hotmail.com>
Co-authored-by: fordas <fordas15@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ar/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/cs/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translation: Servarr/Readarr
2024-01-27 17:59:45 +02:00
Mark McDowall
d0b797ea61 Fixed: History retention for Newsbin
(cherry picked from commit 0ea189d03c8c5e02c00b96a4281dd9e668d6a9ae)
2024-01-27 10:26:00 +02:00
Servarr
e76f160695 Automated API Docs update 2024-01-25 08:16:50 +02:00
Weblate
ef71fc1b41 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Alexander <a.burdun@gmail.com>
Co-authored-by: Dani Talens <databio@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Magyar <kochnorbert@icloud.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: fordas <fordas15@gmail.com>
Co-authored-by: horvi28 <horvi28@gmail.com>
Co-authored-by: reloxx <reloxx@interia.pl>
Co-authored-by: wilfriedarma <wilfriedarma.collet@gmail.com>
Co-authored-by: zichichi <sollami@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/de/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/uk/
Translation: Servarr/Readarr
2024-01-25 08:13:18 +02:00
Mark McDowall
14f14e5da4 New: Optionally remove from queue by changing category to 'Post-Import Category' when configured
(cherry picked from commit 345854d0fe9b65a561fdab12aac688782a420aa5)

Closes #3260
2024-01-25 08:10:18 +02:00
Mark McDowall
bd265e47fa Fixed: Don't try to remove the same item from queue multiple times
(cherry picked from commit 2491da067815e129df3a3a79c0cc7221a9d87094)

Closes #2087
2024-01-25 08:01:16 +02:00
Mark McDowall
333d344c0b New: Add FileId to History data for import events
(cherry picked from commit 952a7248c962908fc5da92762507421923a06e17)

Closes #788
2024-01-25 07:49:21 +02:00
Mark McDowall
db6712f030 New: Add size to more history events
(cherry picked from commit 0d064181941fc6d149fc2f891661e059758d5428)

Closes #3250
2024-01-25 07:46:52 +02:00
Bogdan
1065a6283c Update database migration version translation token
(cherry picked from commit 7d0d503a5e132cda3c03d6f7cd7b51c9c80740de)

Closes #3257
2024-01-25 07:42:27 +02:00
Stevie Robinson
1b40c5c7ce Add Regular Expression Custom Format translation
(cherry picked from commit 9f50166fa62a71d0a23e2c2d331651792285dc0e)

Closes #3256
2024-01-25 07:38:34 +02:00
Mark McDowall
a8de87300e New: Add download client name to pending items waiting for a specific client
(cherry picked from commit 3cd4c67ba12cd5e8cc00d3df8929555fc0ad5918)

Closes #3254
2024-01-25 07:32:46 +02:00
Qstick
f260078ac8 Fixed: Allow restore to process backups up to ~1000MB 2024-01-25 07:19:51 +02:00
Mark McDowall
5a6486be21 Don't use TestCase for single test
(cherry picked from commit 541d3307e1466b0353dc4149f502a4b62b4de616)
2024-01-24 20:36:47 -06:00
Bogdan
2e9de3cb86 Fixed: Sorting by name in Manage Indexer and Download Client modals
(cherry picked from commit 31baed4b2c2406e48b8defa51352a13adb6d470f)
2024-01-23 07:35:49 +02:00
bakerboy448
a259684916 Improve Release Title Custom Format debugging
(cherry picked from commit ec40bc6eea1eb282cb804b8dd5461bf5ade332e9)

Closes #3235
2024-01-21 08:17:34 +02:00
Qstick
5704adfbc5 New: Improve All Authors call by using dictionary for stats iteration
(cherry picked from commit e792db4d3355fedd3ea9e35b3f5e1e30394d9ee3)

Closes #3230
2024-01-21 08:13:22 +02:00
Bogdan
6cfaab07ba Wrap values in log messages in FileListParser
Closes #3229
2024-01-21 08:08:21 +02:00
Stevie Robinson
b36085a3cc New: Drop commands table content before postgres migration
Signed-off-by: Stevie Robinson <stevie.robinson@gmail.com>
(cherry picked from commit 8dd3b45c90209136c0bd0a861061c6d20837d62f)

Closes #3225
2024-01-21 08:06:54 +02:00
Bogdan
0afa0977b0 Bump version to 0.3.17 2024-01-21 08:01:27 +02:00
Bogdan
4a174e559f Transpile logical assignment operators with babel
(cherry picked from commit 3cf4d2907e32e81050f35cda042dcc2b4641d40d)
2024-01-21 03:55:02 +02:00
servarr[bot]
0fb8ab2280 New: Log warning if less than 1 GB free space during update
* New: Log warning if less than 1 GB free space during update

(cherry picked from commit e66ba84fc0b5b120dd4e87f6b8ae1b3c038ee72b)

---------

Co-authored-by: Mark McDowall <mark@mcdowall.ca>
2024-01-21 03:54:39 +02:00
Mark McDowall
261b0f398b Fixed: Don't clone indexer API Key
(cherry picked from commit d336aaf3f04136471970155b5a7cc876770c64ff)
2024-01-20 07:43:57 +02:00
Weblate
d1fea384a7 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Julian Baquero <julian-baquero@upc.edu.co>
Co-authored-by: Koch Norbert <kochnorbert@icloud.com>
Co-authored-by: MaddionMax <kovacs.tamas@ius.hu>
Co-authored-by: brn <barantsenkul@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/es/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/hu/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translation: Servarr/Readarr
2024-01-20 02:06:38 +02:00
Stevie Robinson
9542ea0d2e Round off the seeded ratio when checking for removal candidates
Signed-off-by: Stevie Robinson <stevie.robinson@gmail.com>

(cherry picked from commit c6bb6ad8788fb1c20ed466a495f2b47034947145)
2024-01-19 08:15:19 +02:00
Weblate
e1d697c561 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Dani Talens <databio@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translation: Servarr/Readarr
2024-01-18 00:03:31 +02:00
Bogdan
22ed847849 Replace support-requests with label-actions 2024-01-16 23:55:43 +02:00
Stevie Robinson
2faef704b4 Fixed: Replacing 'appName' translation token
(cherry picked from commit 2e51b8792db0d3ec402672dc92c95f3cb886ef44)

Closes #3058
Fixes #3221
2024-01-16 23:50:14 +02:00
Bogdan
a566c3e21f Check Content-Type in FileList parser 2024-01-16 21:52:40 +02:00
Stevie Robinson
cc0d2a84ae Sort Custom Filters
(cherry picked from commit e4b5d559df2d5f3d55e16aae5922509e84f31e64)
2024-01-16 08:08:39 +02:00
Qstick
1c3d2ce4e5 Improved http timeout handling
(cherry picked from commit f87a66fcba6ca9ca972fa1c747a940b216e0e5e3)
2024-01-16 08:08:26 +02:00
Weblate
57f614f4cd Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Daniele Prevedello <dprevedello86@gmail.com>
Co-authored-by: DimitriDR <dimitridroeck@gmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: crayon3shawn <crayon3shawn@gmail.com>
Co-authored-by: hansaudun <hans@n5.no>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fi/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/fr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/it/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/nb_NO/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2024-01-15 20:01:07 +02:00
Bogdan
9d2efe0944 Fixed: Cutoff unmet showing Unmonitored books 2024-01-15 16:43:12 +02:00
Bogdan
e032be48e0 Fixed: Wanted Missing showing Unmonitored books 2024-01-15 16:41:03 +02:00
Bogdan
cd66de1992 Bump version to 0.3.16 2024-01-14 07:12:55 +02:00
92 changed files with 1063 additions and 846 deletions

16
.github/label-actions.yml vendored Normal file
View 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
View 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'

View File

@@ -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

View File

@@ -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)'

View File

@@ -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 }],

View File

@@ -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);

View File

@@ -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,

View File

@@ -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;

View 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;

View File

@@ -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;

View File

@@ -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}>

View File

@@ -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,

View File

@@ -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>
);
})
}
{

View File

@@ -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>' }} />

View File

@@ -94,7 +94,12 @@ export default {
items: [],
pendingChanges: {},
sortKey: 'name',
sortDirection: sortDirections.DESCENDING
sortDirection: sortDirections.ASCENDING,
sortPredicates: {
name: function(item) {
return item.name.toLowerCase();
}
}
},
//

View File

@@ -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;

View File

@@ -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 })

View File

@@ -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,

View File

@@ -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)
);
}

View File

@@ -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()
{

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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();

View File

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

View File

@@ -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
};

View File

@@ -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;

View File

@@ -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();

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,

View File

@@ -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)),

View File

@@ -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,

View File

@@ -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;

View File

@@ -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);

View File

@@ -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,

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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));

View File

@@ -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;

View File

@@ -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
};
}
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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)

View File

@@ -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} من قائمة الانتظار؟"
}

View File

@@ -64,7 +64,7 @@
"CreateGroup": "Създай група",
"CutoffHelpText": "След достигане на това качество Radarr вече няма да изтегля филми",
"CutoffUnmet": "Прекъсване Неудовлетворено",
"DBMigration": "DB миграция",
"DatabaseMigration": "DB миграция",
"Dates": "Дати",
"DelayProfile": "Профил за забавяне",
"DelayProfiles": "Профили за забавяне",

View File

@@ -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"
}

View File

@@ -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í"
}

View File

@@ -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?"
}

View File

@@ -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",

View File

@@ -65,7 +65,7 @@
"CreateEmptyAuthorFoldersHelpText": "Δημιουργήστε φακέλους ταινιών που λείπουν κατά τη σάρωση δίσκου",
"CreateGroup": "Δημιουργησε ΟΜΑΔΑ",
"CutoffHelpText": "Μόλις επιτευχθεί αυτή η ποιότητα, το Radarr δεν θα κατεβάζει πλέον ταινίες",
"DBMigration": "Μετεγκατάσταση DB",
"DatabaseMigration": "Μετεγκατάσταση DB",
"Dates": "Ημερομηνίες",
"DelayProfile": "Προφίλ χρονοκαθυστέρησης",
"DelayProfiles": "Προφίλ χρονοκαθυστέρησης",

View File

@@ -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",

View File

@@ -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"
}

View File

@@ -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äys",
"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äyks",
"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."
}

View File

@@ -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"
}

View File

@@ -51,7 +51,7 @@
"CreateGroup": "צור קבוצה",
"CutoffHelpText": "לאחר שהאיכות הזו תושג Radarr כבר לא תוריד סרטים",
"CutoffUnmet": "חתך שלא הושג",
"DBMigration": "הגירת DB",
"DatabaseMigration": "הגירת DB",
"Dates": "תאריכים",
"DelayProfile": "עיכוב פרופיל",
"DelayProfiles": "עיכוב פרופילים",

View File

@@ -57,7 +57,7 @@
"CreateGroup": "समूह बनाएँ",
"CutoffHelpText": "एक बार जब यह गुणवत्ता पहुँच जाती है तो Redarr फिल्में डाउनलोड नहीं करेगा",
"CutoffUnmet": "कट-ऑफ Unmet",
"DBMigration": "DB प्रवासन",
"DatabaseMigration": "DB प्रवासन",
"Dates": "खजूर",
"DelayProfile": "देरी प्रोफ़ाइल",
"DelayProfiles": "देरी प्रोफाइल",

View File

@@ -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}\" indexet?",
"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"
}

View File

@@ -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ð",

View File

@@ -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 dellapplicazione, 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 limportazione 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"
}

View File

@@ -377,7 +377,7 @@
"CreateGroup": "グループを作成",
"CutoffHelpText": "この品質に達すると、Radarrは映画をダウンロードしなくなります",
"CutoffUnmet": "カットオフアンメット",
"DBMigration": "DB移行",
"DatabaseMigration": "DB移行",
"Dates": "日付",
"DelayProfile": "遅延プロファイル",
"DelayProfiles": "遅延プロファイル",

View File

@@ -114,7 +114,7 @@
"CreateGroup": "그룹 만들기",
"CutoffHelpText": "이 품질에 도달하면 Radarr는 더 이상 영화를 다운로드하지 않습니다.",
"CutoffUnmet": "컷오프 미충족",
"DBMigration": "DB 마이그레이션",
"DatabaseMigration": "DB 마이그레이션",
"Dates": "날짜",
"DelayProfile": "지연 프로필",
"DelayProfiles": "지연 프로필",

View File

@@ -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"
}

View File

@@ -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",

View File

@@ -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ń",

View File

@@ -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",

View File

@@ -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."
}

View File

@@ -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",

View File

@@ -73,7 +73,7 @@
"CreateGroup": "Создать группу",
"CutoffHelpText": "Radarr перестанет скачивать фильмы после достижения указанного качества",
"CutoffUnmet": "Порог невыполнен",
"DBMigration": "Перенос БД",
"DatabaseMigration": "Перенос БД",
"Dates": "Даты",
"DelayProfile": "Профиль приостановки",
"DelayProfiles": "Профиль задержки",

View File

@@ -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}",

View File

@@ -77,7 +77,7 @@
"CreateGroup": "สร้างกลุ่ม",
"CutoffHelpText": "เมื่อถึงคุณภาพนี้แล้ว Radarr จะไม่ดาวน์โหลดภาพยนตร์อีกต่อไป",
"CutoffUnmet": "ตัด Unmet",
"DBMigration": "การย้ายฐานข้อมูล",
"DatabaseMigration": "การย้ายฐานข้อมูล",
"Dates": "วันที่",
"DelayProfile": "โปรไฟล์ล่าช้า",
"DelayProfiles": "โปรไฟล์ล่าช้า",

View File

@@ -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",

View File

@@ -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": "Активність"
}

View File

@@ -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ỏ",

View File

@@ -57,7 +57,7 @@
"CreateGroup": "创建组",
"CutoffHelpText": "一旦质量满足则Radarr不会再下载影片",
"CutoffUnmet": "未达截止条件",
"DBMigration": "数据库迁移版本",
"DatabaseMigration": "数据库迁移版本",
"Dates": "日期",
"DelayProfile": "延时配置",
"DelayProfiles": "延迟配置",

View File

@@ -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": "加入:將標籤加入已存在的標籤清單"
}

View File

@@ -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; }

View File

@@ -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}");

View File

@@ -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))

View File

@@ -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>()

View File

@@ -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);
}
}

View File

@@ -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))
{

View File

@@ -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

View File

@@ -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;

View File

@@ -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));

View File

@@ -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));

View File

@@ -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