Compare commits

..

33 Commits

Author SHA1 Message Date
Bogdan faba3ada95 Bump Polly, System.Buffers and System.Memory
Closes #3952
2025-01-15 18:23:01 +02:00
Qstick e8647aee05 Bump SonarCloud azure extension to 3.X
(cherry picked from commit 7b8e352d876cd8f8e5b6296f0c3938bed4db8bb8)

Bump SonarCloud azure extension for UI analysis to 3.X

(cherry picked from commit 396b2ae7c10c7df749ea23ea93608b56482175a1)
2025-01-15 18:13:04 +02:00
Weblate eaf5ce52bc Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: 1 <1228553526@qq.com>
Co-authored-by: Alexander Balya <alexander.balya@gmail.com>
Co-authored-by: Ano10 <Ano10@users.noreply.translate.servarr.com>
Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Matti Meikäläinen <diefor-93@hotmail.com>
Co-authored-by: Oskari Lavinto <olavinto@protonmail.com>
Co-authored-by: Tommy Au <smarttommyau@gmail.com>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: marapavelka <mara.pavelka@gmail.com>
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/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/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ru/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2025-01-12 15:18:43 +02:00
Bogdan 73ab2760e4 Bump version to 0.4.9 2025-01-12 15:17:47 +02:00
Bogdan 3bb036e8c6 Fixed warning for central package version management 2025-01-09 22:09:48 +02:00
Bogdan 6e05456d6a Set minor version for core-js in babel/preset-env
(cherry picked from commit 2e83d59f61957cbc2171bef097fe2410e72729ad)

Closes #3941
2025-01-05 14:41:58 +02:00
Bogdan 8563a42822 Update core-js 2025-01-05 14:41:51 +02:00
Mark McDowall 841d38f4a5 Upgrade babel to 7.26.0
(cherry picked from commit bfcd017012730c97eb587ae2d2e91f72ee7a1de3)

Closes #3943
2025-01-05 14:40:02 +02:00
Mark McDowall 9326d88eb6 Upgrade Font Awesome to 6.7.1
(cherry picked from commit 016b5718386593c030f14fcac307c93ee1ceeca6)

Closes #3944
2025-01-05 14:38:03 +02:00
Bogdan 015da61004 Bump MailKit to 4.8.0 and Microsoft.Data.SqlClient to 2.1.7
Closes #3951
2025-01-05 14:37:16 +02:00
Mark McDowall d02ea4b121 Don't send session information to Sentry
(cherry picked from commit fae24e98fb9230c2f3701caef457332952c6723f)

Closes #3957
2025-01-05 14:31:17 +02:00
Bruno Garcia 7bc9d700f9 Update Sentry SDK add features
Co-authored-by: Stefan Jandl <reg@bitfox.at>
(cherry picked from commit 6377c688fc7b35749d608bf62796446bb5bcb11b)
2025-01-05 14:30:42 +02:00
Stevie Robinson 661d72ef9b Fixed: Listening on all IPv4 Addresses
(cherry picked from commit 035c474f10c257331a5f47e863d24af82537e335)
2025-01-05 14:26:30 +02:00
Stevie Robinson 258a8d1c95 Fixed: qBittorrent Ratio Limit Check
(cherry picked from commit 4dcc015fb19ceb57d2e8f4985c5137e765829d1c)
2025-01-05 14:26:17 +02:00
Bogdan d4459b9475 Bump version to 0.4.8 2025-01-05 14:26:01 +02:00
Bogdan a550c6554f Check if backup folder is writable on backup
(cherry picked from commit 8aad79fd3e14eb885724a5e5790803c289be2f25)

Closes #3961
2024-12-31 12:21:54 +02:00
Bogdan c1b26eec8d Suggest adding IP to RPC whitelist for on failed Transmission auth
(cherry picked from commit f05e552e8e6dc02cd26444073ab9a678dcb36492)
2024-12-31 12:20:58 +02:00
Bogdan ffe5ede55d Bump version to 0.4.7 2024-12-22 13:25:47 +02:00
gains goblin 9005860899 Fixed: Mapping Author GR ID from import lists to AuthorGoodReadsId 2024-12-15 16:28:18 -06:00
Bogdan c67f67109e Ignore metadata tests temporarily once again 2024-12-15 23:05:58 +02:00
Bogdan 51b9744e25 Fixed: Refresh backup list on deletion
(cherry picked from commit 3b00112447361b19c04851a510e63f812597a043)
2024-12-15 05:32:13 +02:00
Mark McDowall 334d824633 Fixed: Error getting processes in some cases
(cherry picked from commit b552d4e9f7ca7388404aa0d52566010a54cb0244)
2024-12-15 05:31:53 +02:00
Weblate ae01387ca9 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: Dani Talens <databio@gmail.com>
Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: hhjuhl <hans@kopula.dk>
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/ca/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/da/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translation: Servarr/Readarr
2024-12-14 02:35:17 +02:00
Weblate 4eb13e0938 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: 4kwins <hanszimmerme@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Ardenet <1213193613@qq.com>
Co-authored-by: GkhnGRBZ <gkhn.gurbuz@hotmail.com>
Co-authored-by: Havok Dan <havokdan@yahoo.com.br>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: Mizuyoru_TW <mizuyoru.tw@gmail.com>
Co-authored-by: Robin Dadswell <robin@robindadswell.tech>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: keysuck <joshkkim@gmail.com>
Co-authored-by: mryx007 <mryx@mail.de>
Co-authored-by: thelooter <evekolb2204@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/ko/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/pt_BR/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/sk/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/tr/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_CN/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_HANS/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_Hans/
Translate-URL: https://translate.servarr.com/projects/servarr/readarr/zh_TW/
Translation: Servarr/Readarr
2024-12-08 12:36:16 +02:00
Servarr 6dbb826f2f Automated API Docs update 2024-12-08 12:35:20 +02:00
Bogdan 52dfa57dd7 Bump version to 0.4.6 2024-12-08 12:26:41 +02:00
Mark McDowall f354b3bc47 New: Support for new SABnzbd history retention values
(cherry picked from commit e361f18837d98c089f7dc9c0190221ca8e2cf225)

Closes #3885
2024-12-04 18:03:20 +02:00
Bogdan 2d9e6788e6 Bump Polly, Npgsql, PdfSharpCore and ImageSharp 2024-12-04 18:02:21 +02:00
soup 0d121fe9c0 New: Add config file setting for CGNAT authentication bypass
(cherry picked from commit 4c41a4f368046f73f82306bbd73bec992392938b)

Closes #3903
2024-12-04 17:56:17 +02:00
Emmanuel Ferdman 892c34fe35 Fix license link in API docs (#3910)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-12-02 17:15:09 +02:00
Gylesie 24f6007594 Remove unnecessary heap allocations in local IP check
(cherry picked from commit ed536a85ad5f2062bf6f01f80efddb19fa935f63)
2024-12-02 02:34:56 +02:00
Mark McDowall 5028ed4027 Webpack web target
(cherry picked from commit a90866a73e6cff9a286c23e60c74672f4c0d317a)
2024-11-27 12:25:08 +02:00
Bogdan 05f303436b Bump version to 0.4.5 2024-11-23 19:52:18 +02:00
56 changed files with 1729 additions and 1239 deletions
+7 -7
View File
@@ -9,7 +9,7 @@ variables:
testsFolder: './_tests' testsFolder: './_tests'
yarnCacheFolder: $(Pipeline.Workspace)/.yarn yarnCacheFolder: $(Pipeline.Workspace)/.yarn
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
majorVersion: '0.4.4' majorVersion: '0.4.9'
minorVersion: $[counter('minorVersion', 1)] minorVersion: $[counter('minorVersion', 1)]
readarrVersion: '$(majorVersion).$(minorVersion)' readarrVersion: '$(majorVersion).$(minorVersion)'
buildName: '$(Build.SourceBranchName).$(readarrVersion)' buildName: '$(Build.SourceBranchName).$(readarrVersion)'
@@ -1102,19 +1102,19 @@ stages:
vmImage: ${{ variables.windowsImage }} vmImage: ${{ variables.windowsImage }}
steps: steps:
- checkout: self # Need history for Sonar analysis - checkout: self # Need history for Sonar analysis
- task: SonarCloudPrepare@2 - task: SonarCloudPrepare@3
env: env:
SONAR_SCANNER_OPTS: '' SONAR_SCANNER_OPTS: ''
inputs: inputs:
SonarCloud: 'SonarCloud' SonarCloud: 'SonarCloud'
organization: 'readarr' organization: 'readarr'
scannerMode: 'CLI' scannerMode: 'cli'
configMode: 'manual' configMode: 'manual'
cliProjectKey: 'readarrui' cliProjectKey: 'readarrui'
cliProjectName: 'ReadarrUI' cliProjectName: 'ReadarrUI'
cliProjectVersion: '$(readarrVersion)' cliProjectVersion: '$(readarrVersion)'
cliSources: './frontend' cliSources: './frontend'
- task: SonarCloudAnalyze@2 - task: SonarCloudAnalyze@3
- job: Api_Docs - job: Api_Docs
displayName: API Docs displayName: API Docs
@@ -1190,12 +1190,12 @@ stages:
submodules: true submodules: true
- powershell: Set-Service SCardSvr -StartupType Manual - powershell: Set-Service SCardSvr -StartupType Manual
displayName: Enable Windows Test Service displayName: Enable Windows Test Service
- task: SonarCloudPrepare@2 - task: SonarCloudPrepare@3
condition: eq(variables['System.PullRequest.IsFork'], 'False') condition: eq(variables['System.PullRequest.IsFork'], 'False')
inputs: inputs:
SonarCloud: 'SonarCloud' SonarCloud: 'SonarCloud'
organization: 'readarr' organization: 'readarr'
scannerMode: 'MSBuild' scannerMode: 'dotnet'
projectKey: 'Readarr_Readarr' projectKey: 'Readarr_Readarr'
projectName: 'Readarr' projectName: 'Readarr'
projectVersion: '$(readarrVersion)' projectVersion: '$(readarrVersion)'
@@ -1208,7 +1208,7 @@ stages:
./build.sh --backend -f net6.0 -r win-x64 ./build.sh --backend -f net6.0 -r win-x64
TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage
displayName: Coverage Unit Tests displayName: Coverage Unit Tests
- task: SonarCloudAnalyze@2 - task: SonarCloudAnalyze@3
condition: eq(variables['System.PullRequest.IsFork'], 'False') condition: eq(variables['System.PullRequest.IsFork'], 'False')
displayName: Publish SonarCloud Results displayName: Publish SonarCloud Results
- task: reportgenerator@5.3.11 - task: reportgenerator@5.3.11
+2 -1
View File
@@ -26,6 +26,7 @@ module.exports = (env) => {
const config = { const config = {
mode: isProduction ? 'production' : 'development', mode: isProduction ? 'production' : 'development',
devtool: isProduction ? 'source-map' : 'eval-source-map', devtool: isProduction ? 'source-map' : 'eval-source-map',
target: 'web',
stats: { stats: {
children: false children: false
@@ -181,7 +182,7 @@ module.exports = (env) => {
loose: true, loose: true,
debug: false, debug: false,
useBuiltIns: 'entry', useBuiltIns: 'entry',
corejs: 3 corejs: '3.39'
} }
] ]
] ]
+11 -11
View File
@@ -25,10 +25,10 @@
"defaults" "defaults"
], ],
"dependencies": { "dependencies": {
"@fortawesome/fontawesome-free": "6.6.0", "@fortawesome/fontawesome-free": "6.7.1",
"@fortawesome/fontawesome-svg-core": "6.6.0", "@fortawesome/fontawesome-svg-core": "6.7.1",
"@fortawesome/free-regular-svg-icons": "6.6.0", "@fortawesome/free-regular-svg-icons": "6.7.1",
"@fortawesome/free-solid-svg-icons": "6.6.0", "@fortawesome/free-solid-svg-icons": "6.7.1",
"@fortawesome/react-fontawesome": "0.2.2", "@fortawesome/react-fontawesome": "0.2.2",
"@microsoft/signalr": "6.0.25", "@microsoft/signalr": "6.0.25",
"@sentry/browser": "7.119.1", "@sentry/browser": "7.119.1",
@@ -86,13 +86,13 @@
"typescript": "5.1.6" "typescript": "5.1.6"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.25.8", "@babel/core": "7.26.0",
"@babel/eslint-parser": "7.25.8", "@babel/eslint-parser": "7.25.9",
"@babel/plugin-proposal-export-default-from": "7.25.8", "@babel/plugin-proposal-export-default-from": "7.25.9",
"@babel/plugin-syntax-dynamic-import": "7.8.3", "@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/preset-env": "7.25.8", "@babel/preset-env": "7.26.0",
"@babel/preset-react": "7.25.7", "@babel/preset-react": "7.26.3",
"@babel/preset-typescript": "7.25.7", "@babel/preset-typescript": "7.26.0",
"@types/lodash": "4.14.195", "@types/lodash": "4.14.195",
"@types/react-lazyload": "3.2.3", "@types/react-lazyload": "3.2.3",
"@types/redux-actions": "2.6.5", "@types/redux-actions": "2.6.5",
@@ -102,7 +102,7 @@
"babel-loader": "9.2.1", "babel-loader": "9.2.1",
"babel-plugin-inline-classnames": "2.0.1", "babel-plugin-inline-classnames": "2.0.1",
"babel-plugin-transform-react-remove-prop-types": "0.4.24", "babel-plugin-transform-react-remove-prop-types": "0.4.24",
"core-js": "3.38.1", "core-js": "3.39.0",
"css-loader": "6.8.1", "css-loader": "6.8.1",
"css-modules-typescript-loader": "4.0.1", "css-modules-typescript-loader": "4.0.1",
"eslint": "8.57.1", "eslint": "8.57.1",
+29
View File
@@ -99,6 +99,35 @@
<RootNamespace Condition="'$(ReadarrProject)'=='true'">$(MSBuildProjectName.Replace('Readarr','NzbDrone'))</RootNamespace> <RootNamespace Condition="'$(ReadarrProject)'=='true'">$(MSBuildProjectName.Replace('Readarr','NzbDrone'))</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition="'$(TestProject)'!='true'">
<!-- Annotates .NET assemblies with repository information including SHA -->
<!-- Sentry uses this to link directly to GitHub at the exact version/file/line -->
<!-- This is built-in on .NET 8 and can be removed once the project is updated -->
<PackageReference Include="Microsoft.SourceLink.GitHub" />
</ItemGroup>
<!-- Sentry specific configuration: Only in Release mode -->
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<!-- https://docs.sentry.io/platforms/dotnet/configuration/msbuild/ -->
<!-- OrgSlug, ProjectSlug and AuthToken are required.
They can be set below, via argument to 'msbuild -p:' or environment variable -->
<SentryOrg></SentryOrg>
<SentryProject></SentryProject>
<SentryUrl></SentryUrl> <!-- If empty, assumed to be sentry.io -->
<SentryAuthToken></SentryAuthToken> <!-- Use env var instead: SENTRY_AUTH_TOKEN -->
<!-- Upload PDBs to Sentry, enabling stack traces with line numbers and file paths
without the need to deploy the application with PDBs -->
<SentryUploadSymbols>true</SentryUploadSymbols>
<!-- Source Link settings -->
<!-- https://github.com/dotnet/sourcelink/blob/main/docs/README.md#publishrepositoryurl -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Embeds all source code in the respective PDB. This can make it a bit bigger but since it'll be uploaded
to Sentry and not distributed to run on the server, it helps debug crashes while making releases smaller -->
<EmbedAllSources>true</EmbedAllSources>
</PropertyGroup>
<!-- Standard testing packages --> <!-- Standard testing packages -->
<ItemGroup Condition="'$(TestProject)'=='true'"> <ItemGroup Condition="'$(TestProject)'=='true'">
<PackageReference Include="Microsoft.NET.Test.Sdk" /> <PackageReference Include="Microsoft.NET.Test.Sdk" />
+10 -8
View File
@@ -9,7 +9,7 @@
<PackageVersion Include="DryIoc.Microsoft.DependencyInjection" Version="6.2.0" /> <PackageVersion Include="DryIoc.Microsoft.DependencyInjection" Version="6.2.0" />
<PackageVersion Include="Equ" Version="2.3.0" /> <PackageVersion Include="Equ" Version="2.3.0" />
<PackageVersion Include="FluentAssertions" Version="5.10.3" /> <PackageVersion Include="FluentAssertions" Version="5.10.3" />
<PackageVersion Include="Polly" Version="8.4.2" /> <PackageVersion Include="Polly" Version="8.5.1" />
<PackageVersion Include="Servarr.FluentMigrator.Runner" Version="3.3.2.9" /> <PackageVersion Include="Servarr.FluentMigrator.Runner" Version="3.3.2.9" />
<PackageVersion Include="Servarr.FluentMigrator.Runner.SQLite" Version="3.3.2.9" /> <PackageVersion Include="Servarr.FluentMigrator.Runner.SQLite" Version="3.3.2.9" />
<PackageVersion Include="Servarr.FluentMigrator.Runner.Postgres" Version="3.3.2.9" /> <PackageVersion Include="Servarr.FluentMigrator.Runner.Postgres" Version="3.3.2.9" />
@@ -17,14 +17,16 @@
<PackageVersion Include="Ical.Net" Version="4.3.1" /> <PackageVersion Include="Ical.Net" Version="4.3.1" />
<PackageVersion Include="ImpromptuInterface" Version="7.0.1" /> <PackageVersion Include="ImpromptuInterface" Version="7.0.1" />
<PackageVersion Include="LazyCache" Version="2.4.0" /> <PackageVersion Include="LazyCache" Version="2.4.0" />
<PackageVersion Include="Mailkit" Version="3.6.0" /> <PackageVersion Include="Mailkit" Version="4.8.0" />
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.35" /> <PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="6.0.35" />
<PackageVersion Include="Microsoft.Data.SqlClient" Version="2.1.7" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="6.0.2" /> <PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="6.0.1" /> <PackageVersion Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" /> <PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.2" /> <PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" /> <PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" /> <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
<PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" /> <PackageVersion Include="Microsoft.Win32.Registry" Version="5.0.0" />
<PackageVersion Include="Mono.Posix.NETStandard" Version="5.20.1.34-servarr22" /> <PackageVersion Include="Mono.Posix.NETStandard" Version="5.20.1.34-servarr22" />
<PackageVersion Include="Moq" Version="4.17.2" /> <PackageVersion Include="Moq" Version="4.17.2" />
@@ -34,28 +36,28 @@
<PackageVersion Include="NLog.Extensions.Logging" Version="5.2.3" /> <PackageVersion Include="NLog.Extensions.Logging" Version="5.2.3" />
<PackageVersion Include="NLog" Version="5.1.4" /> <PackageVersion Include="NLog" Version="5.1.4" />
<PackageVersion Include="NLog.Targets.Syslog" Version="7.0.0" /> <PackageVersion Include="NLog.Targets.Syslog" Version="7.0.0" />
<PackageVersion Include="Npgsql" Version="7.0.8" /> <PackageVersion Include="Npgsql" Version="7.0.9" />
<PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageVersion Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageVersion Include="NUnit" Version="3.14.0" /> <PackageVersion Include="NUnit" Version="3.14.0" />
<PackageVersion Include="NunitXml.TestLogger" Version="3.0.117" /> <PackageVersion Include="NunitXml.TestLogger" Version="3.0.117" />
<PackageVersion Include="PdfSharpCore" Version="1.3.32" /> <PackageVersion Include="PdfSharpCore" Version="1.3.65" />
<PackageVersion Include="RestSharp.Serializers.SystemTextJson" Version="106.15.0" /> <PackageVersion Include="RestSharp.Serializers.SystemTextJson" Version="106.15.0" />
<PackageVersion Include="RestSharp" Version="106.15.0" /> <PackageVersion Include="RestSharp" Version="106.15.0" />
<PackageVersion Include="Selenium.Support" Version="3.141.0" /> <PackageVersion Include="Selenium.Support" Version="3.141.0" />
<PackageVersion Include="Selenium.WebDriver.ChromeDriver" Version="91.0.4472.10100" /> <PackageVersion Include="Selenium.WebDriver.ChromeDriver" Version="91.0.4472.10100" />
<PackageVersion Include="Sentry" Version="3.31.0" /> <PackageVersion Include="Sentry" Version="4.0.2" />
<PackageVersion Include="SharpZipLib" Version="1.4.2" /> <PackageVersion Include="SharpZipLib" Version="1.4.2" />
<PackageVersion Include="SixLabors.ImageSharp" Version="3.1.5" /> <PackageVersion Include="SixLabors.ImageSharp" Version="3.1.6" />
<PackageVersion Include="StyleCop.Analyzers" Version="1.1.118" /> <PackageVersion Include="StyleCop.Analyzers" Version="1.1.118" />
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.6.2" /> <PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.6.2" />
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.6.2" /> <PackageVersion Include="Swashbuckle.AspNetCore.SwaggerGen" Version="6.6.2" />
<PackageVersion Include="System.Buffers" Version="4.5.1" /> <PackageVersion Include="System.Buffers" Version="4.6.0" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="6.0.1" /> <PackageVersion Include="System.Configuration.ConfigurationManager" Version="6.0.1" />
<PackageVersion Include="System.Data.SQLite.Core.Servarr" Version="1.0.115.5-18" /> <PackageVersion Include="System.Data.SQLite.Core.Servarr" Version="1.0.115.5-18" />
<PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.0.24" /> <PackageVersion Include="System.IO.Abstractions.TestingHelpers" Version="17.0.24" />
<PackageVersion Include="System.IO.Abstractions" Version="17.0.24" /> <PackageVersion Include="System.IO.Abstractions" Version="17.0.24" />
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" /> <PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
<PackageVersion Include="System.Memory" Version="4.5.5" /> <PackageVersion Include="System.Memory" Version="4.6.0" />
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" /> <PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
<PackageVersion Include="System.Resources.Extensions" Version="6.0.0" /> <PackageVersion Include="System.Resources.Extensions" Version="6.0.0" />
<PackageVersion Include="System.Runtime.Loader" Version="4.3.0" /> <PackageVersion Include="System.Runtime.Loader" Version="4.3.0" />
@@ -21,9 +21,28 @@ namespace NzbDrone.Common.Test.ExtensionTests
[TestCase("1.2.3.4")] [TestCase("1.2.3.4")]
[TestCase("172.55.0.1")] [TestCase("172.55.0.1")]
[TestCase("192.55.0.1")] [TestCase("192.55.0.1")]
[TestCase("100.64.0.1")]
[TestCase("100.127.255.254")]
public void should_return_false_for_public_ip_address(string ipAddress) public void should_return_false_for_public_ip_address(string ipAddress)
{ {
IPAddress.Parse(ipAddress).IsLocalAddress().Should().BeFalse(); IPAddress.Parse(ipAddress).IsLocalAddress().Should().BeFalse();
} }
[TestCase("100.64.0.1")]
[TestCase("100.127.255.254")]
[TestCase("100.100.100.100")]
public void should_return_true_for_cgnat_ip_address(string ipAddress)
{
IPAddress.Parse(ipAddress).IsCgnatIpAddress().Should().BeTrue();
}
[TestCase("1.2.3.4")]
[TestCase("192.168.5.1")]
[TestCase("100.63.255.255")]
[TestCase("100.128.0.0")]
public void should_return_false_for_non_cgnat_ip_address(string ipAddress)
{
IPAddress.Parse(ipAddress).IsCgnatIpAddress().Should().BeFalse();
}
} }
} }
@@ -4,6 +4,7 @@ using System.Linq;
using FluentAssertions; using FluentAssertions;
using NLog; using NLog;
using NUnit.Framework; using NUnit.Framework;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Instrumentation.Sentry; using NzbDrone.Common.Instrumentation.Sentry;
using NzbDrone.Test.Common; using NzbDrone.Test.Common;
@@ -27,7 +28,7 @@ namespace NzbDrone.Common.Test.InstrumentationTests
[SetUp] [SetUp]
public void Setup() public void Setup()
{ {
_subject = new SentryTarget("https://aaaaaaaaaaaaaaaaaaaaaaaaaa@sentry.io/111111"); _subject = new SentryTarget("https://aaaaaaaaaaaaaaaaaaaaaaaaaa@sentry.io/111111", Mocker.GetMock<IAppFolderInfo>().Object);
} }
private LogEventInfo GivenLogEvent(LogLevel level, Exception ex, string message) private LogEventInfo GivenLogEvent(LogLevel level, Exception ex, string message)
+10 -9
View File
@@ -42,17 +42,18 @@ namespace NzbDrone.Common
public void CreateZip(string path, IEnumerable<string> files) public void CreateZip(string path, IEnumerable<string> files)
{ {
using (var zipFile = ZipFile.Create(path)) _logger.Debug("Creating archive {0}", path);
using var zipFile = ZipFile.Create(path);
zipFile.BeginUpdate();
foreach (var file in files)
{ {
zipFile.BeginUpdate(); zipFile.Add(file, Path.GetFileName(file));
foreach (var file in files)
{
zipFile.Add(file, Path.GetFileName(file));
}
zipFile.CommitUpdate();
} }
zipFile.CommitUpdate();
} }
private void ExtractZip(string compressedFile, string destination) private void ExtractZip(string compressedFile, string destination)
@@ -39,18 +39,24 @@ namespace NzbDrone.Common.Extensions
private static bool IsLocalIPv4(byte[] ipv4Bytes) private static bool IsLocalIPv4(byte[] ipv4Bytes)
{ {
// Link local (no IP assigned by DHCP): 169.254.0.0 to 169.254.255.255 (169.254.0.0/16) // Link local (no IP assigned by DHCP): 169.254.0.0 to 169.254.255.255 (169.254.0.0/16)
bool IsLinkLocal() => ipv4Bytes[0] == 169 && ipv4Bytes[1] == 254; var isLinkLocal = ipv4Bytes[0] == 169 && ipv4Bytes[1] == 254;
// Class A private range: 10.0.0.0 10.255.255.255 (10.0.0.0/8) // Class A private range: 10.0.0.0 10.255.255.255 (10.0.0.0/8)
bool IsClassA() => ipv4Bytes[0] == 10; var isClassA = ipv4Bytes[0] == 10;
// Class B private range: 172.16.0.0 172.31.255.255 (172.16.0.0/12) // Class B private range: 172.16.0.0 172.31.255.255 (172.16.0.0/12)
bool IsClassB() => ipv4Bytes[0] == 172 && ipv4Bytes[1] >= 16 && ipv4Bytes[1] <= 31; var isClassB = ipv4Bytes[0] == 172 && ipv4Bytes[1] >= 16 && ipv4Bytes[1] <= 31;
// Class C private range: 192.168.0.0 192.168.255.255 (192.168.0.0/16) // Class C private range: 192.168.0.0 192.168.255.255 (192.168.0.0/16)
bool IsClassC() => ipv4Bytes[0] == 192 && ipv4Bytes[1] == 168; var isClassC = ipv4Bytes[0] == 192 && ipv4Bytes[1] == 168;
return IsLinkLocal() || IsClassA() || IsClassC() || IsClassB(); return isLinkLocal || isClassA || isClassC || isClassB;
}
public static bool IsCgnatIpAddress(this IPAddress ipAddress)
{
var bytes = ipAddress.GetAddressBytes();
return bytes.Length == 4 && bytes[0] == 100 && bytes[1] >= 64 && bytes[1] <= 127;
} }
} }
} }
@@ -41,7 +41,7 @@ namespace NzbDrone.Common.Instrumentation
RegisterDebugger(); RegisterDebugger();
} }
RegisterSentry(updateApp); RegisterSentry(updateApp, appFolderInfo);
if (updateApp) if (updateApp)
{ {
@@ -62,7 +62,7 @@ namespace NzbDrone.Common.Instrumentation
LogManager.ReconfigExistingLoggers(); LogManager.ReconfigExistingLoggers();
} }
private static void RegisterSentry(bool updateClient) private static void RegisterSentry(bool updateClient, IAppFolderInfo appFolderInfo)
{ {
string dsn; string dsn;
@@ -77,7 +77,7 @@ namespace NzbDrone.Common.Instrumentation
: "https://31e00a6c63ea42c8b5fe70358526a30d@sentry.servarr.com/4"; : "https://31e00a6c63ea42c8b5fe70358526a30d@sentry.servarr.com/4";
} }
var target = new SentryTarget(dsn) var target = new SentryTarget(dsn, appFolderInfo)
{ {
Name = "sentryTarget", Name = "sentryTarget",
Layout = "${message}" Layout = "${message}"
@@ -9,6 +9,7 @@ using NLog;
using NLog.Common; using NLog.Common;
using NLog.Targets; using NLog.Targets;
using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Extensions;
using Sentry; using Sentry;
namespace NzbDrone.Common.Instrumentation.Sentry namespace NzbDrone.Common.Instrumentation.Sentry
@@ -99,7 +100,7 @@ namespace NzbDrone.Common.Instrumentation.Sentry
public bool FilterEvents { get; set; } public bool FilterEvents { get; set; }
public bool SentryEnabled { get; set; } public bool SentryEnabled { get; set; }
public SentryTarget(string dsn) public SentryTarget(string dsn, IAppFolderInfo appFolderInfo)
{ {
_sdk = SentrySdk.Init(o => _sdk = SentrySdk.Init(o =>
{ {
@@ -107,9 +108,33 @@ namespace NzbDrone.Common.Instrumentation.Sentry
o.AttachStacktrace = true; o.AttachStacktrace = true;
o.MaxBreadcrumbs = 200; o.MaxBreadcrumbs = 200;
o.Release = $"{BuildInfo.AppName}@{BuildInfo.Release}"; o.Release = $"{BuildInfo.AppName}@{BuildInfo.Release}";
o.BeforeSend = x => SentryCleanser.CleanseEvent(x); o.SetBeforeSend(x => SentryCleanser.CleanseEvent(x));
o.BeforeBreadcrumb = x => SentryCleanser.CleanseBreadcrumb(x); o.SetBeforeBreadcrumb(x => SentryCleanser.CleanseBreadcrumb(x));
o.Environment = BuildInfo.Branch; o.Environment = BuildInfo.Branch;
// Crash free run statistics (sends a ping for healthy and for crashes sessions)
o.AutoSessionTracking = false;
// Caches files in the event device is offline
// Sentry creates a 'sentry' sub directory, no need to concat here
o.CacheDirectoryPath = appFolderInfo.GetAppDataPath();
// default environment is production
if (!RuntimeInfo.IsProduction)
{
if (RuntimeInfo.IsDevelopment)
{
o.Environment = "development";
}
else if (RuntimeInfo.IsTesting)
{
o.Environment = "testing";
}
else
{
o.Environment = "other";
}
}
}); });
InitializeScope(); InitializeScope();
@@ -127,7 +152,7 @@ namespace NzbDrone.Common.Instrumentation.Sentry
{ {
SentrySdk.ConfigureScope(scope => SentrySdk.ConfigureScope(scope =>
{ {
scope.User = new User scope.User = new SentryUser
{ {
Id = HashUtil.AnonymousToken() Id = HashUtil.AnonymousToken()
}; };
@@ -169,9 +194,7 @@ namespace NzbDrone.Common.Instrumentation.Sentry
private void OnError(Exception ex) private void OnError(Exception ex)
{ {
var webException = ex as WebException; if (ex is WebException webException)
if (webException != null)
{ {
var response = webException.Response as HttpWebResponse; var response = webException.Response as HttpWebResponse;
var statusCode = response?.StatusCode; var statusCode = response?.StatusCode;
@@ -290,13 +313,21 @@ namespace NzbDrone.Common.Instrumentation.Sentry
} }
} }
var level = LoggingLevelMap[logEvent.Level];
var sentryEvent = new SentryEvent(logEvent.Exception) var sentryEvent = new SentryEvent(logEvent.Exception)
{ {
Level = LoggingLevelMap[logEvent.Level], Level = level,
Logger = logEvent.LoggerName, Logger = logEvent.LoggerName,
Message = logEvent.FormattedMessage Message = logEvent.FormattedMessage
}; };
if (level is SentryLevel.Fatal && logEvent.Exception is not null)
{
// Usages of 'fatal' here indicates the process will crash. In Sentry this is represented with
// the 'unhandled' exception flag
logEvent.Exception.SetSentryMechanism("Logger.Fatal", "Logger.Fatal was called", false);
}
sentryEvent.SetExtras(extras); sentryEvent.SetExtras(extras);
sentryEvent.SetFingerprint(fingerPrint); sentryEvent.SetFingerprint(fingerPrint);
@@ -6,4 +6,5 @@ public class AuthOptions
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
public string Method { get; set; } public string Method { get; set; }
public string Required { get; set; } public string Required { get; set; }
public bool? TrustCgnatIpAddresses { get; set; }
} }
@@ -313,7 +313,7 @@ namespace NzbDrone.Common.Processes
processInfo = new ProcessInfo(); processInfo = new ProcessInfo();
processInfo.Id = process.Id; processInfo.Id = process.Id;
processInfo.Name = process.ProcessName; processInfo.Name = process.ProcessName;
processInfo.StartPath = process.MainModule.FileName; processInfo.StartPath = process.MainModule?.FileName;
if (process.Id != GetCurrentProcessId() && process.HasExited) if (process.Id != GetCurrentProcessId() && process.HasExited)
{ {
@@ -711,6 +711,30 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
item.CanMoveFiles.Should().BeTrue(); item.CanMoveFiles.Should().BeTrue();
} }
[TestCase("pausedUP")]
[TestCase("stoppedUP")]
public void should_be_removable_and_should_allow_move_files_if_max_ratio_reached_after_rounding_and_paused(string state)
{
GivenGlobalSeedLimits(1.0f);
GivenCompletedTorrent(state, ratio: 1.1006066990976857f);
var item = Subject.GetItems().Single();
item.CanBeRemoved.Should().BeTrue();
item.CanMoveFiles.Should().BeTrue();
}
[TestCase("pausedUP")]
[TestCase("stoppedUP")]
public void should_be_removable_and_should_allow_move_files_if_just_under_max_ratio_reached_after_rounding_and_paused(string state)
{
GivenGlobalSeedLimits(1.0f);
GivenCompletedTorrent(state, ratio: 0.9999f);
var item = Subject.GetItems().Single();
item.CanBeRemoved.Should().BeTrue();
item.CanMoveFiles.Should().BeTrue();
}
[TestCase("pausedUP")] [TestCase("pausedUP")]
[TestCase("stoppedUP")] [TestCase("stoppedUP")]
public void should_be_removable_and_should_allow_move_files_if_overridden_max_ratio_reached_and_paused(string state) public void should_be_removable_and_should_allow_move_files_if_overridden_max_ratio_reached_and_paused(string state)
@@ -723,6 +747,30 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
item.CanMoveFiles.Should().BeTrue(); item.CanMoveFiles.Should().BeTrue();
} }
[TestCase("pausedUP")]
[TestCase("stoppedUP")]
public void should_be_removable_and_should_allow_move_files_if_overridden_max_ratio_reached_after_rounding_and_paused(string state)
{
GivenGlobalSeedLimits(2.0f);
GivenCompletedTorrent(state, ratio: 1.1006066990976857f, ratioLimit: 1.1f);
var item = Subject.GetItems().Single();
item.CanBeRemoved.Should().BeTrue();
item.CanMoveFiles.Should().BeTrue();
}
[TestCase("pausedUP")]
[TestCase("stoppedUP")]
public void should_be_removable_and_should_allow_move_files_if_just_under_overridden_max_ratio_reached_after_rounding_and_paused(string state)
{
GivenGlobalSeedLimits(2.0f);
GivenCompletedTorrent(state, ratio: 0.9999f, ratioLimit: 1.0f);
var item = Subject.GetItems().Single();
item.CanBeRemoved.Should().BeTrue();
item.CanMoveFiles.Should().BeTrue();
}
[TestCase("pausedUP")] [TestCase("pausedUP")]
[TestCase("stoppedUP")] [TestCase("stoppedUP")]
public void should_not_be_removable_if_overridden_max_ratio_not_reached_and_paused(string state) public void should_not_be_removable_if_overridden_max_ratio_not_reached_and_paused(string state)
@@ -478,6 +478,37 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests
downloadClientInfo.RemovesCompletedDownloads.Should().BeTrue(); downloadClientInfo.RemovesCompletedDownloads.Should().BeTrue();
} }
[TestCase("all", 0)]
[TestCase("days-archive", 15)]
[TestCase("days-delete", 15)]
public void should_set_history_removes_completed_downloads_false_for_separate_properties(string option, int number)
{
_config.Misc.history_retention_option = option;
_config.Misc.history_retention_number = number;
var downloadClientInfo = Subject.GetStatus();
downloadClientInfo.RemovesCompletedDownloads.Should().BeFalse();
}
[TestCase("number-archive", 10)]
[TestCase("number-delete", 10)]
[TestCase("number-archive", 0)]
[TestCase("number-delete", 0)]
[TestCase("days-archive", 3)]
[TestCase("days-delete", 3)]
[TestCase("all-archive", 0)]
[TestCase("all-delete", 0)]
public void should_set_history_removes_completed_downloads_true_for_separate_properties(string option, int number)
{
_config.Misc.history_retention_option = option;
_config.Misc.history_retention_number = number;
var downloadClientInfo = Subject.GetStatus();
downloadClientInfo.RemovesCompletedDownloads.Should().BeTrue();
}
[TestCase(@"Y:\nzbget\root", @"completed\downloads", @"vv", @"Y:\nzbget\root\completed\downloads", @"Y:\nzbget\root\completed\downloads\vv")] [TestCase(@"Y:\nzbget\root", @"completed\downloads", @"vv", @"Y:\nzbget\root\completed\downloads", @"Y:\nzbget\root\completed\downloads\vv")]
[TestCase(@"Y:\nzbget\root", @"completed", @"vv", @"Y:\nzbget\root\completed", @"Y:\nzbget\root\completed\vv")] [TestCase(@"Y:\nzbget\root", @"completed", @"vv", @"Y:\nzbget\root\completed", @"Y:\nzbget\root\completed\vv")]
[TestCase(@"/nzbget/root", @"completed/downloads", @"vv", @"/nzbget/root/completed/downloads", @"/nzbget/root/completed/downloads/vv")] [TestCase(@"/nzbget/root", @"completed/downloads", @"vv", @"/nzbget/root/completed/downloads", @"/nzbget/root/completed/downloads/vv")]
@@ -13,7 +13,7 @@ using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class BookInfoProxyFixture : CoreTest<BookInfoProxy> public class BookInfoProxyFixture : CoreTest<BookInfoProxy>
{ {
private MetadataProfile _metadataProfile; private MetadataProfile _metadataProfile;
@@ -15,7 +15,7 @@ using NzbDrone.Test.Common;
namespace NzbDrone.Core.Test.MetadataSource.Goodreads namespace NzbDrone.Core.Test.MetadataSource.Goodreads
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class BookInfoProxySearchFixture : CoreTest<BookInfoProxy> public class BookInfoProxySearchFixture : CoreTest<BookInfoProxy>
{ {
[SetUp] [SetUp]
+9 -2
View File
@@ -66,12 +66,19 @@ namespace NzbDrone.Core.Backup
{ {
_logger.ProgressInfo("Starting Backup"); _logger.ProgressInfo("Starting Backup");
var backupFolder = GetBackupFolder(backupType);
_diskProvider.EnsureFolder(_backupTempFolder); _diskProvider.EnsureFolder(_backupTempFolder);
_diskProvider.EnsureFolder(GetBackupFolder(backupType)); _diskProvider.EnsureFolder(backupFolder);
if (!_diskProvider.FolderWritable(backupFolder))
{
throw new UnauthorizedAccessException($"Backup folder {backupFolder} is not writable");
}
var dateNow = DateTime.Now; var dateNow = DateTime.Now;
var backupFilename = $"readarr_backup_v{BuildInfo.Version}_{dateNow:yyyy.MM.dd_HH.mm.ss}.zip"; var backupFilename = $"readarr_backup_v{BuildInfo.Version}_{dateNow:yyyy.MM.dd_HH.mm.ss}.zip";
var backupPath = Path.Combine(GetBackupFolder(backupType), backupFilename); var backupPath = Path.Combine(backupFolder, backupFilename);
Cleanup(); Cleanup();
@@ -53,6 +53,7 @@ namespace NzbDrone.Core.Configuration
string SyslogServer { get; } string SyslogServer { get; }
int SyslogPort { get; } int SyslogPort { get; }
string SyslogLevel { get; } string SyslogLevel { get; }
string Theme { get; }
string PostgresHost { get; } string PostgresHost { get; }
int PostgresPort { get; } int PostgresPort { get; }
string PostgresUser { get; } string PostgresUser { get; }
@@ -60,7 +61,7 @@ namespace NzbDrone.Core.Configuration
string PostgresMainDb { get; } string PostgresMainDb { get; }
string PostgresLogDb { get; } string PostgresLogDb { get; }
string PostgresCacheDb { get; } string PostgresCacheDb { get; }
string Theme { get; } bool TrustCgnatIpAddresses { get; }
} }
public class ConfigFileProvider : IConfigFileProvider public class ConfigFileProvider : IConfigFileProvider
@@ -462,5 +463,7 @@ namespace NzbDrone.Core.Configuration
{ {
SetValue("ApiKey", GenerateApiKey()); SetValue("ApiKey", GenerateApiKey());
} }
public bool TrustCgnatIpAddresses => _authOptions.TrustCgnatIpAddresses ?? GetValueBoolean("TrustCgnatIpAddresses", false, persist: false);
} }
} }
@@ -404,6 +404,12 @@ namespace NzbDrone.Core.Configuration
public string ApplicationUrl => GetValue("ApplicationUrl", string.Empty); public string ApplicationUrl => GetValue("ApplicationUrl", string.Empty);
public bool TrustCgnatIpAddresses
{
get { return GetValueBoolean("TrustCgnatIpAddresses", false); }
set { SetValue("TrustCgnatIpAddresses", value); }
}
private string GetValue(string key) private string GetValue(string key)
{ {
return GetValue(key, string.Empty); return GetValue(key, string.Empty);
@@ -620,14 +620,14 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
{ {
if (torrent.RatioLimit >= 0) if (torrent.RatioLimit >= 0)
{ {
if (torrent.Ratio >= torrent.RatioLimit) if (torrent.RatioLimit - torrent.Ratio <= 0.001f)
{ {
return true; return true;
} }
} }
else if (torrent.RatioLimit == -2 && config.MaxRatioEnabled) else if (torrent.RatioLimit == -2 && config.MaxRatioEnabled)
{ {
if (Math.Round(torrent.Ratio, 2) >= config.MaxRatio) if (config.MaxRatio - torrent.Ratio <= 0.001f)
{ {
return true; return true;
} }
@@ -263,20 +263,7 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
status.OutputRootFolders = new List<OsPath> { _remotePathMappingService.RemapRemoteToLocal(Settings.Host, category.FullPath) }; status.OutputRootFolders = new List<OsPath> { _remotePathMappingService.RemapRemoteToLocal(Settings.Host, category.FullPath) };
} }
if (config.Misc.history_retention.IsNullOrWhiteSpace()) status.RemovesCompletedDownloads = RemovesCompletedDownloads(config);
{
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);
status.RemovesCompletedDownloads = daysRetention < 14;
}
else
{
status.RemovesCompletedDownloads = config.Misc.history_retention != "0";
}
return status; return status;
} }
@@ -518,6 +505,43 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
return categories.Contains(category); return categories.Contains(category);
} }
private bool RemovesCompletedDownloads(SabnzbdConfig config)
{
var retention = config.Misc.history_retention;
var option = config.Misc.history_retention_option;
var number = config.Misc.history_retention_number;
switch (option)
{
case "all":
return false;
case "number-archive":
case "number-delete":
return true;
case "days-archive":
case "days-delete":
return number < 14;
case "all-archive":
case "all-delete":
return true;
}
// TODO: Remove these checks once support for SABnzbd < 4.3 is removed
if (retention.IsNullOrWhiteSpace())
{
return false;
}
if (retention.EndsWith("d"))
{
int.TryParse(config.Misc.history_retention.AsSpan(0, config.Misc.history_retention.Length - 1),
out var daysRetention);
return daysRetention < 14;
}
return retention != "0";
}
private bool ValidatePath(DownloadClientItem downloadClientItem) private bool ValidatePath(DownloadClientItem downloadClientItem)
{ {
var downloadItemOutputPath = downloadClientItem.OutputPath; var downloadItemOutputPath = downloadClientItem.OutputPath;
@@ -30,6 +30,8 @@ namespace NzbDrone.Core.Download.Clients.Sabnzbd
public bool enable_date_sorting { get; set; } public bool enable_date_sorting { get; set; }
public bool pre_check { get; set; } public bool pre_check { get; set; }
public string history_retention { get; set; } public string history_retention { get; set; }
public string history_retention_option { get; set; }
public int history_retention_number { get; set; }
} }
public class SabnzbdCategory public class SabnzbdCategory
@@ -4,6 +4,7 @@ using System.Net;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using NLog; using NLog;
using NzbDrone.Common.Cache; using NzbDrone.Common.Cache;
using NzbDrone.Common.EnvironmentInfo;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
using NzbDrone.Common.Http; using NzbDrone.Common.Http;
using NzbDrone.Common.Serializer; using NzbDrone.Common.Serializer;
@@ -208,7 +209,7 @@ namespace NzbDrone.Core.Download.Clients.Transmission
private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false) private void AuthenticateClient(HttpRequestBuilder requestBuilder, TransmissionSettings settings, bool reauthenticate = false)
{ {
var authKey = string.Format("{0}:{1}", requestBuilder.BaseUrl, settings.Password); var authKey = $"{requestBuilder.BaseUrl}:{settings.Password}";
var sessionId = _authSessionIDCache.Find(authKey); var sessionId = _authSessionIDCache.Find(authKey);
@@ -220,24 +221,26 @@ namespace NzbDrone.Core.Download.Clients.Transmission
authLoginRequest.SuppressHttpError = true; authLoginRequest.SuppressHttpError = true;
var response = _httpClient.Execute(authLoginRequest); var response = _httpClient.Execute(authLoginRequest);
if (response.StatusCode == HttpStatusCode.MovedPermanently)
{
var url = response.Headers.GetSingleValue("Location");
throw new DownloadClientException("Remote site redirected to " + url); switch (response.StatusCode)
}
else if (response.StatusCode == HttpStatusCode.Conflict)
{ {
sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id"); case HttpStatusCode.MovedPermanently:
var url = response.Headers.GetSingleValue("Location");
if (sessionId == null) throw new DownloadClientException("Remote site redirected to " + url);
{ case HttpStatusCode.Forbidden:
throw new DownloadClientException("Remote host did not return a Session Id."); throw new DownloadClientException($"Failed to authenticate with Transmission. It may be necessary to add {BuildInfo.AppName}'s IP address to RPC whitelist.");
} case HttpStatusCode.Conflict:
} sessionId = response.Headers.GetSingleValue("X-Transmission-Session-Id");
else
{ if (sessionId == null)
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission."); {
throw new DownloadClientException("Remote host did not return a Session Id.");
}
break;
default:
throw new DownloadClientAuthenticationException("Failed to authenticate with Transmission.");
} }
_logger.Debug("Transmission authentication succeeded."); _logger.Debug("Transmission authentication succeeded.");
@@ -184,7 +184,7 @@ namespace NzbDrone.Core.ImportLists
report.BookGoodreadsId = remoteBook.ForeignBookId; report.BookGoodreadsId = remoteBook.ForeignBookId;
report.Book = remoteBook.Title; report.Book = remoteBook.Title;
report.Author ??= remoteBook.AuthorMetadata.Value.Name; report.Author ??= remoteBook.AuthorMetadata.Value.Name;
report.AuthorGoodreadsId ??= remoteBook.AuthorMetadata.Value.Name; report.AuthorGoodreadsId ??= remoteBook.AuthorMetadata.Value.ForeignAuthorId;
} }
catch (BookNotFoundException) catch (BookNotFoundException)
{ {
+13 -1
View File
@@ -784,5 +784,17 @@
"DisabledForLocalAddresses": "Desactivat per a adreces locals", "DisabledForLocalAddresses": "Desactivat per a adreces locals",
"Enabled": "Habilitat", "Enabled": "Habilitat",
"External": "Extern", "External": "Extern",
"ApiKey": "Clau API" "ApiKey": "Clau API",
"FailedToFetchUpdates": "No s'han pogut obtenir les actualitzacions",
"AptUpdater": "Utilitzeu apt per a instal·lar l'actualització",
"BuiltIn": "Integrat",
"CurrentlyInstalled": "Instal·lat actualment",
"DockerUpdater": "actualitzeu el contenidor Docker per a rebre l'actualització",
"ExternalUpdater": "{appName} està configurat per a utilitzar un mecanisme d'actualització extern",
"InstallLatest": "Instal·la l'últim",
"OnLatestVersion": "La darrera versió de {appName} ja està instal·lada",
"Script": "Script",
"UnmappedFiles": "Carpetes sense mapejar",
"UpdateAppDirectlyLoadError": "No es pot actualitzar {appName} directament,",
"AddMissing": "Afegeix faltants"
} }
+28 -26
View File
@@ -13,26 +13,26 @@
"60MinutesSixty": "60 minut: {0}", "60MinutesSixty": "60 minut: {0}",
"About": "O aplikaci", "About": "O aplikaci",
"AddListExclusion": "Přidat vyloučení seznamu", "AddListExclusion": "Přidat vyloučení seznamu",
"AddingTag": "Přidání značky", "AddingTag": "Přidáštítku",
"AgeWhenGrabbed": "Stáří (kdy bylo získáno)", "AgeWhenGrabbed": "Stáří (kdy bylo získáno)",
"AlreadyInYourLibrary": "Již máte ve své knihovně", "AlreadyInYourLibrary": "Již máte ve své knihovně",
"AlternateTitles": "Alternativní název", "AlternateTitles": "Alternativní název",
"Analytics": "Analýzy", "Analytics": "Analýzy",
"AnalyticsEnabledHelpText": "Odesílejte anonymní informace o použití a chybách na servery {appName}u. To zahrnuje informace o vašem prohlížeči, které stránky {appName} WebUI používáte, hlášení chyb a také verzi operačního systému a běhového prostředí. Tyto informace použijeme k upřednostnění funkcí a oprav chyb.", "AnalyticsEnabledHelpText": "Odesílejte anonymní informace o použití a chybách na servery {appName}u. To zahrnuje informace o vašem prohlížeči, které stránky {appName} WebUI používáte, hlášení chyb a také verzi operačního systému a běhového prostředí. Tyto informace použijeme k upřednostnění funkcí a oprav chyb.",
"AppDataDirectory": "Adresář AppData", "AppDataDirectory": "Adresář AppData",
"ApplyTags": "Použít značky", "ApplyTags": "Použít štítky",
"Authentication": "Ověřování", "Authentication": "Ověřování",
"AuthenticationMethodHelpText": "Vyžadovat uživatelské jméno a heslo pro přístup k {appName}", "AuthenticationMethodHelpText": "Vyžadovat uživatelské jméno a heslo pro přístup k {appName}u",
"AuthorClickToChangeBook": "Kliknutím změníte film", "AuthorClickToChangeBook": "Kliknutím změníte film",
"AutoRedownloadFailedHelpText": "Automatické vyhledání a pokus o stažení jiného vydání", "AutoRedownloadFailedHelpText": "Automatické vyhledání a pokus o stažení jiného vydání",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Filmy odstraněné z disku jsou automaticky sledovány v {appName}u", "AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Filmy odstraněné z disku jsou automaticky sledovány v {appName}u",
"Automatic": "Automatický", "Automatic": "Automatický",
"BackupFolderHelpText": "Relativní cesty budou v adresáři AppData společnosti {appName}", "BackupFolderHelpText": "Relativní cesty budou v adresáři AppData společnosti {appName}",
"BackupNow": "Ihned zálohovat", "BackupNow": "Zálohovat nyní",
"BackupRetentionHelpText": "Automatické zálohy starší než doba uchovávání budou automaticky vyčištěny", "BackupRetentionHelpText": "Automatické zálohy starší než doba uchovávání budou automaticky vyčištěny",
"Backups": "Zálohy", "Backups": "Zálohy",
"BindAddress": "Vázat adresu", "BindAddress": "Vázat adresu",
"BindAddressHelpText": "Platná IP adresa, localhost nebo '*' pro všechna rozhraní", "BindAddressHelpText": "Platná IP adresa, localhost nebo * pro všechna rozhraní",
"BindAddressHelpTextWarning": "Vyžaduje restart, aby se projevilo", "BindAddressHelpTextWarning": "Vyžaduje restart, aby se projevilo",
"BookIsDownloading": "Film se stahuje", "BookIsDownloading": "Film se stahuje",
"BookIsDownloadingInterp": "Film se stahuje - {0}% {1}", "BookIsDownloadingInterp": "Film se stahuje - {0}% {1}",
@@ -41,8 +41,8 @@
"Calendar": "Kalendář", "Calendar": "Kalendář",
"CalendarWeekColumnHeaderHelpText": "Zobrazuje se nad každým sloupcem, když je aktivní zobrazení týden", "CalendarWeekColumnHeaderHelpText": "Zobrazuje se nad každým sloupcem, když je aktivní zobrazení týden",
"Cancel": "Zrušit", "Cancel": "Zrušit",
"CancelPendingTask": "Opravdu chcete zrušit tento nevyřízený úkol?", "CancelPendingTask": "Opravdu chcete zrušit tento úkol čekající na vyřízení?",
"CertificateValidation": "Ověření certifikátu", "CertificateValidation": "Ověřování certifikátu",
"CertificateValidationHelpText": "Změňte přísnost ověřování certifikátů HTTPS. Neměňte, pokud nerozumíte rizikům.", "CertificateValidationHelpText": "Změňte přísnost ověřování certifikátů HTTPS. Neměňte, pokud nerozumíte rizikům.",
"ChangeFileDate": "Změnit datum souboru", "ChangeFileDate": "Změnit datum souboru",
"ChangeHasNotBeenSavedYet": "Změna ještě nebyla uložena", "ChangeHasNotBeenSavedYet": "Změna ještě nebyla uložena",
@@ -51,7 +51,7 @@
"ChmodFolderHelpTextWarning": "Funguje to pouze v případě, že je uživatel souboru {appName} vlastníkem souboru. Je lepší zajistit, aby stahovací klient správně nastavil oprávnění.", "ChmodFolderHelpTextWarning": "Funguje to pouze v případě, že je uživatel souboru {appName} vlastníkem souboru. Je lepší zajistit, aby stahovací klient správně nastavil oprávnění.",
"ChownGroupHelpText": "Název skupiny nebo gid. Použijte gid pro vzdálené systémy souborů.", "ChownGroupHelpText": "Název skupiny nebo gid. Použijte gid pro vzdálené systémy souborů.",
"ChownGroupHelpTextWarning": "Funguje to pouze v případě, že je uživatel souboru {appName} vlastníkem souboru. Je lepší zajistit, aby stahovací klient používal stejnou skupinu jako {appName}.", "ChownGroupHelpTextWarning": "Funguje to pouze v případě, že je uživatel souboru {appName} vlastníkem souboru. Je lepší zajistit, aby stahovací klient používal stejnou skupinu jako {appName}.",
"Clear": "Vyčistit", "Clear": "Vymazat",
"ClickToChangeQuality": "Kliknutím změníte kvalitu", "ClickToChangeQuality": "Kliknutím změníte kvalitu",
"ClientPriority": "Priorita klienta", "ClientPriority": "Priorita klienta",
"CloneIndexer": "Klonovat indexátor", "CloneIndexer": "Klonovat indexátor",
@@ -68,7 +68,7 @@
"CutoffHelpText": "Jakmile je této kvality dosaženo, {appName} již nebude stahovat filmy", "CutoffHelpText": "Jakmile je této kvality dosaženo, {appName} již nebude stahovat filmy",
"CutoffUnmet": "Mezní hodnota nesplněna", "CutoffUnmet": "Mezní hodnota nesplněna",
"DatabaseMigration": "Migrace databáze", "DatabaseMigration": "Migrace databáze",
"Dates": "Termíny", "Dates": "Data",
"DelayProfile": "Profil zpoždění", "DelayProfile": "Profil zpoždění",
"DelayProfiles": "Profily zpoždění", "DelayProfiles": "Profily zpoždění",
"DelayingDownloadUntilInterp": "Zpoždění stahování do {0} o {1}", "DelayingDownloadUntilInterp": "Zpoždění stahování do {0} o {1}",
@@ -429,8 +429,8 @@
"UsenetDelay": "Usenet Zpoždění", "UsenetDelay": "Usenet Zpoždění",
"UsenetDelayHelpText": "Zpoždění v minutách čekání před uvolněním z Usenetu", "UsenetDelayHelpText": "Zpoždění v minutách čekání před uvolněním z Usenetu",
"Username": "Uživatelské jméno", "Username": "Uživatelské jméno",
"BranchUpdate": "Pobočka, která se má použít k aktualizaci {appName}", "BranchUpdate": "Větev použitá k aktualizaci {appName}u",
"BranchUpdateMechanism": "Pobočka používaná mechanismem externí aktualizace", "BranchUpdateMechanism": "Větev použitá externím aktualizačním mechanismem",
"Version": "Verze", "Version": "Verze",
"WeekColumnHeader": "Záhlaví sloupce týdne", "WeekColumnHeader": "Záhlaví sloupce týdne",
"Year": "Rok", "Year": "Rok",
@@ -593,12 +593,12 @@
"NoChange": "Žádná změna", "NoChange": "Žádná změna",
"RemovingTag": "Odebírání značky", "RemovingTag": "Odebírání značky",
"SetTags": "Nastavit značky", "SetTags": "Nastavit značky",
"ApplyTagsHelpTextAdd": "Přidat: Přidá značky k již existujícímu seznamu", "ApplyTagsHelpTextAdd": "Přidat: Přidat štítky do existujícího seznamu štítků",
"ApplyTagsHelpTextHowToApplyDownloadClients": "Jak použít značky na vybrané klienty pro stahování", "ApplyTagsHelpTextHowToApplyDownloadClients": "Jak použít značky na vybrané klienty pro stahování",
"ApplyTagsHelpTextHowToApplyImportLists": "Jak použít značky na vybrané seznamy k importu", "ApplyTagsHelpTextHowToApplyImportLists": "Jak použít značky na vybrané seznamy k importu",
"ApplyTagsHelpTextHowToApplyIndexers": "Jak použít značky na vybrané indexery", "ApplyTagsHelpTextHowToApplyIndexers": "Jak použít štítky na vybrané indexery",
"ApplyTagsHelpTextRemove": "Odebrat: Odebrat zadané značky", "ApplyTagsHelpTextRemove": "Odebrat: Odebrat zadané štítky",
"ApplyTagsHelpTextReplace": "Nahradit: Nahradit značky zadanými značkami (prázdné pole vymaže všechny značky)", "ApplyTagsHelpTextReplace": "Nahradit: Nahradit štítky zadanými štítky (prázdné pole vymaže všechny štítky)",
"DeleteSelectedDownloadClients": "Odstranit klienta pro stahování", "DeleteSelectedDownloadClients": "Odstranit klienta pro stahování",
"DeleteSelectedIndexersMessageText": "Opravdu chcete smazat {count} vybraný(ch) indexer(ů)?", "DeleteSelectedIndexersMessageText": "Opravdu chcete smazat {count} vybraný(ch) indexer(ů)?",
"Yes": "Ano", "Yes": "Ano",
@@ -618,9 +618,9 @@
"FreeSpace": "Volný prostor", "FreeSpace": "Volný prostor",
"System": "Systém", "System": "Systém",
"TotalSpace": "Celkový prostor", "TotalSpace": "Celkový prostor",
"ConnectionLost": "Spojení ztraceno", "ConnectionLost": "Ztráta spojení",
"ConnectionLostReconnect": "{appName} se pokusí připojit automaticky, nebo můžete kliknout na tlačítko znovunačtení níže.", "ConnectionLostReconnect": "{appName} se pokusí připojit automaticky, nebo můžete kliknout na tlačítko znovunačtení níže.",
"ConnectionLostToBackend": "{appName} ztratil spojení s backendem a pro obnovení funkčnosti bude třebaho znovu načíst.", "ConnectionLostToBackend": "{appName} ztratil spojení s backendem a pro obnovení funkčnosti bude potřeba ho znovu načíst.",
"Large": "Velký", "Large": "Velký",
"LastDuration": "lastDuration", "LastDuration": "lastDuration",
"Ui": "UI", "Ui": "UI",
@@ -630,7 +630,7 @@
"NextExecution": "Další spuštění", "NextExecution": "Další spuštění",
"ClickToChangeReleaseGroup": "Kliknutím změníte skupinu vydání", "ClickToChangeReleaseGroup": "Kliknutím změníte skupinu vydání",
"ApplicationURL": "URL aplikace", "ApplicationURL": "URL aplikace",
"ApplicationUrlHelpText": "Externí adresa URL této aplikace včetně http(s)://, portu a základní adresy URL", "ApplicationUrlHelpText": "Externí adresa URL této aplikace včetně http(s)://, portu a základu URL",
"Continuing": "Pokračující", "Continuing": "Pokračující",
"AutomaticUpdatesDisabledDocker": "Automatické aktualizace nejsou při použití aktualizačního mechanismu Docker přímo podporovány. Obraz kontejneru je nutné aktualizovat mimo {appName} nebo použít skript", "AutomaticUpdatesDisabledDocker": "Automatické aktualizace nejsou při použití aktualizačního mechanismu Docker přímo podporovány. Obraz kontejneru je nutné aktualizovat mimo {appName} nebo použít skript",
"AppUpdated": "{appName} aktualizován", "AppUpdated": "{appName} aktualizován",
@@ -688,7 +688,7 @@
"AutoRedownloadFailedFromInteractiveSearch": "Opětovné stažení z interaktivního vyhledávání selhalo", "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í", "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í",
"SelectDropdown": "'Vybrat...", "SelectDropdown": "'Vybrat...",
"CustomFilter": "Vlastní filtry", "CustomFilter": "Vlastní filtr",
"SelectQuality": "Vyberte kvalitu", "SelectQuality": "Vyberte kvalitu",
"IndexerFlags": "Příznaky indexeru", "IndexerFlags": "Příznaky indexeru",
"InteractiveSearchModalHeader": "Interaktivní vyhledávání", "InteractiveSearchModalHeader": "Interaktivní vyhledávání",
@@ -702,13 +702,13 @@
"ConnectionSettingsUrlBaseHelpText": "Přidá předponu do {connectionName} url, jako např. {url}", "ConnectionSettingsUrlBaseHelpText": "Přidá předponu do {connectionName} url, jako např. {url}",
"AuthBasic": "Základní (vyskakovací okno prohlížeče)", "AuthBasic": "Základní (vyskakovací okno prohlížeče)",
"AuthenticationMethod": "Metoda ověřování", "AuthenticationMethod": "Metoda ověřování",
"AuthenticationMethodHelpTextWarning": "Prosím vyberte platnou metodu ověřování", "AuthenticationMethodHelpTextWarning": "Vyberte platnou metodu ověřování",
"AuthenticationRequired": "Vyžadované ověření", "AuthenticationRequired": "Vyžadováno ověření",
"AuthenticationRequiredHelpText": "Změnit, pro které požadavky je vyžadováno ověření. Pokud nerozumíte rizikům, neměňte je.", "AuthenticationRequiredHelpText": "Změnit, pro které požadavky je vyžadováno ověření. Neměňte, pokud nerozumíte rizikům.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Potvrďte nové heslo", "AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Potvrďte nové heslo",
"AuthenticationRequiredPasswordHelpTextWarning": "Vložte nové heslo", "AuthenticationRequiredPasswordHelpTextWarning": "Zadejte nové heslo",
"AuthenticationRequiredUsernameHelpTextWarning": "Vložte nové uživatelské jméno", "AuthenticationRequiredUsernameHelpTextWarning": "Zadejte nové uživatelské jméno",
"AuthenticationRequiredWarning": "Aby se zabránilo vzdálenému přístupu bez ověření, vyžaduje nyní {appName} povolení ověření. Ověřování z místních adres můžete volitelně zakázat.", "AuthenticationRequiredWarning": "Aby se zabránilo vzdálenému přístupu bez ověření, vyžaduje nyní {appName}, aby bylo povoleno ověřování. Volitelně můžete zakázat ověřování z místních adres.",
"BlocklistOnlyHint": "Blokovat a nehledat náhradu", "BlocklistOnlyHint": "Blokovat a nehledat náhradu",
"Enabled": "Povoleno", "Enabled": "Povoleno",
"ApiKey": "Klíč API", "ApiKey": "Klíč API",
@@ -724,5 +724,7 @@
"InstallLatest": "Nainstalujte nejnovější", "InstallLatest": "Nainstalujte nejnovější",
"CurrentlyInstalled": "Aktuálně nainstalováno", "CurrentlyInstalled": "Aktuálně nainstalováno",
"UnmappedFiles": "Nezmapované složky", "UnmappedFiles": "Nezmapované složky",
"AptUpdater": "K instalaci aktualizace použijte apt" "AptUpdater": "K instalaci aktualizace používat apt",
"Author": "Autor",
"Book": "Kniha"
} }
+23 -21
View File
@@ -16,7 +16,7 @@
"AlternateTitles": "Alternativ Titel", "AlternateTitles": "Alternativ Titel",
"Analytics": "Analyse", "Analytics": "Analyse",
"AnalyticsEnabledHelpText": "Send anonym brugs- og fejlinformation til {appName}s servere. Dette inkluderer information i din browser, hvilke {appName} WebUI-sider du bruger, fejlrapportering samt OS og runtime-version. Vi bruger disse oplysninger til at prioritere funktioner og fejlrettelser.", "AnalyticsEnabledHelpText": "Send anonym brugs- og fejlinformation til {appName}s servere. Dette inkluderer information i din browser, hvilke {appName} WebUI-sider du bruger, fejlrapportering samt OS og runtime-version. Vi bruger disse oplysninger til at prioritere funktioner og fejlrettelser.",
"AppDataDirectory": "AppData-bibliotek", "AppDataDirectory": "AppData-mappe",
"ApplyTags": "Anvend tags", "ApplyTags": "Anvend tags",
"Authentication": "Godkendelse", "Authentication": "Godkendelse",
"AuthenticationMethodHelpText": "Kræv brugernavn og adgangskode for at få adgang til {appName}", "AuthenticationMethodHelpText": "Kræv brugernavn og adgangskode for at få adgang til {appName}",
@@ -40,7 +40,7 @@
"Cancel": "Afbryd", "Cancel": "Afbryd",
"CancelPendingTask": "Er du sikker på, at du vil annullere denne afventende opgave?", "CancelPendingTask": "Er du sikker på, at du vil annullere denne afventende opgave?",
"CertificateValidation": "Validering af certifikat", "CertificateValidation": "Validering af certifikat",
"CertificateValidationHelpText": "Skift, hvor streng HTTPS-certificering er", "CertificateValidationHelpText": "Skift, hvor streng HTTPS-certificering er. Ændr kun dette hvis du forstå risiciene.",
"ChangeFileDate": "Skift fildato", "ChangeFileDate": "Skift fildato",
"ChangeHasNotBeenSavedYet": "Ændring er endnu ikke gemt", "ChangeHasNotBeenSavedYet": "Ændring er endnu ikke gemt",
"ChmodFolder": "chmod mappe", "ChmodFolder": "chmod mappe",
@@ -63,31 +63,31 @@
"CreateEmptyAuthorFoldersHelpText": "Opret manglende filmmapper under diskscanning", "CreateEmptyAuthorFoldersHelpText": "Opret manglende filmmapper under diskscanning",
"CreateGroup": "Opret gruppe", "CreateGroup": "Opret gruppe",
"CutoffHelpText": "Når denne kvalitet er nået, downloader {appName} ikke længere film", "CutoffHelpText": "Når denne kvalitet er nået, downloader {appName} ikke længere film",
"CutoffUnmet": "Afskåret ude", "CutoffUnmet": "Grænse ikke opnået",
"DatabaseMigration": "DB Migration", "DatabaseMigration": "DB Migration",
"DelayProfile": "Udskyd Profiler", "DelayProfile": "Udskyd Profiler",
"DelayProfiles": "Udskyd Profiler", "DelayProfiles": "Udskyd Profiler",
"DelayingDownloadUntilInterp": "Forsinker download indtil {0} kl. {1}", "DelayingDownloadUntilInterp": "Forsinker download indtil {0} kl. {1}",
"Delete": "Slet", "Delete": "Slet",
"DeleteBackup": "Slet sikkerhedskopi", "DeleteBackup": "Slet sikkerhedskopi",
"DeleteBackupMessageText": "Er du sikker på, at du vil slette sikkerhedskopien '{0}'?", "DeleteBackupMessageText": "Er du sikker på, at du vil slette sikkerhedskopien »{name}«?",
"DeleteDelayProfile": "Slet forsinkelsesprofil", "DeleteDelayProfile": "Slet forsinkelsesprofil",
"DeleteDelayProfileMessageText": "Er du sikker på, at du vil slette denne forsinkelsesprofil?", "DeleteDelayProfileMessageText": "Er du sikker på, at du vil slette denne forsinkelsesprofil?",
"DeleteDownloadClient": "Slet Download Client", "DeleteDownloadClient": "Slet Download Client",
"DeleteDownloadClientMessageText": "Er du sikker på, at du vil slette downloadklienten '{0}'?", "DeleteDownloadClientMessageText": "Er du sikker på, at du vil fjerne downloadklienten »{name}«?",
"DeleteEmptyFolders": "Slet tomme mapper", "DeleteEmptyFolders": "Slet tomme mapper",
"DeleteEmptyFoldersHelpText": "Slet tomme filmmapper under diskscanning, og når filmfiler slettes", "DeleteEmptyFoldersHelpText": "Slet tomme filmmapper under diskscanning, og når filmfiler slettes",
"DeleteImportListExclusion": "Slet udelukkelse af importliste", "DeleteImportListExclusion": "Slet udelukkelse af importliste",
"DeleteImportListExclusionMessageText": "Er du sikker på, at du vil slette denne undtagelse fra importlisten?", "DeleteImportListExclusionMessageText": "Er du sikker på, at du vil slette denne undtagelse fra importlisten?",
"DeleteImportListMessageText": "Er du sikker på, at du vil slette listen '{0}'?", "DeleteImportListMessageText": "Er du sikker på, at du vil slette listen »{name}«?",
"DeleteIndexer": "Slet Indexer", "DeleteIndexer": "Slet Indexer",
"DeleteIndexerMessageText": "Er du sikker på, at du vil slette indeksøren '{0}'?", "DeleteIndexerMessageText": "Er du sikker på, at du vil slette indeksøren »{name}«?",
"DeleteMetadataProfileMessageText": "Er du sikker på, at du vil slette kvalitetsprofilen {0}", "DeleteMetadataProfileMessageText": "Er du sikker på, at du vil slette kvalitetsprofilen {0}",
"DeleteNotification": "Slet underretning", "DeleteNotification": "Slet underretning",
"DeleteNotificationMessageText": "Er du sikker på, at du vil slette underretningen '{0}'?", "DeleteNotificationMessageText": "Er du sikker på, at du vil slette notifikationen »{name}«?",
"DeleteQualityProfile": "Slet kvalitetsprofil", "DeleteQualityProfile": "Slet kvalitetsprofil",
"DeleteQualityProfileMessageText": "Er du sikker på, at du vil slette kvalitetsprofilen {0}", "DeleteQualityProfileMessageText": "Er du sikker på, at du vil slette kvalitetsprofilen »{name}«?",
"DeleteReleaseProfile": "Slet forsinkelsesprofil", "DeleteReleaseProfile": "Slet udgivelsesprofil",
"DeleteReleaseProfileMessageText": "Er du sikker på, at du vil slette denne forsinkelsesprofil?", "DeleteReleaseProfileMessageText": "Er du sikker på, at du vil slette denne forsinkelsesprofil?",
"DeleteSelectedBookFiles": "Slet valgte filmfiler", "DeleteSelectedBookFiles": "Slet valgte filmfiler",
"DeleteSelectedBookFilesMessageText": "Er du sikker på, at du vil slette de valgte filmfiler?", "DeleteSelectedBookFilesMessageText": "Er du sikker på, at du vil slette de valgte filmfiler?",
@@ -140,7 +140,7 @@
"GoToInterp": "Gå til {0}", "GoToInterp": "Gå til {0}",
"Grab": "Tag fat", "Grab": "Tag fat",
"GrabID": "Grab ID", "GrabID": "Grab ID",
"GrabRelease": "Grab Release", "GrabRelease": "Hent udgivelse",
"GrabReleaseMessageText": "{appName} var ikke i stand til at bestemme, hvilken film denne udgivelse var til. {appName} kan muligvis ikke automatisk importere denne udgivelse. Vil du hente '{0}'?", "GrabReleaseMessageText": "{appName} var ikke i stand til at bestemme, hvilken film denne udgivelse var til. {appName} kan muligvis ikke automatisk importere denne udgivelse. Vil du hente '{0}'?",
"GrabSelected": "Greb Valgt", "GrabSelected": "Greb Valgt",
"Group": "Gruppe", "Group": "Gruppe",
@@ -151,7 +151,7 @@
"Hostname": "Værtsnavn", "Hostname": "Værtsnavn",
"ICalFeed": "iCal-feed", "ICalFeed": "iCal-feed",
"ICalHttpUrlHelpText": "Kopier denne URL til dine klienter eller klik for at abonnere, hvis din browser understøtter webcal", "ICalHttpUrlHelpText": "Kopier denne URL til dine klienter eller klik for at abonnere, hvis din browser understøtter webcal",
"ICalLink": "iCal Link", "ICalLink": "iCal-link",
"IconForCutoffUnmet": "Ikon til Cutoff Unmet", "IconForCutoffUnmet": "Ikon til Cutoff Unmet",
"IconTooltip": "Planlagt", "IconTooltip": "Planlagt",
"IgnoredAddresses": "Ignorerede adresser", "IgnoredAddresses": "Ignorerede adresser",
@@ -274,7 +274,7 @@
"ReleaseRejected": "Udgivelse afvist", "ReleaseRejected": "Udgivelse afvist",
"ReleaseWillBeProcessedInterp": "Udgivelsen behandles {0}", "ReleaseWillBeProcessedInterp": "Udgivelsen behandles {0}",
"Reload": "Genindlæs", "Reload": "Genindlæs",
"RemotePathMappings": "Remote Path Mappings", "RemotePathMappings": "Sammenkædning med fjernsti",
"Remove": "Fjerne", "Remove": "Fjerne",
"RemoveCompletedDownloadsHelpText": "Fjern importerede downloads fra downloadklienthistorik", "RemoveCompletedDownloadsHelpText": "Fjern importerede downloads fra downloadklienthistorik",
"RemoveFailedDownloadsHelpText": "Fjern mislykkede downloads fra downloadklienthistorik", "RemoveFailedDownloadsHelpText": "Fjern mislykkede downloads fra downloadklienthistorik",
@@ -458,7 +458,7 @@
"Blocklist": "Blacklist", "Blocklist": "Blacklist",
"BlocklistRelease": "Udgivelse af sortliste", "BlocklistRelease": "Udgivelse af sortliste",
"SelectedCountBooksSelectedInterp": "{0} Film (er) valgt", "SelectedCountBooksSelectedInterp": "{0} Film (er) valgt",
"ThisCannotBeCancelled": "Dette kan ikke annulleres en gang startet uden genstart af {appName}.", "ThisCannotBeCancelled": "Dette kan ikke annulleres når først det er startet uden at du deaktiverer alle dine indeksører.",
"UnselectAll": "Fravælg alle", "UnselectAll": "Fravælg alle",
"UpdateSelected": "Opdatering valgt", "UpdateSelected": "Opdatering valgt",
"Wanted": "Ønskede", "Wanted": "Ønskede",
@@ -549,7 +549,7 @@
"MoveFiles": "Flyt filer", "MoveFiles": "Flyt filer",
"Label": "Etiket", "Label": "Etiket",
"HardlinkCopyFiles": "Hardlink/Kopir Filer", "HardlinkCopyFiles": "Hardlink/Kopir Filer",
"CustomFormatScore": "Bruger Tilpasset Format score", "CustomFormatScore": "Brugerdefineret formats resultat",
"MinimumCustomFormatScore": "Minimum tilpasset format score", "MinimumCustomFormatScore": "Minimum tilpasset format score",
"CloneCustomFormat": "Klon brugerdefineret format", "CloneCustomFormat": "Klon brugerdefineret format",
"Conditions": "Betingelser", "Conditions": "Betingelser",
@@ -572,7 +572,7 @@
"ShownClickToHide": "Vist, klik for at skjule", "ShownClickToHide": "Vist, klik for at skjule",
"HideAdvanced": "Gemt Avancerede", "HideAdvanced": "Gemt Avancerede",
"ShowAdvanced": "Vis avanceret", "ShowAdvanced": "Vis avanceret",
"ColonReplacement": "Udskiftning af tyktarm", "ColonReplacement": "Udskiftning af kolon",
"ReplaceWithDash": "Udskift med Dash", "ReplaceWithDash": "Udskift med Dash",
"ReplaceWithSpaceDash": "Udskift med Space Dash", "ReplaceWithSpaceDash": "Udskift med Space Dash",
"ReplaceWithSpaceDashSpace": "Udskift med Space Dash Space", "ReplaceWithSpaceDashSpace": "Udskift med Space Dash Space",
@@ -582,7 +582,7 @@
"Negated": "Negeret", "Negated": "Negeret",
"RemoveSelectedItemBlocklistMessageText": "Er du sikker på, at du vil fjerne de valgte emner fra sortlisten?", "RemoveSelectedItemBlocklistMessageText": "Er du sikker på, at du vil fjerne de valgte emner fra sortlisten?",
"BlocklistReleases": "Udgivelse af sortliste", "BlocklistReleases": "Udgivelse af sortliste",
"RemoveSelectedItemQueueMessageText": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?", "RemoveSelectedItemQueueMessageText": "Er du sikker på, at du vil fjerne 1 element fra køen?",
"RemoveSelectedItemsQueueMessageText": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?", "RemoveSelectedItemsQueueMessageText": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?",
"Required": "Påkrævet", "Required": "Påkrævet",
"NoEventsFound": "Ingen begivenheder fundet", "NoEventsFound": "Ingen begivenheder fundet",
@@ -618,8 +618,8 @@
"System": "System", "System": "System",
"NextExecution": "Næste udførelse", "NextExecution": "Næste udførelse",
"NoResultsFound": "Ingen resultater fundet", "NoResultsFound": "Ingen resultater fundet",
"ConnectionLost": "Forbindelse Mistet", "ConnectionLost": "Forbindelse mistet",
"ConnectionLostReconnect": "{appName} vil prøve at tilslutte automatisk, eller du kan klikke genindlæs forneden.", "ConnectionLostReconnect": "{appName} vil prøve at tilslutte automatisk. Ellers du kan klikke genindlæs forneden.",
"Location": "Beliggenhed", "Location": "Beliggenhed",
"RecentChanges": "Seneste ændringer", "RecentChanges": "Seneste ændringer",
"SomeResultsAreHiddenByTheAppliedFilter": "Nogle resultater skjules af det anvendte filter", "SomeResultsAreHiddenByTheAppliedFilter": "Nogle resultater skjules af det anvendte filter",
@@ -636,7 +636,7 @@
"ExtraFileExtensionsHelpTextsExamples": "Eksempler: '.sub, .nfo' eller 'sub, nfo'", "ExtraFileExtensionsHelpTextsExamples": "Eksempler: '.sub, .nfo' eller 'sub, nfo'",
"AutoRedownloadFailed": "Download fejlede", "AutoRedownloadFailed": "Download fejlede",
"SourceTitle": "Kildetitel", "SourceTitle": "Kildetitel",
"RemoveQueueItemConfirmation": "Er du sikker på, at du vil fjerne {0} element {1} fra køen?", "RemoveQueueItemConfirmation": "Er du sikker på, at du vil fjerne »{sourceTitle}« fra køen?",
"ImportLists": "Lister", "ImportLists": "Lister",
"ListsSettingsSummary": "Lister", "ListsSettingsSummary": "Lister",
"CustomFilter": "Bruger Tilpassede Filtere", "CustomFilter": "Bruger Tilpassede Filtere",
@@ -668,5 +668,7 @@
"UnmappedFiles": "Ikke-kortlagte mapper", "UnmappedFiles": "Ikke-kortlagte mapper",
"DockerUpdater": "opdater docker-containeren for at modtage opdateringen", "DockerUpdater": "opdater docker-containeren for at modtage opdateringen",
"ExternalUpdater": "{appName} er konfigureret til at bruge en ekstern opdateringsmekanisme", "ExternalUpdater": "{appName} er konfigureret til at bruge en ekstern opdateringsmekanisme",
"OnLatestVersion": "Den seneste version af {appName} er allerede installeret" "OnLatestVersion": "Den seneste version af {appName} er allerede installeret",
"WouldYouLikeToRestoreBackup": "Vil du gendanne sikkerhedskopien »{name}«?",
"MetadataProfile": "metadataprofil"
} }
+151 -113
View File
@@ -1,5 +1,5 @@
{ {
"PreviewRename": "Umbenennen", "PreviewRename": "Vorschau Umbenennung",
"RecyclingBin": "Papierkorb", "RecyclingBin": "Papierkorb",
"Usenet": "Usenet", "Usenet": "Usenet",
"20MinutesTwenty": "20 Minuten: {0}", "20MinutesTwenty": "20 Minuten: {0}",
@@ -17,7 +17,7 @@
"AppDataDirectory": "AppData-Verzeichnis", "AppDataDirectory": "AppData-Verzeichnis",
"ApplyTags": "Schlagworte anwenden", "ApplyTags": "Schlagworte anwenden",
"Authentication": "Authentifizierung", "Authentication": "Authentifizierung",
"AuthenticationMethodHelpText": "Für den Zugriff auf Readarr sind Benutzername und Passwort erforderlich", "AuthenticationMethodHelpText": "Für den Zugriff auf {appName} sind Benutzername und Passwort erforderlich",
"AuthorClickToChangeBook": "Klicken um den Film zu bearbeiten", "AuthorClickToChangeBook": "Klicken um den Film zu bearbeiten",
"AutoRedownloadFailedHelpText": "Suchen Sie automatisch nach einer anderen Version und versuchen Sie, sie herunterzuladen", "AutoRedownloadFailedHelpText": "Suchen Sie automatisch nach einer anderen Version und versuchen Sie, sie herunterzuladen",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Auf der Festplatte gelöschte Filme auch automatisch in {appName} nicht mehr beobachten", "AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Auf der Festplatte gelöschte Filme auch automatisch in {appName} nicht mehr beobachten",
@@ -57,7 +57,7 @@
"Connections": "Verbindungen", "Connections": "Verbindungen",
"CopyUsingHardlinksHelpText": "Hardlinks erstellen wenn Torrents die noch geseeded werden kopiert werden sollen", "CopyUsingHardlinksHelpText": "Hardlinks erstellen wenn Torrents die noch geseeded werden kopiert werden sollen",
"CopyUsingHardlinksHelpTextWarning": "Dateisperren Gelegentlich kann es vorkommen, dass Dateisperren das Umbenennen von Dateien verhindern, die gerade geseeded werden. Sie können das Seeding vorübergehend deaktivieren und die Umbenennungsfunktion von Readarr als Workaround verwenden.", "CopyUsingHardlinksHelpTextWarning": "Dateisperren Gelegentlich kann es vorkommen, dass Dateisperren das Umbenennen von Dateien verhindern, die gerade geseeded werden. Sie können das Seeding vorübergehend deaktivieren und die Umbenennungsfunktion von Readarr als Workaround verwenden.",
"CreateEmptyAuthorFoldersHelpText": "Leere Filmordner für fehlende Filme beim Scan erstellen", "CreateEmptyAuthorFoldersHelpText": "Leere Autorenordner für fehlende Autoren beim Scan erstellen",
"CreateGroup": "Gruppe erstellen", "CreateGroup": "Gruppe erstellen",
"CutoffHelpText": "Sobald diese Qualität erreicht wird, werden keine neuen Releases erfasst", "CutoffHelpText": "Sobald diese Qualität erreicht wird, werden keine neuen Releases erfasst",
"CutoffUnmet": "Schwelle nicht erreicht", "CutoffUnmet": "Schwelle nicht erreicht",
@@ -96,7 +96,7 @@
"DiskSpace": "Festplattenplatz", "DiskSpace": "Festplattenplatz",
"Docker": "Docker", "Docker": "Docker",
"DownloadClientSettings": "Downloader Einstellungen", "DownloadClientSettings": "Downloader Einstellungen",
"DownloadClients": "Downloader", "DownloadClients": "Download Clients",
"DownloadFailedCheckDownloadClientForMoreDetails": "Download fehlgeschlagen: Prüfe den Downloader für mehr Details", "DownloadFailedCheckDownloadClientForMoreDetails": "Download fehlgeschlagen: Prüfe den Downloader für mehr Details",
"DownloadFailedInterp": "Download fehlgeschlagen: {0}", "DownloadFailedInterp": "Download fehlgeschlagen: {0}",
"DownloadPropersAndRepacksHelpTexts1": "Automatisch Proper oder Repacks zum upgraden eines Filmes zulassen", "DownloadPropersAndRepacksHelpTexts1": "Automatisch Proper oder Repacks zum upgraden eines Filmes zulassen",
@@ -104,18 +104,18 @@
"Edit": "Bearbeiten", "Edit": "Bearbeiten",
"Edition": "Auflage", "Edition": "Auflage",
"Enable": "Aktivieren", "Enable": "Aktivieren",
"EnableAutomaticAdd": "Automatisch hinzufügen", "EnableAutomaticAdd": "Automatisches Hinzufügen aktivieren",
"EnableAutomaticSearch": "Automatische Suche einschalten", "EnableAutomaticSearch": "Automatische Suche einschalten",
"EnableColorImpairedMode": "Farbbeeinträchtigter Modus aktivieren", "EnableColorImpairedMode": "Farbenblindmodus aktivieren",
"EnableColorImpairedModeHelpText": "Alternativer Stil, um farbbeeinträchtigten Benutzern eine bessere Unterscheidung farbcodierter Informationen zu ermöglichen", "EnableColorImpairedModeHelpText": "Stiländerung, um es Farbenblinden Benutzern zu ermöglichen, farbcodierte Informationen besser zu unterscheiden",
"EnableCompletedDownloadHandlingHelpText": "Importiere fertige Downloads vom Downloader automatisch", "EnableCompletedDownloadHandlingHelpText": "Automatischer Import abgeschlossener Downloads vom Download Client",
"EnableHelpText": "Metadaten Dateien erstellen für diesen Metadata Typ", "EnableHelpText": "Aktiviere die Erstellung von Metadaten-Dateien für diesen Metadaten-Typ",
"EnableInteractiveSearch": "Interaktive Suche einschalten", "EnableInteractiveSearch": "Interaktive Suche einschalten",
"EnableRSS": "RSS aktivieren", "EnableRSS": "RSS aktivieren",
"EnableSSL": "SSL", "EnableSSL": "SSL",
"EnableSslHelpText": " Erfordert einen Neustart als Administrator", "EnableSslHelpText": " Erfordert einen Neustart als Administrator",
"Ended": "Beendet", "Ended": "Beendet",
"ErrorLoadingContents": "Fehler beim laden der Inhalte", "ErrorLoadingContents": "Fehler beim Laden von Inhalten",
"ErrorLoadingPreviews": "Fehler beim laden der Vorschauen", "ErrorLoadingPreviews": "Fehler beim laden der Vorschauen",
"Exception": "Ausnahme", "Exception": "Ausnahme",
"FailedDownloadHandling": "Verarbeitung fehlgeschlagener Downloads", "FailedDownloadHandling": "Verarbeitung fehlgeschlagener Downloads",
@@ -132,20 +132,20 @@
"ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Für mehr Infomationen klicke auf die Info-Knöpfe.", "ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Für mehr Infomationen klicke auf die Info-Knöpfe.",
"ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Für mehr Infomationen klicke auf die Info-Knöpfe.", "ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Für mehr Infomationen klicke auf die Info-Knöpfe.",
"GeneralSettings": "Allgemeine Einstellungen", "GeneralSettings": "Allgemeine Einstellungen",
"Global": "Global", "Global": "Weltweit",
"GoToInterp": "Zu {0} gehen", "GoToInterp": "Zu {0} gehen",
"Grab": "Erfasse", "Grab": "Holen",
"GrabID": "Erfass ID", "GrabID": "Erfass ID",
"GrabRelease": "Release erfassen", "GrabRelease": "Release holen",
"GrabReleaseMessageText": "Das Release konnte keinem Film zugeordnet werden. Ein automatischer Import wird nicht möglich sein. Trotzdem '{0}' erfassen?", "GrabReleaseMessageText": "Das Release konnte keinem Film zugeordnet werden. Ein automatischer Import wird nicht möglich sein. Trotzdem '{0}' erfassen?",
"GrabSelected": "Auswahl erfassen", "GrabSelected": "Auswahl abrufen",
"Group": "Gruppe", "Group": "Gruppe",
"HasPendingChangesNoChanges": "Keine Änderungen", "HasPendingChangesNoChanges": "Keine Änderungen",
"HasPendingChangesSaveChanges": "Änderungen speichern", "HasPendingChangesSaveChanges": "Änderungen speichern",
"History": "Verlauf", "History": "Verlauf",
"Host": "Host", "Host": "Host",
"Hostname": "Hostname", "Hostname": "Hostname",
"ICalFeed": "iCal-Feed", "ICalFeed": "iCal Feed",
"ICalHttpUrlHelpText": "Füge diese URL in deinen Client ein oder klicke auf abonnieren wenn dein Browser Webcal untertützt", "ICalHttpUrlHelpText": "Füge diese URL in deinen Client ein oder klicke auf abonnieren wenn dein Browser Webcal untertützt",
"ICalLink": "iCal Link", "ICalLink": "iCal Link",
"IconForCutoffUnmet": "Symbol für Schwelle nicht erreicht", "IconForCutoffUnmet": "Symbol für Schwelle nicht erreicht",
@@ -154,17 +154,17 @@
"IgnoredHelpText": "Ein Release wird abgelehnt, wenn es einen oder mehrere dieser Begriffe enthält (Groß- und Kleinschreibung wird nicht berücksichtigt)", "IgnoredHelpText": "Ein Release wird abgelehnt, wenn es einen oder mehrere dieser Begriffe enthält (Groß- und Kleinschreibung wird nicht berücksichtigt)",
"IgnoredPlaceHolder": "Neue Beschränkung hinzufügen", "IgnoredPlaceHolder": "Neue Beschränkung hinzufügen",
"IllRestartLater": "Später neustarten", "IllRestartLater": "Später neustarten",
"ImportExtraFiles": "Extra Dateien importieren", "ImportExtraFiles": "Zusätzliche Dateien importieren",
"ImportExtraFilesHelpText": "Importiere zutreffende Extra Dateien (Untertitel, nfo, etc.) nach dem Importieren einer Filmdatei", "ImportExtraFilesHelpText": "Importiere zutreffende Extra Dateien (Untertitel, nfo, etc.) nach dem Importieren einer Filmdatei",
"ImportFailedInterp": "Import fehlgeschlagen: {0}", "ImportFailedInterp": "Import fehlgeschlagen: {0}",
"ImportedTo": "Importiert nach", "ImportedTo": "Importiert nach",
"Importing": "Importiere", "Importing": "Importiere",
"IncludeHealthWarningsHelpText": "Zustandswarnung", "IncludeHealthWarningsHelpText": "Zustandswarnung",
"IncludeUnknownAuthorItemsHelpText": "Einträge ohne eine Zuordnung in der Warteschlange anzeigen. Dies könnten gelöschte Autoren, Bücher oder alles andere mit Readarrs Downloadkategorie sein", "IncludeUnknownAuthorItemsHelpText": "Einträge ohne eine Zuordnung in der Warteschlange anzeigen. Dies könnten gelöschte Autoren, Bücher oder alles andere mit Readarrs Downloadkategorie sein",
"IncludeUnmonitored": "Nicht beobachtete einbeziehen", "IncludeUnmonitored": "Unüberwachte einbeziehen",
"Indexer": "Indexer", "Indexer": "Indexer",
"IndexerPriority": "Priorität", "IndexerPriority": "Indexer-Priorität",
"IndexerSettings": "Indexer Einstellungen", "IndexerSettings": "Indexer-Einstellungen",
"Indexers": "Indexer", "Indexers": "Indexer",
"Interval": "Intervall", "Interval": "Intervall",
"IsCutoffCutoff": "Schwelle", "IsCutoffCutoff": "Schwelle",
@@ -175,7 +175,7 @@
"LoadingBookFilesFailed": "Laden der Film-Dateien fehlgeschlagen", "LoadingBookFilesFailed": "Laden der Film-Dateien fehlgeschlagen",
"Local": "Lokal", "Local": "Lokal",
"LogFiles": "Protokolldateien", "LogFiles": "Protokolldateien",
"LogLevel": "Log Level", "LogLevel": "Protokollstufe",
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "Trace logging sollte nur kurzzeitig aktiviert werden", "LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "Trace logging sollte nur kurzzeitig aktiviert werden",
"Logging": "Protokollierung", "Logging": "Protokollierung",
"Logs": "Protokolle", "Logs": "Protokolle",
@@ -187,52 +187,52 @@
"MaximumLimits": "Maximale Grenzen", "MaximumLimits": "Maximale Grenzen",
"MaximumSize": "Maximale Größe", "MaximumSize": "Maximale Größe",
"MaximumSizeHelpText": "Maximale Größe für ein zu erfassendes Release in MB. 0 bedeutet unbegrenzt.", "MaximumSizeHelpText": "Maximale Größe für ein zu erfassendes Release in MB. 0 bedeutet unbegrenzt.",
"Mechanism": "Verfahren", "Mechanism": "Mechanismus",
"MediaInfo": "Medien Information", "MediaInfo": "Medieninfo",
"MediaManagementSettings": "Medienverwaltungs Einstellungen", "MediaManagementSettings": "Einstellungen zur Medienverwaltung",
"Message": "Nachricht", "Message": "Nachricht",
"MetadataSettings": "Metadaten Einstellungen", "MetadataSettings": "Einstellungen für Metadaten",
"MinimumAge": "Mindestalter", "MinimumAge": "Mindestalter",
"MinimumAgeHelpText": "Nur Usenet: Mindestalter in Minuten der NZBs bevor sie erfasst werden. Gebe damit neuen Releases Zeit, sich bei deinem Usenet Provider zu verbreiten.", "MinimumAgeHelpText": "Nur Usenet: Mindestalter in Minuten von NZBs, bevor sie heruntergeladen werden. Verwende dies, um neuen Releases Zeit zu geben, zu deinem Usenet-Anbieter zu propagieren.",
"MinimumFreeSpace": "Mindest freier Speicher", "MinimumFreeSpace": "Mindestfreier Speicherplatz",
"MinimumFreeSpaceWhenImportingHelpText": "Importieren verhindern wenn weniger als dieser Wert als freier Speicher zur Verfügung steht", "MinimumFreeSpaceWhenImportingHelpText": "Importieren verhindern wenn weniger als dieser Wert als freier Speicher zur Verfügung steht",
"MinimumLimits": "Mindest Grenzen", "MinimumLimits": "Minimale Grenzen",
"Missing": "Fehlend", "Missing": "Fehlend",
"Mode": "Modus", "Mode": "Modus",
"Monitored": "Beobachtet", "Monitored": "Überwacht",
"MoreInfo": "Mehr Infos", "MoreInfo": "Mehr Infos",
"MustContain": "Muss beinhalten", "MustContain": "Muss enthalten",
"MustNotContain": "Darf nicht beinhalten", "MustNotContain": "Darf nicht enthalten",
"Name": "Name", "Name": "Name",
"NamingSettings": "Bennenungs Einstellungen", "NamingSettings": "Benennungseinstellungen",
"New": "Neu", "New": "Neu",
"NoBackupsAreAvailable": "Es sind keine Backups vorhanden", "NoBackupsAreAvailable": "Keine Sicherungen verfügbar",
"NoHistory": "Kein Verlauf.", "NoHistory": "Kein Verlauf.",
"NoLeaveIt": "Nein, nicht ändern", "NoLeaveIt": "Nein, lass es",
"NoLimitForAnyRuntime": "Keine Begrenzung der Laufzeiten", "NoLimitForAnyRuntime": "Kein Limit für beliebige Laufzeit",
"NoLogFiles": "Keine Log-Dateien", "NoLogFiles": "Keine Logdateien",
"NoMinimumForAnyRuntime": "Kein Minimum für Laufzeiten", "NoMinimumForAnyRuntime": "Kein Minimum für beliebige Laufzeit",
"NoUpdatesAreAvailable": "Es sind keine Updates verfügbar", "NoUpdatesAreAvailable": "Es sind keine Updates verfügbar",
"None": "Keine", "None": "Keine",
"NotificationTriggers": "Benachrichtigungs Auslöser", "NotificationTriggers": "Benachrichtigungs-Auslöser",
"OnGrabHelpText": "Erfassen", "OnGrabHelpText": "Erfassen",
"OnHealthIssueHelpText": "Zustandsproblem", "OnHealthIssueHelpText": "Zustandsproblem",
"OnRenameHelpText": "Umbennenen", "OnRenameHelpText": "Umbennenen",
"OnUpgradeHelpText": "Upgrade", "OnUpgradeHelpText": "Upgrade",
"OpenBrowserOnStart": "Browser beim Start öffnen", "OpenBrowserOnStart": "Browser beim Start öffnen",
"Options": "Optionen", "Options": "Optionen",
"Original": "Orginal", "Original": "Original",
"Overview": "Übersicht", "Overview": "Überblick",
"PackageVersion": "Paket Version", "PackageVersion": "Paketversion",
"PageSize": "Einträge pro Seite", "PageSize": "Einträge pro Seite",
"PageSizeHelpText": "Anzahl der Einträge pro Seite", "PageSizeHelpText": "Anzahl der Einträge pro Seite",
"Password": "Passwort", "Password": "Passwort",
"Path": "Pfad", "Path": "Pfad",
"Permissions": "Rechte", "Permissions": "Berechtigungen",
"Port": "Port", "Port": "Port",
"PortHelpTextWarning": "Erfordert einen Neustart", "PortHelpTextWarning": "Erfordert einen Neustart",
"PortNumber": "Port Nummer", "PortNumber": "Portnummer",
"PosterSize": "Plakatgröße", "PosterSize": "Postergröße",
"Profiles": "Profile", "Profiles": "Profile",
"Proper": "Korrekt", "Proper": "Korrekt",
"PropersAndRepacks": "Propers und Repacks", "PropersAndRepacks": "Propers und Repacks",
@@ -267,22 +267,22 @@
"ReleaseGroup": "Release-Gruppe", "ReleaseGroup": "Release-Gruppe",
"ReleaseRejected": "Release abgelehnt", "ReleaseRejected": "Release abgelehnt",
"ReleaseWillBeProcessedInterp": "Release wird verarbeitet {0}", "ReleaseWillBeProcessedInterp": "Release wird verarbeitet {0}",
"Reload": "Neuladen", "Reload": "Neu laden",
"RemotePathMappings": "Remote-Pfadzuordnungen", "RemotePathMappings": "Remote-Pfadzuordnungen",
"Remove": "Entfernen", "Remove": "Entfernen",
"RemoveCompletedDownloadsHelpText": "Importierte Downloads aus dem Downloader Verlauf entfernen", "RemoveCompletedDownloadsHelpText": "Entferne importierte Downloads aus der Download-Client-Historie",
"RemoveFailedDownloadsHelpText": "Fehlgeschlagene Downloads aus dem Downloader Verlauf entfernen", "RemoveFailedDownloadsHelpText": "Fehlgeschlagene Downloads aus dem Downloader Verlauf entfernen",
"RemoveFilter": "Filter entfernen", "RemoveFilter": "Filter entfernen",
"RemoveFromDownloadClient": "Aus dem Download Client entfernen", "RemoveFromDownloadClient": "Aus dem Download Client entfernen",
"RemoveFromQueue": "Aus der Warteschlage entfernen", "RemoveFromQueue": "Aus der Warteschlange entfernen",
"RemoveHelpTextWarning": "Dies wird den Download und alle bereits heruntergeladenen Dateien aus dem Downloader entfernen.", "RemoveHelpTextWarning": "Dies wird den Download und alle bereits heruntergeladenen Dateien aus dem Downloader entfernen.",
"RemoveSelected": "Auswahl entfernen", "RemoveSelected": "Ausgewählte entfernen",
"RemoveTagExistingTag": "Vorhandener Tag", "RemoveTagExistingTag": "Vorhandener Tag",
"RemoveTagRemovingTag": "Tag entfernen", "RemoveTagRemovingTag": "Tag entfernen",
"RemovedFromTaskQueue": "Aus der Aufgabenwarteschlange entfernt", "RemovedFromTaskQueue": "Aus der Aufgabenwarteschlange entfernt",
"RenameBooksHelpText": "Wenn das umbennen deaktiviert ist, wird der vorhandene Dateiname benutzt", "RenameBooksHelpText": "Wenn das umbennen deaktiviert ist, wird der vorhandene Dateiname benutzt",
"Reorder": "Neu sortieren", "Reorder": "Neu anordnen",
"ReplaceIllegalCharacters": "Sonderzeichen ersetzen", "ReplaceIllegalCharacters": "Illegale Zeichen ersetzen",
"RequiredHelpText": "Das Release mus mindesten eines der Begriffe beinhalten ( Groß-/Kleinschreibung wird nicht beachtet )", "RequiredHelpText": "Das Release mus mindesten eines der Begriffe beinhalten ( Groß-/Kleinschreibung wird nicht beachtet )",
"RequiredPlaceHolder": "Neue Beschränkung hinzufügen", "RequiredPlaceHolder": "Neue Beschränkung hinzufügen",
"RescanAfterRefreshHelpTextWarning": "Wenn nicht \"Immer (Always)\" ausgewählt wird, werden Dateiänderungen nicht automatisch erkannt", "RescanAfterRefreshHelpTextWarning": "Wenn nicht \"Immer (Always)\" ausgewählt wird, werden Dateiänderungen nicht automatisch erkannt",
@@ -298,35 +298,35 @@
"Result": "Ergebnis", "Result": "Ergebnis",
"RetentionHelpText": "Nur Usenet: Auf Null setzen, um eine unbegrenzte Aufbewahrung festzulegen", "RetentionHelpText": "Nur Usenet: Auf Null setzen, um eine unbegrenzte Aufbewahrung festzulegen",
"RetryingDownloadInterp": "Herunterladen nochmal versuchen {0} um {1}", "RetryingDownloadInterp": "Herunterladen nochmal versuchen {0} um {1}",
"RootFolder": "Stammordner", "RootFolder": "Root-Ordner",
"RootFolders": "Stammordner", "RootFolders": "Root-Ordner",
"RssSyncIntervalHelpText": "Intervall in Minuten. Zum deaktivieren auf 0 setzen ( Dies wird das automatische Release erfassen deaktivieren )", "RssSyncIntervalHelpText": "Intervall in Minuten. Setze auf null, um es zu deaktivieren (dies stoppt alle automatischen Release-Abfragen)",
"SSLCertPassword": "SSL Zertifikat Passwort", "SSLCertPassword": "SSL Zertifikat Passwort",
"SSLCertPath": "Pfad zum SSL Zertifikat", "SSLCertPath": "Pfad zum SSL Zertifikat",
"SSLPort": "SSL Port", "SSLPort": "SSL Port",
"Scheduled": "Geplant", "Scheduled": "Geplant",
"ScriptPath": "Script Pfad", "ScriptPath": "Skript-Pfad",
"Search": "Suche", "Search": "Suchen",
"SearchAll": "Suche alle", "SearchAll": "Alle durchsuchen",
"SearchForMissing": "Suche fehlende", "SearchForMissing": "Suche nach fehlenden Episoden",
"SearchSelected": "Auswahl suchen", "SearchSelected": "Ausgewählte durchsuchen",
"Security": "Sicherheit", "Security": "Sicherheit",
"SendAnonymousUsageData": "Sende anonyme Nutzungsdaten", "SendAnonymousUsageData": "Sende anonyme Nutzungsdaten",
"SetPermissions": "Rechte setzen", "SetPermissions": "Berechtigungen festlegen",
"SetPermissionsLinuxHelpText": "Soll CHMOD ausgeführt werden wenn Datien importiert/umbenannt werden?", "SetPermissionsLinuxHelpText": "Soll chmod beim Importieren/Umbenennen von Dateien ausgeführt werden?",
"SetPermissionsLinuxHelpTextWarning": "Wenn Sie nicht sicher sind, was diese Einstellungen bewirken, ändern Sie sie nicht.", "SetPermissionsLinuxHelpTextWarning": "Wenn Sie nicht sicher sind, was diese Einstellungen bewirken, ändern Sie sie nicht.",
"Settings": "Einstellungen", "Settings": "Einstellungen",
"ShortDateFormat": "Kurzes Datumsformat", "ShortDateFormat": "Kurzes Datumsformat",
"ShowCutoffUnmetIconHelpText": "Symbol zeigen wenn die Qualitätsschwelle noch nicht erreicht wurde", "ShowCutoffUnmetIconHelpText": "Symbol zeigen wenn die Qualitätsschwelle noch nicht erreicht wurde",
"ShowDateAdded": "Datum der Hinzufügung anzeigen", "ShowDateAdded": "Datum der Hinzufügung anzeigen",
"ShowPath": "Pfad anzeigen", "ShowPath": "Pfad anzeigen",
"ShowQualityProfile": "Qualitätsdefinition anzeigen", "ShowQualityProfile": "Qualitätsprofil anzeigen",
"ShowQualityProfileHelpText": "Qualitätsprofil unter dem Plakat anzeigen", "ShowQualityProfileHelpText": "Qualitätsprofil unter dem Poster anzeigen",
"ShowRelativeDates": "Relatives Datum anzeigen", "ShowRelativeDates": "Relative Daten anzeigen",
"ShowRelativeDatesHelpText": "Relatives (z.B.: Heute, gestern, etc) oder absolutes Datum anzeigen", "ShowRelativeDatesHelpText": "Relative (Heute/Gestern/etc.) oder absolute Daten anzeigen",
"ShowSearch": "Suche anzeigen", "ShowSearch": "Suche anzeigen",
"ShowSearchActionHelpText": "Suchbutton anzeigen beim draufzeigen", "ShowSearchActionHelpText": "Suchbutton anzeigen beim draufzeigen",
"ShowSizeOnDisk": "Belegter Speicherplatz anzeigen", "ShowSizeOnDisk": "Größe auf der Festplatte anzeigen",
"ShownAboveEachColumnWhenWeekIsTheActiveView": "Wird in der Wochenansicht über jeder Spalte angezeigt", "ShownAboveEachColumnWhenWeekIsTheActiveView": "Wird in der Wochenansicht über jeder Spalte angezeigt",
"Size": " Größe", "Size": " Größe",
"SkipFreeSpaceCheck": "Prüfung des freien Speichers überspringen", "SkipFreeSpaceCheck": "Prüfung des freien Speichers überspringen",
@@ -400,7 +400,7 @@
"UnableToLoadTags": "Tags konnten nicht geladen werden", "UnableToLoadTags": "Tags konnten nicht geladen werden",
"UnableToLoadTheCalendar": "Kalender konnte nicht geladen werden", "UnableToLoadTheCalendar": "Kalender konnte nicht geladen werden",
"UnableToLoadUISettings": "Oberflächen Einstellungen konnten nicht geladen werden", "UnableToLoadUISettings": "Oberflächen Einstellungen konnten nicht geladen werden",
"Ungroup": "Gruppe entfernen", "Ungroup": "Gruppierung aufheben",
"UnmonitoredHelpText": "Nicht beobachtete Filme im iCal-Feed einschließen", "UnmonitoredHelpText": "Nicht beobachtete Filme im iCal-Feed einschließen",
"UpdateAll": "Alle aktualisieren", "UpdateAll": "Alle aktualisieren",
"UpdateAutomaticallyHelpText": "Updates automatisch herunterladen und installieren. Sie können weiterhin über System: Updates installieren", "UpdateAutomaticallyHelpText": "Updates automatisch herunterladen und installieren. Sie können weiterhin über System: Updates installieren",
@@ -473,7 +473,7 @@
"OutputPath": "Ausgabe-Pfad", "OutputPath": "Ausgabe-Pfad",
"PortHelpText": "Calibre-Content-Server", "PortHelpText": "Calibre-Content-Server",
"Progress": "Fortschritt", "Progress": "Fortschritt",
"ReleaseTitle": "Release Titel", "ReleaseTitle": "Release-Titel",
"Actions": "Aktionen", "Actions": "Aktionen",
"Today": "Heute", "Today": "Heute",
"Tomorrow": "Morgen", "Tomorrow": "Morgen",
@@ -489,7 +489,7 @@
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "Der Filmordner und dessen Inhalt wird gelöscht.", "TheAuthorFolderAndAllOfItsContentWillBeDeleted": "Der Filmordner und dessen Inhalt wird gelöscht.",
"DeleteFilesHelpText": "Lösche die Buchdateien und Autorordner", "DeleteFilesHelpText": "Lösche die Buchdateien und Autorordner",
"Component": "Komponente", "Component": "Komponente",
"Level": "Stufe", "Level": "Level",
"Time": "Zeit", "Time": "Zeit",
"RemoveFromBlocklist": "Aus der Sperrliste entfernen", "RemoveFromBlocklist": "Aus der Sperrliste entfernen",
"UnableToLoadBlocklist": "Sperrliste konnte nicht geladen werden", "UnableToLoadBlocklist": "Sperrliste konnte nicht geladen werden",
@@ -514,7 +514,7 @@
"CatalogNumber": "Katalog Nummer", "CatalogNumber": "Katalog Nummer",
"ContinuingAllBooksDownloaded": "Fortfahren (Alle Bücher heruntergeladen)", "ContinuingAllBooksDownloaded": "Fortfahren (Alle Bücher heruntergeladen)",
"DeleteMetadataProfile": "Metadaten Profil löschen", "DeleteMetadataProfile": "Metadaten Profil löschen",
"ImportListExclusions": "Ausschlüsse der Importliste", "ImportListExclusions": "Ausschlüsse aus der Importliste",
"ImportLists": "Importlisten", "ImportLists": "Importlisten",
"ImportListSettings": "Allgemeine Importlisten-Einstellungen", "ImportListSettings": "Allgemeine Importlisten-Einstellungen",
"ImportListSpecificSettings": "Listenspezifische Einstellungen importieren", "ImportListSpecificSettings": "Listenspezifische Einstellungen importieren",
@@ -531,7 +531,7 @@
"MetadataProfile": "Metadaten Profil", "MetadataProfile": "Metadaten Profil",
"MetadataProfileIdHelpText": "Metadaten Profil Listenelemente sollten hinzugefügt werden mit", "MetadataProfileIdHelpText": "Metadaten Profil Listenelemente sollten hinzugefügt werden mit",
"MetadataProfiles": "Metadaten Profile", "MetadataProfiles": "Metadaten Profile",
"MonitoringOptions": "Beobachtungsoptionen", "MonitoringOptions": "Überwachungsoptionen",
"MusicbrainzId": "MusicBrainz Id", "MusicbrainzId": "MusicBrainz Id",
"WatchRootFoldersForFileChanges": "Beobachte Stammverzeichnis auf Dateiänderungen", "WatchRootFoldersForFileChanges": "Beobachte Stammverzeichnis auf Dateiänderungen",
"OnDownloadFailure": "Bei fehlgeschlagenem Download", "OnDownloadFailure": "Bei fehlgeschlagenem Download",
@@ -556,7 +556,7 @@
"FutureDays": "Zukünftige Tage", "FutureDays": "Zukünftige Tage",
"FutureDaysHelpText": "Tage die iCal-Feed in die Zukunft schauen soll", "FutureDaysHelpText": "Tage die iCal-Feed in die Zukunft schauen soll",
"FutureBooks": "Zukünftige Bücher", "FutureBooks": "Zukünftige Bücher",
"GeneralSettingsSummary": "Port, SSL, Benutzername/Passwort, Proxy, Analytik und Updates", "GeneralSettingsSummary": "Port, SSL, Benutzername/Kennwort, Proxy, Analyse und Updates",
"IndexerJackettAll": "Indexer, welche den nicht unterstützten 'all'-Endpoint von Jackett verwenden: {0}", "IndexerJackettAll": "Indexer, welche den nicht unterstützten 'all'-Endpoint von Jackett verwenden: {0}",
"IndexerLongTermStatusCheckAllClientMessage": "Alle Indexer sind wegen über 6 Stunden langen bestehender Fehler nicht verfügbar", "IndexerLongTermStatusCheckAllClientMessage": "Alle Indexer sind wegen über 6 Stunden langen bestehender Fehler nicht verfügbar",
"IsExpandedShowFileInfo": "Dateiinformationen anzeigen", "IsExpandedShowFileInfo": "Dateiinformationen anzeigen",
@@ -595,23 +595,23 @@
"IndexerIdHelpTextWarning": "Die Verwendung eines bestimmten Indexers mit bevorzugten Wörtern kann dazu führen, dass Veröffentlichungen mehrfach erfasst werden", "IndexerIdHelpTextWarning": "Die Verwendung eines bestimmten Indexers mit bevorzugten Wörtern kann dazu führen, dass Veröffentlichungen mehrfach erfasst werden",
"LatestBook": "Neuestes Buch", "LatestBook": "Neuestes Buch",
"MetadataProviderSource": "Metadaten Anbieter Quelle", "MetadataProviderSource": "Metadaten Anbieter Quelle",
"MetadataSource": "Metadaten Quelle", "MetadataSource": "Metadatenquelle",
"MetadataSourceHelpText": "Alternative Metadaten Quelle (Leer lassen für Standard)", "MetadataSourceHelpText": "Alternative Metadaten Quelle (Leer lassen für Standard)",
"MusicBrainzRecordingID": "MusicBrainz Aufnahme Id", "MusicBrainzRecordingID": "MusicBrainz Aufnahme Id",
"MusicBrainzReleaseID": "MusicBrainz Veröffentlichung Id", "MusicBrainzReleaseID": "MusicBrainz Veröffentlichung Id",
"MusicBrainzTrackID": "MusicBrainz Titel Id", "MusicBrainzTrackID": "MusicBrainz Titel Id",
"OnGrab": "Bei Erfassung", "OnGrab": "Bei Abruf",
"OnImportFailureHelpText": "Bei fehlgeschlagenem Import", "OnImportFailureHelpText": "Bei fehlgeschlagenem Import",
"OnReleaseImport": "Bei Veröffentlichungsimport", "OnReleaseImport": "Bei Veröffentlichungsimport",
"OnReleaseImportHelpText": "Bei Veröffentlichungsimport", "OnReleaseImportHelpText": "Bei Veröffentlichungsimport",
"OnRename": "Bei Umbenennung", "OnRename": "Bei Umbenennung",
"PastDaysHelpText": "Tage für iCal-Feed, um in die Vergangenheit zu schauen", "PastDaysHelpText": "Tage für iCal-Feed, um in die Vergangenheit zu schauen",
"PathHelpTextWarning": "Dies muss ein anderes Verzeichnis sein als das, in dem der Download Client die Dateien ablegt", "PathHelpTextWarning": "Dies muss ein anderes Verzeichnis sein als das, in dem der Download Client die Dateien ablegt",
"ReleaseProfiles": "Veröffentlichungsprofile", "ReleaseProfiles": "Release-Profile",
"RootFolderPathHelpText": "Die Elemente im Stammverzeichnis werden hinzugefügt zu", "RootFolderPathHelpText": "Die Elemente im Stammverzeichnis werden hinzugefügt zu",
"SearchMonitored": "Suche beobachtete", "SearchMonitored": "Suche überwachte Episoden",
"ShowName": "Zeige Name", "ShowName": "Zeige Name",
"SkipRedownload": "Überspringe erneuten Download", "SkipRedownload": "Neu-Download überspringen",
"StatusEndedContinuing": "Fortfahren", "StatusEndedContinuing": "Fortfahren",
"UnableToLoadMetadataProviderSettings": "Einstellungen für Metadata Provider konnten nicht geladen werden", "UnableToLoadMetadataProviderSettings": "Einstellungen für Metadata Provider konnten nicht geladen werden",
"UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "Aktualisierung innerhalb des Docker Containers ist deaktiviert. Aktualisieren Sie stattdessen das Container Image.", "UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "Aktualisierung innerhalb des Docker Containers ist deaktiviert. Aktualisieren Sie stattdessen das Container Image.",
@@ -622,7 +622,7 @@
"DefaultQualityProfileIdHelpText": "Standard Qualitätsprofil für Autoren, die in diesem Ordner gefunden werden", "DefaultQualityProfileIdHelpText": "Standard Qualitätsprofil für Autoren, die in diesem Ordner gefunden werden",
"DefaultReadarrTags": "Standard Readarr Tags", "DefaultReadarrTags": "Standard Readarr Tags",
"DeleteBookFile": "Buchdatei löschen", "DeleteBookFile": "Buchdatei löschen",
"OnHealthIssue": "Bei Zustandsproblem", "OnHealthIssue": "Bei Gesundheitsproblem",
"QualityProfileIdHelpText": "Qualitätsprofil mit dem Listemelemente hinzugefügt werden sollen", "QualityProfileIdHelpText": "Qualitätsprofil mit dem Listemelemente hinzugefügt werden sollen",
"UnmappedFiles": "Nicht zugewiesene Dateien", "UnmappedFiles": "Nicht zugewiesene Dateien",
"AppDataLocationHealthCheckMessage": "Ein Update ist nicht möglich, um das Löschen von AppData beim Update zu verhindern", "AppDataLocationHealthCheckMessage": "Ein Update ist nicht möglich, um das Löschen von AppData beim Update zu verhindern",
@@ -644,7 +644,7 @@
"Disabled": "Deaktiviert", "Disabled": "Deaktiviert",
"DownloadClientCheckNoneAvailableMessage": "Kein Download Client verfügbar", "DownloadClientCheckNoneAvailableMessage": "Kein Download Client verfügbar",
"DownloadClientCheckUnableToCommunicateMessage": "Kommunikation mit {0} nicht möglich.", "DownloadClientCheckUnableToCommunicateMessage": "Kommunikation mit {0} nicht möglich.",
"DownloadClientsSettingsSummary": "Download Clients, Downloadverarbeitung und Remote-Pfadzuordnungen", "DownloadClientsSettingsSummary": "Download Clients, Download-Verwaltung und Remote-Pfadzuordnungen",
"DownloadClientStatusCheckAllClientMessage": "Alle Download Clients sind aufgrund von Fehlern nicht verfügbar", "DownloadClientStatusCheckAllClientMessage": "Alle Download Clients sind aufgrund von Fehlern nicht verfügbar",
"DownloadClientStatusCheckSingleClientMessage": "Download Clients aufgrund von Fehlern nicht verfügbar: {0}", "DownloadClientStatusCheckSingleClientMessage": "Download Clients aufgrund von Fehlern nicht verfügbar: {0}",
"EditAuthor": "Autor bearbeiten", "EditAuthor": "Autor bearbeiten",
@@ -693,7 +693,7 @@
"RemotePathMappingCheckFolderPermissions": "{appName} kann das Downloadverzeichnis sehen, aber nicht verarbeiten {0}. Möglicherwiese ein Rechteproblem.", "RemotePathMappingCheckFolderPermissions": "{appName} kann das Downloadverzeichnis sehen, aber nicht verarbeiten {0}. Möglicherwiese ein Rechteproblem.",
"RemotePathMappingCheckGenericPermissions": "Downloader {0} speichert Downloads in {1}, aber Readarr kann dieses Verzeichnis nicht sehen. Möglicherweise müssen die Verzeichnisrechte angepasst werden.", "RemotePathMappingCheckGenericPermissions": "Downloader {0} speichert Downloads in {1}, aber Readarr kann dieses Verzeichnis nicht sehen. Möglicherweise müssen die Verzeichnisrechte angepasst werden.",
"RemotePathMappingCheckLocalWrongOSPath": "Downloader {0} speichert Downloads in {1}, aber dies ist kein valider {2} Pfad. Überprüfe die Downloader Einstellungen.", "RemotePathMappingCheckLocalWrongOSPath": "Downloader {0} speichert Downloads in {1}, aber dies ist kein valider {2} Pfad. Überprüfe die Downloader Einstellungen.",
"Monitor": "Beobachten", "Monitor": "Überwachen",
"MusicBrainzAuthorID": "MusicBranz Künstler Id", "MusicBrainzAuthorID": "MusicBranz Künstler Id",
"MusicBrainzBookID": "MusicBrainz Titel Id", "MusicBrainzBookID": "MusicBrainz Titel Id",
"WriteAudioTags": "Audiodateien mit Metadaten versehen", "WriteAudioTags": "Audiodateien mit Metadaten versehen",
@@ -701,7 +701,7 @@
"SearchForAllMissingBooks": "Suche nach allen fehlenden Alben", "SearchForAllMissingBooks": "Suche nach allen fehlenden Alben",
"SearchForMonitoredBooks": "Suche nach beobachteten Alben", "SearchForMonitoredBooks": "Suche nach beobachteten Alben",
"SelectedCountAuthorsSelectedInterp": "{0} Künstler ausgewählt", "SelectedCountAuthorsSelectedInterp": "{0} Künstler ausgewählt",
"SizeLimit": "Grössenlimit", "SizeLimit": "Größenlimit",
"TheBooksFilesWillBeDeleted": "Die Dateien des Albums werden gelöscht.", "TheBooksFilesWillBeDeleted": "Die Dateien des Albums werden gelöscht.",
"MediaManagement": "Medienverwaltung", "MediaManagement": "Medienverwaltung",
"Metadata": "Metadaten", "Metadata": "Metadaten",
@@ -742,7 +742,7 @@
"SearchFiltered": "Suche gefilterte", "SearchFiltered": "Suche gefilterte",
"AddList": "Liste hinzufügen", "AddList": "Liste hinzufügen",
"InstanceName": "Instanzname", "InstanceName": "Instanzname",
"InstanceNameHelpText": "Instanzname im Browser-Tab und für Syslog-Anwendungsname", "InstanceNameHelpText": "Instanzname im Tab und für den Syslog-App-Namen",
"RestartRequiredHelpTextWarning": "Erfordert einen Neustart, damit die Aktion wirksam wird", "RestartRequiredHelpTextWarning": "Erfordert einen Neustart, damit die Aktion wirksam wird",
"UseCalibreContentServer": "Calibre-Content-Server", "UseCalibreContentServer": "Calibre-Content-Server",
"DataExistingBooks": "Beobachte Bücher die Dateien haben oder noch nicht veröffentlicht wurden", "DataExistingBooks": "Beobachte Bücher die Dateien haben oder noch nicht veröffentlicht wurden",
@@ -756,7 +756,7 @@
"MonitorBook": "Buch überwachen", "MonitorBook": "Buch überwachen",
"MinimumPages": "Mindestseiten", "MinimumPages": "Mindestseiten",
"MassBookSearch": "Massensuche nach Büchern", "MassBookSearch": "Massensuche nach Büchern",
"MediaManagementSettingsSummary": "Namensgebung, Dateimanagement-Einstellungen und Root-Ordner", "MediaManagementSettingsSummary": "Einstellungen zu Benennung, Dateiverwaltung und Root-Ordnern",
"MinimumPopularity": "Mindestpolularität", "MinimumPopularity": "Mindestpolularität",
"MinPagesHelpText": "Bücher mit weniger Seiten als dieses ignorieren", "MinPagesHelpText": "Bücher mit weniger Seiten als dieses ignorieren",
"MinPopularityHelpText": "Popularität ist Durchschnittsbewertung * Anzahl der Stimmen", "MinPopularityHelpText": "Popularität ist Durchschnittsbewertung * Anzahl der Stimmen",
@@ -854,7 +854,7 @@
"Theme": "Design", "Theme": "Design",
"ThemeHelpText": "Ändern Sie das Benutzeroberflächen-Design der Anwendung. Das „Auto“-Design verwendet Ihr Betriebssystemdesign, um den Hell- oder Dunkelmodus festzulegen. Inspiriert vom Theme.Park", "ThemeHelpText": "Ändern Sie das Benutzeroberflächen-Design der Anwendung. Das „Auto“-Design verwendet Ihr Betriebssystemdesign, um den Hell- oder Dunkelmodus festzulegen. Inspiriert vom Theme.Park",
"BypassIfHighestQuality": "Ignoriere wenn höchste Qualität", "BypassIfHighestQuality": "Ignoriere wenn höchste Qualität",
"MinimumCustomFormatScore": "Minimum der eigenen Formate Bewertungspunkte", "MinimumCustomFormatScore": "Mindestwert für benutzerdefinierte Formate",
"CustomFormatScore": "Eigenes Format Bewertungspunkte", "CustomFormatScore": "Eigenes Format Bewertungspunkte",
"CloneCustomFormat": "Benutzerdefiniertes Format klonen", "CloneCustomFormat": "Benutzerdefiniertes Format klonen",
"Conditions": "Bedingungen", "Conditions": "Bedingungen",
@@ -863,7 +863,7 @@
"CustomFormats": "Eigene Formate", "CustomFormats": "Eigene Formate",
"CutoffFormatScoreHelpText": "Sobald diese eigener Format Bewertung erreicht wird, werden keine neuen Releases erfasst", "CutoffFormatScoreHelpText": "Sobald diese eigener Format Bewertung erreicht wird, werden keine neuen Releases erfasst",
"DeleteFormatMessageText": "Bist du sicher, dass du das Formatierungstag {0} löschen willst?", "DeleteFormatMessageText": "Bist du sicher, dass du das Formatierungstag {0} löschen willst?",
"ExportCustomFormat": "Eigenes Format exportieren", "ExportCustomFormat": "Benutzerdefiniertes Format exportieren",
"Formats": "Formate", "Formats": "Formate",
"MinFormatScoreHelpText": "Mindester eigener Format Score bis zum Download", "MinFormatScoreHelpText": "Mindester eigener Format Score bis zum Download",
"NegateHelpText": "Wenn aktiviert wird das eigene Format nicht angewendet solange diese {0} Bedingung zutrifft.", "NegateHelpText": "Wenn aktiviert wird das eigene Format nicht angewendet solange diese {0} Bedingung zutrifft.",
@@ -879,11 +879,11 @@
"UnableToLoadCustomFormats": "Eigene Formate konnten nicht geladen werden", "UnableToLoadCustomFormats": "Eigene Formate konnten nicht geladen werden",
"ImportListMissingRoot": "Fehlendes Stammverzeichnis für Importlist(en): {0}", "ImportListMissingRoot": "Fehlendes Stammverzeichnis für Importlist(en): {0}",
"ImportListMultipleMissingRoots": "Mehrere Stammverzeichnisse fehlen für Importlist: {0}", "ImportListMultipleMissingRoots": "Mehrere Stammverzeichnisse fehlen für Importlist: {0}",
"IndexerDownloadClientHelpText": "Wähle aus, welcher Download-Client für diesen Indexer verwendet wird", "IndexerDownloadClientHelpText": "Gib an, welcher Download-Client für Abrufe von diesem Indexer verwendet wird",
"IndexerTagsHelpText": "Benutze den Indexer nur für Filme mit mindesens einen zutreffenden Tag. Leer lassen für alle Filme.", "IndexerTagsHelpText": "Benutze den Indexer nur für Filme mit mindesens einen zutreffenden Tag. Leer lassen für alle Filme.",
"RecycleBinUnableToWriteHealthCheck": "Schreiben in konfigurierten Papierkorbordner nicht möglich: {0}. Stelle sicher, dass dieser Pfad existiert und von dem Benutzer, der {appName} ausführt, beschreibbar ist", "RecycleBinUnableToWriteHealthCheck": "Schreiben in konfigurierten Papierkorbordner nicht möglich: {0}. Stelle sicher, dass dieser Pfad existiert und von dem Benutzer, der {appName} ausführt, beschreibbar ist",
"HiddenClickToShow": "Versteckt, klicken zum anzeigen", "HiddenClickToShow": "Versteckt, zum Anzeigen anklicken",
"HideAdvanced": "Erweiterte Ansicht", "HideAdvanced": "Erweiterte Einstellungen ausblenden",
"ShowAdvanced": "Erweitert anzeigen", "ShowAdvanced": "Erweitert anzeigen",
"ShownClickToHide": "Angezeigt, zum Ausblenden klicken", "ShownClickToHide": "Angezeigt, zum Ausblenden klicken",
"ColonReplacement": "Doppelpunktersatz", "ColonReplacement": "Doppelpunktersatz",
@@ -909,11 +909,11 @@
"DeleteSelectedIndexersMessageText": "Sind Sie sicher, dass Sie {count} ausgewählte(n) Indexer löschen möchten?", "DeleteSelectedIndexersMessageText": "Sind Sie sicher, dass Sie {count} ausgewählte(n) Indexer löschen möchten?",
"EditSelectedDownloadClients": "Ausgewählte Download Clienten bearbeiten", "EditSelectedDownloadClients": "Ausgewählte Download Clienten bearbeiten",
"Implementation": "Integration", "Implementation": "Integration",
"NoEventsFound": "Keine Events gefunden", "NoEventsFound": "Keine Ereignisse gefunden",
"NoImportListsFound": "Keine Einspiel-Listen gefunden", "NoImportListsFound": "Keine Einspiel-Listen gefunden",
"NoIndexersFound": "Keine Indexer gefunden", "NoIndexersFound": "Keine Indexer gefunden",
"RemoveCompletedDownloads": "Entferne abgeschlossene Downloads", "RemoveCompletedDownloads": "Entferne abgeschlossene Downloads",
"RemoveDownloadsAlert": "Die Einstellungen zum Entfernen wurden in die individuellen Download Client Einstellungen in der obigen Tabelle verschoben.", "RemoveDownloadsAlert": "Die Entfernen-Einstellungen wurden in die einzelnen Download-Client-Einstellungen in der Tabelle oben verschoben.",
"RemovingTag": "Tag entfernen", "RemovingTag": "Tag entfernen",
"Yes": "Ja", "Yes": "Ja",
"BlocklistReleaseHelpText": "Dieses Release nicht automatisch erneut erfassen", "BlocklistReleaseHelpText": "Dieses Release nicht automatisch erneut erfassen",
@@ -922,7 +922,7 @@
"DeleteConditionMessageText": "Bist du sicher, dass du die Bedingung '{0}' löschen willst?", "DeleteConditionMessageText": "Bist du sicher, dass du die Bedingung '{0}' löschen willst?",
"Negated": "Negiert", "Negated": "Negiert",
"ResetQualityDefinitions": "Qualitätsdefinitionen zurücksetzen", "ResetQualityDefinitions": "Qualitätsdefinitionen zurücksetzen",
"RemoveSelectedItem": "Entferne ausgewählten Eintrag", "RemoveSelectedItem": "Ausgewähltes Element entfernen",
"RemoveSelectedItems": "Markierte Einträge löschen", "RemoveSelectedItems": "Markierte Einträge löschen",
"Required": "Erforderlich", "Required": "Erforderlich",
"RedownloadFailed": "Download fehlgeschlagen", "RedownloadFailed": "Download fehlgeschlagen",
@@ -956,19 +956,19 @@
"Loading": "Lade", "Loading": "Lade",
"ConnectionLostReconnect": "{appName} wird versuchen, automatisch eine Verbindung herzustellen, oder Sie können unten auf „Neu laden“ klicken.", "ConnectionLostReconnect": "{appName} wird versuchen, automatisch eine Verbindung herzustellen, oder Sie können unten auf „Neu laden“ klicken.",
"ConnectionLostToBackend": "{appName} hat die Verbindung zum Backend verloren und muss neu geladen werden, um die Funktionalität wiederherzustellen.", "ConnectionLostToBackend": "{appName} hat die Verbindung zum Backend verloren und muss neu geladen werden, um die Funktionalität wiederherzustellen.",
"NotificationStatusAllClientHealthCheckMessage": "Wegen Fehlern sind keine Applikationen verfügbar", "NotificationStatusAllClientHealthCheckMessage": "Alle Benachrichtigungen sind aufgrund von Fehlern nicht verfügbar",
"NotificationStatusSingleClientHealthCheckMessage": "Applikationen wegen folgender Fehler nicht verfügbar: {0}", "NotificationStatusSingleClientHealthCheckMessage": "Applikationen wegen folgender Fehler nicht verfügbar: {0}",
"TotalSpace": "Gesamter Speicherplatz", "TotalSpace": "Gesamter Speicherplatz",
"Ui": "Benutzeroberfläche", "Ui": "Benutzeroberfläche",
"FreeSpace": "Freier Speicher", "FreeSpace": "Freier Platz",
"Large": "Groß", "Large": "Groß",
"LastExecution": "Letzte Ausführung", "LastExecution": "Letzte Ausführung",
"LastWriteTime": "Zuletzt beschrieben", "LastWriteTime": "Letzte Schreibzeit",
"Library": "Bibliothek", "Library": "Bibliothek",
"Location": "Speicherort", "Location": "Standort",
"Small": "Klein", "Small": "Klein",
"ConnectionLost": "Verbindung unterbrochen", "ConnectionLost": "Verbindung unterbrochen",
"Events": "Events", "Events": "Ereignisse",
"LastDuration": "Letzte Dauer", "LastDuration": "Letzte Dauer",
"RecentChanges": "Kürzliche Änderungen", "RecentChanges": "Kürzliche Änderungen",
"System": "System", "System": "System",
@@ -987,8 +987,8 @@
"AutomaticUpdatesDisabledDocker": "Automatische Updates werden bei Verwendung des Docker-Update-Mechanismus nicht direkt unterstützt. Sie müssen das Container-Image außerhalb von {appName} aktualisieren oder ein Skript verwenden", "AutomaticUpdatesDisabledDocker": "Automatische Updates werden bei Verwendung des Docker-Update-Mechanismus nicht direkt unterstützt. Sie müssen das Container-Image außerhalb von {appName} aktualisieren oder ein Skript verwenden",
"AutoAdd": "Automatisch hinzufügen", "AutoAdd": "Automatisch hinzufügen",
"WouldYouLikeToRestoreBackup": "Willst du das Backup '{name}' wiederherstellen?", "WouldYouLikeToRestoreBackup": "Willst du das Backup '{name}' wiederherstellen?",
"Unmonitored": "Nicht beobachtet", "Unmonitored": "Nicht überwacht",
"Retention": "Aufbewahrung ( Retention )", "Retention": "Aufbewahrung",
"ClickToChangeIndexerFlags": "Klicken, um Indexer-Flags zu ändern", "ClickToChangeIndexerFlags": "Klicken, um Indexer-Flags zu ändern",
"BlocklistAndSearch": "Sperrliste und Suche", "BlocklistAndSearch": "Sperrliste und Suche",
"BlocklistAndSearchHint": "Starte Suche nach einer Alternative, falls es der Sperrliste hinzugefügt wurde", "BlocklistAndSearchHint": "Starte Suche nach einer Alternative, falls es der Sperrliste hinzugefügt wurde",
@@ -997,14 +997,14 @@
"BlocklistOnly": "Nur der Sperrliste hinzufügen", "BlocklistOnly": "Nur der Sperrliste hinzufügen",
"BlocklistOnlyHint": "Der Sperrliste hinzufügen, ohne nach Alternative zu suchen", "BlocklistOnlyHint": "Der Sperrliste hinzufügen, ohne nach Alternative zu suchen",
"ChangeCategory": "Kategorie wechseln", "ChangeCategory": "Kategorie wechseln",
"TagIsNotUsedAndCanBeDeleted": "Tag wird nicht benutzt und kann gelöscht werden", "TagIsNotUsedAndCanBeDeleted": "Tag wird nicht verwendet und kann gelöscht werden",
"ExtraFileExtensionsHelpText": "Kommaseparierte Liste von Dateiendungen die als Extra Dateien importiert werden sollen ( .nfo wird in .nfo-orig umbenannt )", "ExtraFileExtensionsHelpText": "Kommagetrennte Liste von zusätzlichen Dateien, die importiert werden sollen (.nfo wird als .nfo-orig importiert)",
"DeleteImportListExclusion": "Importlisten Ausschluss löschen", "DeleteImportListExclusion": "Importlisten Ausschluss löschen",
"IndexerFlags": "Indexer-Flags", "IndexerFlags": "Indexer-Flags",
"CountAuthorsSelected": "{selectedCount} Künstler ausgewählt", "CountAuthorsSelected": "{selectedCount} Künstler ausgewählt",
"ExtraFileExtensionsHelpTextsExamples": "Vorschläge: sub, nfo, srt, jpg", "ExtraFileExtensionsHelpTextsExamples": "Beispiele: '.sub, .nfo' oder 'sub,nfo'",
"DownloadClient": "Downloader", "DownloadClient": "Downloader",
"ShowMonitoredHelpText": "Beobachtungsstatus unter dem Plakat anzeigen", "ShowMonitoredHelpText": "Überwachungsstatus unter dem Poster anzeigen",
"CountDownloadClientsSelected": "{count} Download-Client(s) ausgewählt", "CountDownloadClientsSelected": "{count} Download-Client(s) ausgewählt",
"CountImportListsSelected": "{selectedCount} Künstler ausgewählt", "CountImportListsSelected": "{selectedCount} Künstler ausgewählt",
"CustomFormatsSpecificationRegularExpression": "Regulären Ausdruck", "CustomFormatsSpecificationRegularExpression": "Regulären Ausdruck",
@@ -1013,8 +1013,8 @@
"AutoRedownloadFailed": "Erneuter Download fehlgeschlagen", "AutoRedownloadFailed": "Erneuter Download fehlgeschlagen",
"SourceTitle": "Quellentitel", "SourceTitle": "Quellentitel",
"Tags": "Tags", "Tags": "Tags",
"DownloadClientDelugeSettingsDirectoryHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden", "DownloadClientDelugeSettingsDirectoryHelpText": "Optionaler Ort für Downloads, leer lassen, um den Standard-Deluge-Ort zu verwenden",
"ErrorLoadingContent": "Beim Laden des Eintrags ist ein Fehler aufgetreten", "ErrorLoadingContent": "Es ist ein Fehler beim Laden dieses Inhalts aufgetreten",
"BypassIfAboveCustomFormatScore": "Umgehen, wenn über dem Wert des benutzerdefinierten Formats liegt", "BypassIfAboveCustomFormatScore": "Umgehen, wenn über dem Wert des benutzerdefinierten Formats liegt",
"BypassIfAboveCustomFormatScoreHelpText": "Aktivieren Sie die Umgehung, wenn die Veröffentlichung einen Wert hat, der höher ist als der konfigurierte Mindestwert für das benutzerdefinierte Format", "BypassIfAboveCustomFormatScoreHelpText": "Aktivieren Sie die Umgehung, wenn die Veröffentlichung einen Wert hat, der höher ist als der konfigurierte Mindestwert für das benutzerdefinierte Format",
"DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "Der Download-Client {downloadClientName} ist so eingestellt, dass abgeschlossene Downloads entfernt werden. Dies kann dazu führen, dass Downloads von Ihrem Client entfernt werden, bevor {appName} sie importieren kann.", "DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "Der Download-Client {downloadClientName} ist so eingestellt, dass abgeschlossene Downloads entfernt werden. Dies kann dazu führen, dass Downloads von Ihrem Client entfernt werden, bevor {appName} sie importieren kann.",
@@ -1024,12 +1024,12 @@
"InteractiveSearchModalHeader": "Interaktive Suche", "InteractiveSearchModalHeader": "Interaktive Suche",
"MinimumCustomFormatScoreHelpText": "Mindestwert für benutzerdefiniertes Format, der erforderlich ist, um Verzögerungen für das bevorzugte Protokoll zu umgehen", "MinimumCustomFormatScoreHelpText": "Mindestwert für benutzerdefiniertes Format, der erforderlich ist, um Verzögerungen für das bevorzugte Protokoll zu umgehen",
"Rejections": "Ablehnungen", "Rejections": "Ablehnungen",
"RemoveQueueItemConfirmation": "Bist du sicher, dass du {0} Einträge aus der Warteschlange entfernen willst?", "RemoveQueueItemConfirmation": "Bist du sicher, dass du '{sourceTitle}' aus der Warteschlange entfernen möchtest?",
"SelectDropdown": "Auswählen...", "SelectDropdown": "Auswählen...",
"SelectQuality": "Qualität auswählen", "SelectQuality": "Qualität auswählen",
"SelectReleaseGroup": "Wähle Release-Gruppe", "SelectReleaseGroup": "Wähle Release-Gruppe",
"ShowMonitored": "Beobachtete anzeigen", "ShowMonitored": "Überwachter Status anzeigen",
"DeleteSelected": "Markierte löschen", "DeleteSelected": "Ausgewählte löschen",
"Bookshelf": "Bücherregal", "Bookshelf": "Bücherregal",
"BypassIfHighestQualityHelpText": "Umgehen der Verzögerung, wenn die Freigabe die höchste aktivierte Qualität im Qualitätsprofil hat", "BypassIfHighestQualityHelpText": "Umgehen der Verzögerung, wenn die Freigabe die höchste aktivierte Qualität im Qualitätsprofil hat",
"CustomFormatsSpecificationFlag": "Markierung", "CustomFormatsSpecificationFlag": "Markierung",
@@ -1045,12 +1045,12 @@
"CustomFormatsSettingsTriggerInfo": "Ein Eigenes Format wird auf eine Veröffentlichung oder Datei angewandt, wenn sie mindestens einer der verschiedenen ausgewählten Bedingungen entspricht.", "CustomFormatsSettingsTriggerInfo": "Ein Eigenes Format wird auf eine Veröffentlichung oder Datei angewandt, wenn sie mindestens einer der verschiedenen ausgewählten Bedingungen entspricht.",
"ConnectionSettingsUrlBaseHelpText": "Fügt ein Präfix zur {connectionName} URL hinzu, z. B. {url}", "ConnectionSettingsUrlBaseHelpText": "Fügt ein Präfix zur {connectionName} URL hinzu, z. B. {url}",
"DownloadClientDelugeSettingsDirectory": "Download Verzeichnis", "DownloadClientDelugeSettingsDirectory": "Download Verzeichnis",
"DownloadClientDelugeSettingsDirectoryCompleted": "Verschieben, wenn Verzeichnis abgeschlossen", "DownloadClientDelugeSettingsDirectoryCompleted": "Verschieben, wenn abgeschlossen Verzeichnis",
"IgnoreDownloadHint": "Hält {appName} von der weiteren Verarbeitung dieses Downloads ab", "IgnoreDownloadHint": "Hält {appName} von der weiteren Verarbeitung dieses Downloads ab",
"IgnoreDownloads": "Downloads ignorieren", "IgnoreDownloads": "Downloads ignorieren",
"IgnoreDownload": "Download ignorieren", "IgnoreDownload": "Download ignorieren",
"IgnoreDownloadsHint": "Hindert {appName}, diese Downloads weiter zu verarbeiten", "IgnoreDownloadsHint": "Hindert {appName}, diese Downloads weiter zu verarbeiten",
"DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden", "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Optionaler Ort, an den abgeschlossene Downloads verschoben werden, leer lassen, um den Standard-Deluge-Ort zu verwenden",
"ApiKey": "API-Schlüssel", "ApiKey": "API-Schlüssel",
"AuthBasic": "Basis (Browser-Popup)", "AuthBasic": "Basis (Browser-Popup)",
"AuthForm": "Formulare (Anmeldeseite)", "AuthForm": "Formulare (Anmeldeseite)",
@@ -1059,18 +1059,56 @@
"AuthenticationRequired": "Authentifizierung benötigt", "AuthenticationRequired": "Authentifizierung benötigt",
"AuthenticationRequiredHelpText": "Ändern, welche anfragen Authentifizierung benötigen. Ändere nichts wenn du dir nicht des Risikos bewusst bist.", "AuthenticationRequiredHelpText": "Ändern, welche anfragen Authentifizierung benötigen. Ändere nichts wenn du dir nicht des Risikos bewusst bist.",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Neues Passwort bestätigen", "AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Neues Passwort bestätigen",
"AuthenticationRequiredPasswordHelpTextWarning": "Gib ein neues Passwort ein", "AuthenticationRequiredPasswordHelpTextWarning": "Neues Passwort eingeben",
"AuthenticationRequiredUsernameHelpTextWarning": "Gib einen neuen Benutzernamen ein", "AuthenticationRequiredUsernameHelpTextWarning": "Neuen Benutzernamen eingeben",
"AuthenticationRequiredWarning": "Um unberechtigte Fernzugriffe zu vermeiden benötigt {appName} jetzt , dass Authentifizierung eingeschaltet ist. Du kannst Authentifizierung optional für lokale Adressen ausschalten.", "AuthenticationRequiredWarning": "Um unberechtigte Fernzugriffe zu vermeiden benötigt {appName} jetzt , dass Authentifizierung eingeschaltet ist. Du kannst Authentifizierung optional für lokale Adressen ausschalten.",
"DisabledForLocalAddresses": "Für lokale Adressen deaktiviert", "DisabledForLocalAddresses": "Für lokale Adressen deaktiviert",
"Enabled": "Aktiviert", "Enabled": "Aktiviert",
"BuiltIn": "Eingebaut", "BuiltIn": "Eingebaut",
"CurrentlyInstalled": "Derzeit installiert", "CurrentlyInstalled": "Derzeit installiert",
"InstallLatest": "Jetzt updaten", "InstallLatest": "Neueste Version installieren",
"OnLatestVersion": "Die aktuellste Version ist bereits installiert", "OnLatestVersion": "Die neueste Version von {appName} ist bereits installiert",
"Script": "Skript", "Script": "Skript",
"AptUpdater": "Verwenden Sie apt, um das Update zu installieren", "AptUpdater": "Verwenden Sie apt, um das Update zu installieren",
"DockerUpdater": "Aktualisieren Sie den Docker-Container, um das Update zu erhalten", "DockerUpdater": "Aktualisieren Sie den Docker-Container, um das Update zu erhalten",
"ExternalUpdater": "{appName} wurde so konfiguriert, dass ein externer Update Mechanismus benutzt wird", "ExternalUpdater": "{appName} ist so konfiguriert, dass es einen externen Aktualisierungsmechanismus verwendet",
"UpdateAppDirectlyLoadError": "{appName} kann nicht direkt aktualisiert werden." "UpdateAppDirectlyLoadError": "{appName} kann nicht direkt aktualisiert werden.",
"External": "Extern",
"FailedToFetchSettings": "Einstellungen können nicht abgerufen werden",
"FailedToFetchUpdates": "Updates konnten nicht abgerufen werden",
"DownloadClientQbittorrentSettingsContentLayout": "Inhaltslayout",
"IndexerSettingsSeedRatio": "Seed-Verhältnis",
"RemoveMultipleFromDownloadClientHint": "Entfernt Downloads und Dateien aus dem Download-Client",
"IndexerSettingsSeedTime": "Seed-Zeit",
"Install": "Installieren",
"InstallMajorVersionUpdate": "Update installieren",
"RemoveQueueItem": "Entfernen - {sourceTitle}",
"NotificationsPlexSettingsAuthenticateWithPlexTv": "Mit Plex.tv authentifizieren",
"SmartReplace": "Smart Replace",
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Ob das konfigurierte Inhaltslayout von qBittorrent, das ursprüngliche Layout des Torrents oder immer ein Unterordner erstellt werden soll (qBittorrent 4.3.2+)",
"IndexerSettingsSeedRatioHelpText": "Das Verhältnis, das ein Torrent erreichen muss, bevor er gestoppt wird. Leer verwendet das Standardverhältnis des Download-Clients. Das Verhältnis sollte mindestens 1,0 betragen und den Regeln des Indexers folgen.",
"IndexerSettingsSeedTimeHelpText": "Die Zeit, die ein Torrent gesät werden sollte, bevor er gestoppt wird. Leer verwendet die Standardzeit des Download-Clients",
"InstallMajorVersionUpdateMessage": "Dieses Update wird eine neue Hauptversion installieren und ist möglicherweise nicht mit deinem System kompatibel. Bist du sicher, dass du dieses Update installieren möchtest?",
"InstallMajorVersionUpdateMessageLink": "Weitere Informationen findest du unter [{domain}]({url}).",
"InvalidUILanguage": "Die UI ist auf eine ungültige Sprache eingestellt, korrigiere sie und speichere die Einstellungen",
"LabelIsRequired": "Label ist erforderlich",
"NotificationsPlexSettingsAuthToken": "Auth-Token",
"NotificationsSettingsUpdateLibrary": "Bibliothek aktualisieren",
"NotificationsSettingsUpdateMapPathsFrom": "Pfade von",
"NotificationsSettingsUpdateMapPathsTo": "Pfade zu",
"NotificationsSettingsUseSslHelpText": "Mit {serviceName} über HTTPS anstatt HTTP verbinden",
"PasswordConfirmation": "Passwortbestätigung",
"PreviouslyInstalled": "Früher installiert",
"RemoveFromDownloadClientHint": "Entfernt den Download und die Datei(en) aus dem Download-Client",
"RemoveQueueItemRemovalMethod": "Entfernmethode",
"RemoveQueueItemRemovalMethodHelpTextWarning": "'Aus dem Download-Client entfernen' wird den Download und die Datei(en) aus dem Download-Client löschen.",
"RemoveQueueItemsRemovalMethodHelpTextWarning": "'Aus dem Download-Client entfernen' wird die Downloads und die Dateien aus dem Download-Client löschen.",
"SelectIndexerFlags": "Indexer-Flags auswählen",
"SetIndexerFlags": "Indexer-Flags festlegen",
"InteractiveSearchModalHeaderBookAuthor": "Interaktive Suche - {bookTitle} von {authorName}",
"NoMissingItems": "Keine fehlenden Einträge",
"NoCutoffUnmetItems": "Keine nicht erfüllten Cutoff-Elemente",
"DashOrSpaceDashDependingOnName": "Dash oder Space Dash je nach Name",
"NotificationsSettingsUpdateMapPathsFromHelpText": "{appName}-Pfad, wird verwendet, um Serienpfade zu ändern, wenn {serviceName} den Bibliothekspfad anders sieht als {appName} (benötigt 'Bibliothek aktualisieren')",
"NotificationsSettingsUpdateMapPathsToHelpText": "{serviceName}-Pfad, wird verwendet, um Serienpfade zu ändern, wenn {serviceName} den Bibliothekspfad anders sieht als {appName} (benötigt 'Bibliothek aktualisieren')"
} }
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -328,11 +328,11 @@
"ShortDateFormat": "Format de date courte", "ShortDateFormat": "Format de date courte",
"ShowCutoffUnmetIconHelpText": "Afficher l'icône des fichiers lorsque la limite n'a pas été atteinte", "ShowCutoffUnmetIconHelpText": "Afficher l'icône des fichiers lorsque la limite n'a pas été atteinte",
"ShowDateAdded": "Afficher la date d'ajout", "ShowDateAdded": "Afficher la date d'ajout",
"ShowMonitored": "Afficher le chemin", "ShowMonitored": "Afficher l'état de surveillance",
"ShowMonitoredHelpText": "Afficher l'état de surveillance sous le poster", "ShowMonitoredHelpText": "Affiche l'état de surveillance sous le poster",
"ShowPath": "Afficher le chemin", "ShowPath": "Afficher le chemin",
"ShowQualityProfile": "Afficher le profil de qualité", "ShowQualityProfile": "Afficher le profil de qualité",
"ShowQualityProfileHelpText": "Afficher le profil de qualité sous l'affiche", "ShowQualityProfileHelpText": "Affiche le profil de qualité sous l'affiche",
"ShowRelativeDates": "Afficher les dates relatives", "ShowRelativeDates": "Afficher les dates relatives",
"ShowRelativeDatesHelpText": "Afficher les dates relatives (Aujourd'hui/Hier/etc) ou absolues", "ShowRelativeDatesHelpText": "Afficher les dates relatives (Aujourd'hui/Hier/etc) ou absolues",
"ShowSearch": "Afficher la recherche", "ShowSearch": "Afficher la recherche",
@@ -456,7 +456,7 @@
"ReleaseTitle": "Titre de la version", "ReleaseTitle": "Titre de la version",
"ShowBookTitleHelpText": "Affiche le titre du livre sous l'affiche", "ShowBookTitleHelpText": "Affiche le titre du livre sous l'affiche",
"ShowReleaseDate": "Afficher la date de sortie", "ShowReleaseDate": "Afficher la date de sortie",
"ShowTitle": "Montrer le titre", "ShowTitle": "Afficher le titre",
"TheAuthorFolderAndAllOfItsContentWillBeDeleted": "Le dossier '{0}' et son contenu vont être supprimés.", "TheAuthorFolderAndAllOfItsContentWillBeDeleted": "Le dossier '{0}' et son contenu vont être supprimés.",
"ReplaceIllegalCharactersHelpText": "Remplacer les caractères illégaux. Si non coché, Readarr les supprimera", "ReplaceIllegalCharactersHelpText": "Remplacer les caractères illégaux. Si non coché, Readarr les supprimera",
"Level": "Niveau", "Level": "Niveau",
+1 -1
View File
@@ -725,7 +725,7 @@
"AppUpdated": "{appName} Aggiornato", "AppUpdated": "{appName} Aggiornato",
"AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato", "AllResultsAreHiddenByTheAppliedFilter": "Tutti i risultati sono nascosti dal filtro applicato",
"AutoRedownloadFailed": "Download fallito", "AutoRedownloadFailed": "Download fallito",
"AddListExclusion": "Aggiungi Lista esclusioni", "AddListExclusion": "Aggiungi elenco esclusioni",
"Location": "Posizione", "Location": "Posizione",
"ListsSettingsSummary": "Liste", "ListsSettingsSummary": "Liste",
"RecentChanges": "Cambiamenti Recenti", "RecentChanges": "Cambiamenti Recenti",
+9 -4
View File
@@ -28,9 +28,9 @@
"MinimumAge": "최소 연령", "MinimumAge": "최소 연령",
"TimeFormat": "시간 형식", "TimeFormat": "시간 형식",
"Title": "표제", "Title": "표제",
"TorrentDelay": "급류 지연", "TorrentDelay": "토렌트 지연",
"TorrentDelayHelpText": "급류를 잡기 전에 대기하는 데 몇 분이 걸립니다.", "TorrentDelayHelpText": "토렌트를 잡기 전에 대기까지 소요되는 지연 (분)",
"Torrents": "급류", "Torrents": "토렌트",
"TotalFileSize": "총 파일 크기", "TotalFileSize": "총 파일 크기",
"UILanguage": "UI 언어", "UILanguage": "UI 언어",
"UILanguageHelpText": "{appName}가 UI에 사용할 언어", "UILanguageHelpText": "{appName}가 UI에 사용할 언어",
@@ -639,5 +639,10 @@
"DockerUpdater": "Docker 컨테이너를 업데이트하여 업데이트를 받으십시오.", "DockerUpdater": "Docker 컨테이너를 업데이트하여 업데이트를 받으십시오.",
"ExternalUpdater": "{appName}는 외부 업데이트 메커니즘을 사용하도록 구성됩니다.", "ExternalUpdater": "{appName}는 외부 업데이트 메커니즘을 사용하도록 구성됩니다.",
"OnLatestVersion": "최신 버전의 {appName}가 이미 설치되어 있습니다.", "OnLatestVersion": "최신 버전의 {appName}가 이미 설치되어 있습니다.",
"UpdateAppDirectlyLoadError": "{appName}를 직접 업데이트 할 수 없습니다." "UpdateAppDirectlyLoadError": "{appName}를 직접 업데이트 할 수 없습니다.",
"ApiKeyValidationHealthCheckMessage": "API 키를 {length}자 이상으로 업데이트하세요. 설정 또는 구성 파일을 통해 이 작업을 수행할 수 있습니다.",
"AppUpdated": "{appName} 업데이트",
"AppUpdatedVersion": "{appName}이 버전 `{version}`으로 업데이트되었습니다. 최신 변경 사항을 받으려면 {appName}을 다시 로드해야 합니다",
"WouldYouLikeToRestoreBackup": "'{name}' 백업을 복원하시겠습니까?",
"UseSSL": "SSL 사용"
} }
@@ -734,7 +734,7 @@
"OnReleaseImport": "Ao Importar Lançamento", "OnReleaseImport": "Ao Importar Lançamento",
"OnRename": "Ao Renomear", "OnRename": "Ao Renomear",
"OnUpgrade": "Ao Atualizar", "OnUpgrade": "Ao Atualizar",
"AppDataLocationHealthCheckMessage": "A atualização não será possível para evitar a exclusão de AppData na atualização", "AppDataLocationHealthCheckMessage": "A atualização não será possível para evitar a exclusão de AppData na Atualização",
"IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa habilitada, o Readarr não dará nenhum resultado para pesquisa interativa", "IndexerSearchCheckNoInteractiveMessage": "Nenhum indexador disponível com a Pesquisa Interativa habilitada, o Readarr não dará nenhum resultado para pesquisa interativa",
"ConnectSettingsSummary": "Notificações, conexões com servidores/tocadores de mídia e scripts personalizados", "ConnectSettingsSummary": "Notificações, conexões com servidores/tocadores de mídia e scripts personalizados",
"DownloadClientStatusCheckAllClientMessage": "Todos os clientes de download estão indisponíveis devido a falhas", "DownloadClientStatusCheckAllClientMessage": "Todos os clientes de download estão indisponíveis devido a falhas",
+1 -1
View File
@@ -676,7 +676,7 @@
"Medium": "Средний", "Medium": "Средний",
"NotificationStatusAllClientHealthCheckMessage": "Все уведомления недоступны из-за ошибок", "NotificationStatusAllClientHealthCheckMessage": "Все уведомления недоступны из-за ошибок",
"TotalSpace": "Общее сводное место", "TotalSpace": "Общее сводное место",
"Ui": "Пользовательский интерфейс", "Ui": "Интерфейс",
"Backup": "Резервное копирование", "Backup": "Резервное копирование",
"Events": "События", "Events": "События",
"FreeSpace": "Свободное место", "FreeSpace": "Свободное место",
+5 -1
View File
@@ -196,5 +196,9 @@
"Enabled": "Povoliť", "Enabled": "Povoliť",
"UnableToAddANewImportListExclusionPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", "UnableToAddANewImportListExclusionPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.",
"UnableToAddANewMetadataProfilePleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", "UnableToAddANewMetadataProfilePleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.",
"UnableToAddANewQualityProfilePleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova." "UnableToAddANewQualityProfilePleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.",
"Reason": "Séria",
"Clone": "Zatvoriť",
"AptUpdater": "Použiť apt pre inštaláciu aktualizácie",
"BuiltIn": "Vstavaný"
} }
+120 -101
View File
@@ -8,9 +8,9 @@
"AddingTag": "Etiket ekleniyor", "AddingTag": "Etiket ekleniyor",
"AnalyticsEnabledHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "AnalyticsEnabledHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"Columns": "Sütunlar", "Columns": "Sütunlar",
"DeleteIndexer": "Dizinleyiciyi Sil", "DeleteIndexer": "İndeksleyiciyi Sil",
"DeleteRootFolderMessageText": "Dizin oluşturucuyu '{0}' silmek istediğinizden emin misiniz?", "DeleteRootFolderMessageText": "Dizin oluşturucuyu '{0}' silmek istediğinizden emin misiniz?",
"Ended": "Bitti", "Ended": "Biten",
"Group": "Grup", "Group": "Grup",
"LoadingBooksFailed": "Film dosyaları yüklenemedi", "LoadingBooksFailed": "Film dosyaları yüklenemedi",
"None": "Yok", "None": "Yok",
@@ -18,22 +18,22 @@
"SslCertPathHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "SslCertPathHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"SslCertPasswordHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "SslCertPasswordHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"UnableToLoadMetadataProfiles": "Gecikme Profilleri yüklenemiyor", "UnableToLoadMetadataProfiles": "Gecikme Profilleri yüklenemiyor",
"AgeWhenGrabbed": "Yıl (yakalandığında)", "AgeWhenGrabbed": "Yıl (alındığında)",
"AlreadyInYourLibrary": "Kütüphanenizde mevcut", "AlreadyInYourLibrary": "Kütüphanenizde mevcut",
"AlternateTitles": "Alternatif Başlıklar", "AlternateTitles": "Alternatif Başlıklar",
"Analytics": "Analitik", "Analytics": "Analiz",
"AnalyticsEnabledHelpText": "Anonim kullanım ve hata bilgilerini {appName} sunucularına gönderin. Bu, tarayıcınızla ilgili bilgileri, kullandığınız {appName} WebUI sayfalarını, hata raporlamasının yanı sıra işletim sistemi ve çalışma zamanı sürümünü içerir. Bu bilgileri, özellikleri ve hata düzeltmelerini önceliklendirmek için kullanacağız.", "AnalyticsEnabledHelpText": "Anonim kullanım ve hata bilgilerini {appName} sunucularına gönderin. Bu, tarayıcınızla ilgili bilgileri, kullandığınız {appName} WebUI sayfalarını, hata raporlamasının yanı sıra işletim sistemi ve çalışma zamanı sürümünü içerir. Bu bilgileri, özellikleri ve hata düzeltmelerini önceliklendirmek için kullanacağız.",
"AppDataDirectory": "Uygulama Veri Dizini", "AppDataDirectory": "Uygulama Veri Dizini",
"ApplyTags": "Etiketleri Uygula", "ApplyTags": "Etiketleri Uygula",
"Authentication": "Doğrulama", "Authentication": "Doğrulama",
"AuthenticationMethodHelpText": "{appName}'a erişmek için Kullanıcı Adı ve Şifre gerektir", "AuthenticationMethodHelpText": "{appName}'e erişmek için Kullanıcı Adı ve Parola gereklidir",
"AuthorClickToChangeBook": "Filmi değiştirmek için tıklayın", "AuthorClickToChangeBook": "Filmi değiştirmek için tıklayın",
"AutoRedownloadFailedHelpText": "Otomatik olarak farklı bir Yayın arayın ve indirmeye çalışın", "AutoRedownloadFailedHelpText": "Farklı bir sürümü otomatik olarak ara ve indirmeyi dene",
"AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Diskten silinen filmler otomatik olarak {appName}'da izlenmez", "AutoUnmonitorPreviouslyDownloadedBooksHelpText": "Diskten silinen filmler otomatik olarak {appName}'da izlenmez",
"Automatic": "Otomatik", "Automatic": "Otomatik",
"BackupFolderHelpText": "Göreli yollar {appName}'ın AppData dizini altında olacaktır", "BackupFolderHelpText": "Göreli yollar {appName}'ın AppData dizini altında olacaktır",
"BackupNow": "Şimdi yedekle", "BackupNow": "Şimdi Yedekle",
"BackupRetentionHelpText": "Saklama süresinden daha eski olan otomatik yedeklemeler otomatik olarak temizlenecektir", "BackupRetentionHelpText": "Saklama süresinden daha eski otomatik yedeklemeler otomatik olarak temizlenecektir",
"Backups": "Yedeklemeler", "Backups": "Yedeklemeler",
"BindAddress": "Bind Adresi", "BindAddress": "Bind Adresi",
"BindAddressHelpText": "Tüm arayüzler için geçerli IP adresi, localhost veya '*'", "BindAddressHelpText": "Tüm arayüzler için geçerli IP adresi, localhost veya '*'",
@@ -41,12 +41,12 @@
"BookIsDownloading": "Film indiriliyor", "BookIsDownloading": "Film indiriliyor",
"BookIsDownloadingInterp": "Film indiriliyor - {0}% {1}", "BookIsDownloadingInterp": "Film indiriliyor - {0}% {1}",
"Branch": "Şube", "Branch": "Şube",
"BypassProxyForLocalAddresses": "Yerel Adresler için Proxy'yi Atla", "BypassProxyForLocalAddresses": "Yerel Adresler için Proxy'yi Kullanma",
"Calendar": "Takvim", "Calendar": "Takvim",
"CalendarWeekColumnHeaderHelpText": "Aktif görünüm hafta olduğunda her bir sütunun üzerinde gösterilir", "CalendarWeekColumnHeaderHelpText": "Aktif görünüm hafta olduğunda her bir sütunun üzerinde gösterilir",
"Cancel": "Vazgeç", "Cancel": "Vazgeç",
"CancelPendingTask": "Bu bekleyen görevi iptal etmek istediğinizden emin misiniz?", "CancelPendingTask": "Bekleyen görevi iptal etmek istediğinizden emin misiniz?",
"CertificateValidation": "Sertifika Doğrulama", "CertificateValidation": "Sertifika Doğrulaması",
"CertificateValidationHelpText": "HTTPS sertifika doğrulamasının sıkılığını değiştirin. Riskleri anlamadığınız sürece değişmeyin.", "CertificateValidationHelpText": "HTTPS sertifika doğrulamasının sıkılığını değiştirin. Riskleri anlamadığınız sürece değişmeyin.",
"ChangeFileDate": "Dosya Tarihini Değiştir", "ChangeFileDate": "Dosya Tarihini Değiştir",
"ChangeHasNotBeenSavedYet": "Değişiklik henüz kaydedilmedi", "ChangeHasNotBeenSavedYet": "Değişiklik henüz kaydedilmedi",
@@ -87,7 +87,7 @@
"DeleteImportListExclusion": "İçe Aktarma Listesi Hariç Tutmasını Sil", "DeleteImportListExclusion": "İçe Aktarma Listesi Hariç Tutmasını Sil",
"DeleteImportListExclusionMessageText": "Bu içe aktarma listesi hariç tutma işlemini silmek istediğinizden emin misiniz?", "DeleteImportListExclusionMessageText": "Bu içe aktarma listesi hariç tutma işlemini silmek istediğinizden emin misiniz?",
"DeleteImportListMessageText": "'{name}' listesini silmek istediğinizden emin misiniz?", "DeleteImportListMessageText": "'{name}' listesini silmek istediğinizden emin misiniz?",
"DeleteIndexerMessageText": "'{name}' dizinleyicisini silmek istediğinizden emin misiniz?", "DeleteIndexerMessageText": "'{name}' indeksleyicisini silmek istediğinizden emin misiniz?",
"DeleteMetadataProfileMessageText": "Kalite profilini silmek istediğinizden emin misiniz {0}", "DeleteMetadataProfileMessageText": "Kalite profilini silmek istediğinizden emin misiniz {0}",
"DeleteNotification": "Bildirimi Sil", "DeleteNotification": "Bildirimi Sil",
"DeleteNotificationMessageText": "'{name}' bildirimini silmek istediğinizden emin misiniz?", "DeleteNotificationMessageText": "'{name}' bildirimini silmek istediğinizden emin misiniz?",
@@ -103,23 +103,23 @@
"DetailedProgressBar": "Ayrıntılı İlerleme Çubuğu", "DetailedProgressBar": "Ayrıntılı İlerleme Çubuğu",
"DetailedProgressBarHelpText": "İlerleme çubuğundaki metni göster", "DetailedProgressBarHelpText": "İlerleme çubuğundaki metni göster",
"DiskSpace": "Disk Alanı", "DiskSpace": "Disk Alanı",
"Docker": "Liman işçisi", "Docker": "Docker",
"DownloadClient": stemciyi İndir", "DownloadClient": ndirme İstemcisi",
"DownloadClientSettings": "İstemci Ayarlarını İndir", "DownloadClientSettings": ndirme İstemcisi Ayarlarını",
"DownloadClients": "İndirme İstemcileri", "DownloadClients": "İndirme İstemcileri",
"DownloadFailedCheckDownloadClientForMoreDetails": "İndirme başarısız oldu: Daha fazla ayrıntı için indirme istemcisini kontrol edin", "DownloadFailedCheckDownloadClientForMoreDetails": "İndirme başarısız oldu: Daha fazla ayrıntı için indirme istemcisini kontrol edin",
"DownloadFailedInterp": "İndirme başarısız oldu: {0}", "DownloadFailedInterp": "İndirme başarısız oldu: {0}",
"DownloadPropersAndRepacksHelpTexts1": "Propers / Repacks'e otomatik olarak yükseltme yapılıp yapılmayacağı", "DownloadPropersAndRepacksHelpTexts1": "Propers / Repacks'e otomatik olarak yükseltme yapılıp yapılmayacağı",
"DownloadWarningCheckDownloadClientForMoreDetails": "İndirme uyarısı: Daha fazla ayrıntı için indirme istemcisini kontrol edin", "DownloadWarningCheckDownloadClientForMoreDetails": "İndirme uyarısı: Daha fazla ayrıntı için indirme istemcisini kontrol edin",
"Edit": "Düzenle", "Edit": "Düzenle",
"Edition": "Baskı", "Edition": "Versiyon",
"Enable": "etkinleştirme", "Enable": "etkinleştirme",
"EnableAutomaticAdd": "Otomatik Eklemeyi Etkinleştir", "EnableAutomaticAdd": "Otomatik Eklemeyi Etkinleştir",
"EnableAutomaticSearch": "Otomatik Aramayı Etkinleştir", "EnableAutomaticSearch": "Otomatik Aramayı Etkinleştir",
"EnableColorImpairedMode": "Renk Bozukluğu Modunu Etkinleştir", "EnableColorImpairedMode": "Renk Bozukluğu Modunu Etkinleştir",
"EnableColorImpairedModeHelpText": "Renk bozukluğu olan kullanıcıların renk kodlu bilgileri daha iyi ayırt etmesine olanak tanıyan değiştirilmiş stil", "EnableColorImpairedModeHelpText": "Renk engelli kullanıcıların renkleri daha iyi ayırt edebilmelerini sağlamak için değiştirilmiş stil",
"EnableCompletedDownloadHandlingHelpText": "Tamamlanan indirmeleri indirme istemcisinden otomatik olarak içe aktarın", "EnableCompletedDownloadHandlingHelpText": "Tamamlanan indirmeleri indirme istemcisinden otomatik olarak içe aktarın",
"EnableHelpText": "Bu meta veri türü için meta veri dosyası oluşturmayı etkinleştirin", "EnableHelpText": "Bu meta veri türü için meta veri dosyası oluşturmayı etkinleştir",
"EnableInteractiveSearch": "Etkileşimli Aramayı Etkinleştir", "EnableInteractiveSearch": "Etkileşimli Aramayı Etkinleştir",
"EnableRSS": "RSS'yi etkinleştir", "EnableRSS": "RSS'yi etkinleştir",
"EnableSSL": "SSL'yi etkinleştir", "EnableSSL": "SSL'yi etkinleştir",
@@ -129,12 +129,12 @@
"Exception": "İstisna", "Exception": "İstisna",
"FailedDownloadHandling": "Başarısız İndirme İşlemi", "FailedDownloadHandling": "Başarısız İndirme İşlemi",
"FileDateHelpText": "İçe aktarmada / yeniden taramada dosya tarihini değiştirin", "FileDateHelpText": "İçe aktarmada / yeniden taramada dosya tarihini değiştirin",
"FileManagement": "Dosya idare", "FileManagement": "Dosya Yönetimi",
"FileNames": "Dosya Adları", "FileNames": "Dosya Adları",
"Filename": "Dosya adı", "Filename": "Dosya adı",
"Files": "Dosyalar", "Files": "Dosyalar",
"FirstDayOfWeek": "Haftanın ilk günü", "FirstDayOfWeek": "Haftanın İlk Günü",
"Fixed": "Sabit", "Fixed": "Düzeltilen",
"Folder": "Klasör", "Folder": "Klasör",
"Folders": "Klasörler", "Folders": "Klasörler",
"ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Bireysel indirme istemcileri hakkında daha fazla bilgi için bilgi düğmelerine tıklayın.", "ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Bireysel indirme istemcileri hakkında daha fazla bilgi için bilgi düğmelerine tıklayın.",
@@ -145,13 +145,13 @@
"GoToInterp": "{0} adresine gidin", "GoToInterp": "{0} adresine gidin",
"Grab": "Kapmak", "Grab": "Kapmak",
"GrabID": "Grab ID", "GrabID": "Grab ID",
"GrabRelease": "Yayın Yakalama", "GrabRelease": "Yayın Alma",
"GrabReleaseMessageText": "{appName}, bu sürümün hangi film için olduğunu belirleyemedi. {appName} bu sürümü otomatik olarak içe aktaramayabilir. '{0}' almak istiyor musunuz?", "GrabReleaseMessageText": "{appName}, bu sürümün hangi film için olduğunu belirleyemedi. {appName} bu sürümü otomatik olarak içe aktaramayabilir. '{0}' almak istiyor musunuz?",
"GrabSelected": "Seçilenleri Kap", "GrabSelected": "Seçilenleri Al",
"HasPendingChangesNoChanges": "Değişiklikler yok", "HasPendingChangesNoChanges": "Değişiklikler yok",
"HasPendingChangesSaveChanges": "Değişiklikleri Kaydet", "HasPendingChangesSaveChanges": "Değişiklikleri Kaydet",
"History": "Geçmiş", "History": "Geçmiş",
"Host": "Ana bilgisayar", "Host": "Sunucu",
"Hostname": "Hostname", "Hostname": "Hostname",
"ICalFeed": "iCal Beslemesi", "ICalFeed": "iCal Beslemesi",
"ICalHttpUrlHelpText": "Bu URL'yi müşterilerinize kopyalayın veya tarayıcınız webcal'i destekliyorsa abone olmak için tıklayın", "ICalHttpUrlHelpText": "Bu URL'yi müşterilerinize kopyalayın veya tarayıcınız webcal'i destekliyorsa abone olmak için tıklayın",
@@ -166,14 +166,14 @@
"ImportExtraFilesHelpText": "Bir film dosyasını içe aktardıktan sonra eşleşen ekstra dosyaları (altyazılar, bilgi notları vb.) İçe aktarın", "ImportExtraFilesHelpText": "Bir film dosyasını içe aktardıktan sonra eşleşen ekstra dosyaları (altyazılar, bilgi notları vb.) İçe aktarın",
"ImportFailedInterp": "İçe aktarma başarısız oldu: {0}", "ImportFailedInterp": "İçe aktarma başarısız oldu: {0}",
"ImportedTo": "İçeri Aktarıldı", "ImportedTo": "İçeri Aktarıldı",
"Importing": "İçe aktarılıyor", "Importing": "İçe Aktarma",
"IncludeHealthWarningsHelpText": "Sağlık Uyarılarını Dahil Et", "IncludeHealthWarningsHelpText": "Sağlık Uyarılarını Dahil Et",
"IncludeUnknownAuthorItemsHelpText": "Kuyrukta film olmayan öğeleri gösterin. Bu, kaldırılan filmleri veya {appName}'ın kategorisindeki herhangi bir şeyi içerebilir", "IncludeUnknownAuthorItemsHelpText": "Kuyrukta film olmayan öğeleri gösterin. Bu, kaldırılan filmleri veya {appName}'ın kategorisindeki herhangi bir şeyi içerebilir",
"IncludeUnmonitored": "Takip Edilmeyenleri Dahil Et", "IncludeUnmonitored": "Takip Edilmeyenleri Dahil Et",
"Indexer": "Dizinleyici", "Indexer": "İndeksleyici",
"IndexerPriority": "Dizinleyici Önceliği", "IndexerPriority": "İndeksleyici Önceliği",
"IndexerSettings": "Dizinleyici Ayarları", "IndexerSettings": "İndeksleyici Ayarları",
"Indexers": "Dizinleyiciler", "Indexers": "İndeksleyiciler",
"Interval": "Periyot", "Interval": "Periyot",
"IsCutoffCutoff": "Ayırmak", "IsCutoffCutoff": "Ayırmak",
"IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Bu kalite karşılanana veya aşılana kadar yükseltin", "IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Bu kalite karşılanana veya aşılana kadar yükseltin",
@@ -182,33 +182,33 @@
"LaunchBrowserHelpText": " Bir web tarayıcısı açın ve uygulama başlangıcında {appName} ana sayfasına gidin.", "LaunchBrowserHelpText": " Bir web tarayıcısı açın ve uygulama başlangıcında {appName} ana sayfasına gidin.",
"LoadingBookFilesFailed": "Film dosyaları yüklenemedi", "LoadingBookFilesFailed": "Film dosyaları yüklenemedi",
"Local": "Yerel", "Local": "Yerel",
"LogFiles": "Log dosyaları", "LogFiles": "Log Kayıtları",
"LogLevel": "Günlük Düzeyi", "LogLevel": "Log Seviyesi",
"LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "İzleme günlük kaydı yalnızca geçici olarak etkinleştirilmelidir", "LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "İzleme günlük kaydı yalnızca geçici olarak etkinleştirilmelidir",
"Logging": "Loglama", "Logging": "Loglama",
"Logs": "Kütükler", "Logs": "Kayıtlar",
"LongDateFormat": "Uzun Tarih Formatı", "LongDateFormat": "Uzun Tarih Formatı",
"MIA": "MIA", "MIA": "MIA",
"ManualImport": "Manuel İçe Aktar", "ManualImport": "Manuel İçe Aktar",
"MarkAsFailed": "Başarısız olarak işaretle", "MarkAsFailed": "Başarısız olarak işaretle",
"MarkAsFailedMessageText": "'{0}' başarısız olarak işaretlemek istediğinizden emin misiniz?", "MarkAsFailedMessageText": "'{0}' başarısız olarak işaretlemek istediğinizden emin misiniz?",
"MaximumLimits": "Maksimum Sınırlar", "MaximumLimits": "Maksimum Sınırlar",
"MaximumSize": "En büyük boy", "MaximumSize": "Maksimum Boyut",
"MaximumSizeHelpText": "MB cinsinden alınacak bir sürüm için maksimum boyut. Sınırsız olarak ayarlamak için sıfıra ayarlayın", "MaximumSizeHelpText": "MB cinsinden alınacak bir sürüm için maksimum boyut. Sınırsız olarak ayarlamak için sıfıra ayarlayın",
"Mechanism": "İşleyiş", "Mechanism": "Teknik",
"MediaInfo": "Medya bilgisi", "MediaInfo": "Medya bilgisi",
"MediaManagementSettings": "Medya Yönetimi Ayarları", "MediaManagementSettings": "Medya Yönetimi Ayarları",
"Message": "İleti", "Message": "Mesaj",
"MetadataSettings": "Meta Veri Ayarları", "MetadataSettings": "Meta Veri Ayarları",
"MinimumAge": "Asgari yaş", "MinimumAge": "Minimum Geçen Süre",
"MinimumAgeHelpText": "Yalnızca Usenet: NZB'lerin alınmadan önceki dakika cinsinden minimum yaşı. Yeni yayınların usenet sağlayıcınıza yayılması için zaman tanımak için bunu kullanın.", "MinimumAgeHelpText": "Yalnızca Usenet: NZB'lerin almadan önceki minimum geçen süre (dakika cinsinden). Bunu, yeni sürümlerin usenet sağlayıcınıza yayılması için zaman vermek amacıyla kullanın.",
"MinimumFreeSpace": "Minimum Boş Alan", "MinimumFreeSpace": "Minimum Boş Alan",
"MinimumFreeSpaceWhenImportingHelpText": "Bu miktardan daha az kullanılabilir disk alanı bırakacaksa içe aktarmayı önleyin", "MinimumFreeSpaceWhenImportingHelpText": "Bu miktardan daha az kullanılabilir disk alanı bırakacaksa içe aktarmayı önleyin",
"MinimumLimits": "Minimum Limitler", "MinimumLimits": "Minimum Limitler",
"Missing": "Eksik", "Missing": "Eksik",
"Mode": "Mod", "Mode": "Mod",
"Monitored": "Takip Ediliyor", "Monitored": "Takip Ediliyor",
"MoreInfo": "Daha fazla bilgi", "MoreInfo": "Daha Fazla Bilgi",
"MustContain": "İçermeli", "MustContain": "İçermeli",
"MustNotContain": "İçermemeli", "MustNotContain": "İçermemeli",
"Name": "İsim", "Name": "İsim",
@@ -217,9 +217,9 @@
"NoBackupsAreAvailable": "Kullanılabilir yedek yok", "NoBackupsAreAvailable": "Kullanılabilir yedek yok",
"NoLeaveIt": "Hayır, Bırak", "NoLeaveIt": "Hayır, Bırak",
"NoLimitForAnyRuntime": "Herhangi bir çalışma zamanı için sınır yok", "NoLimitForAnyRuntime": "Herhangi bir çalışma zamanı için sınır yok",
"NoLogFiles": "Günlük dosyası yok", "NoLogFiles": "Log kayıt dosyası henüz oluşturulmadı",
"NoMinimumForAnyRuntime": "Herhangi bir çalışma süresi için minimum değer yok", "NoMinimumForAnyRuntime": "Herhangi bir çalışma süresi için minimum değer yok",
"NoUpdatesAreAvailable": "Güncelleme yok", "NoUpdatesAreAvailable": "Güncelleme bulunamadı",
"NotificationTriggers": "Bildirim Tetikleyicileri", "NotificationTriggers": "Bildirim Tetikleyicileri",
"OnGrabHelpText": "Yakalandığında", "OnGrabHelpText": "Yakalandığında",
"OnHealthIssueHelpText": "Sağlık Sorunu Hakkında", "OnHealthIssueHelpText": "Sağlık Sorunu Hakkında",
@@ -230,12 +230,12 @@
"Original": "Orijinal", "Original": "Orijinal",
"Overview": "Genel Bakış", "Overview": "Genel Bakış",
"PackageVersion": "Paket Versiyonu", "PackageVersion": "Paket Versiyonu",
"PageSize": "Sayfa boyutu", "PageSize": "Sayfa Boyutu",
"PageSizeHelpText": "Her sayfada gösterilecek öğe sayısı", "PageSizeHelpText": "Her sayfada gösterilecek öğe sayısı",
"Password": "Şifre", "Password": "Şifre",
"Path": "Yol", "Path": "Yol",
"Permissions": "İzinler", "Permissions": "İzinler",
"Port": "Liman", "Port": "Port No",
"PortHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "PortHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"PortNumber": "Port numarası", "PortNumber": "Port numarası",
"PosterSize": "Poster Boyutu", "PosterSize": "Poster Boyutu",
@@ -255,7 +255,7 @@
"QualityProfile": "Kalite Profili", "QualityProfile": "Kalite Profili",
"QualityProfiles": "Kalite Profileri", "QualityProfiles": "Kalite Profileri",
"QualitySettings": "Kalite Ayarları", "QualitySettings": "Kalite Ayarları",
"Queue": "Sırada", "Queue": "Kuyruk",
"RSSSync": "RSS Senkronizasyonu", "RSSSync": "RSS Senkronizasyonu",
"RSSSyncInterval": "RSS Senkronizasyon Aralığı", "RSSSyncInterval": "RSS Senkronizasyon Aralığı",
"ReadTheWikiForMoreInformation": "Daha fazla bilgi için Wiki'yi okuyun", "ReadTheWikiForMoreInformation": "Daha fazla bilgi için Wiki'yi okuyun",
@@ -267,7 +267,7 @@
"RecycleBinCleanupDaysHelpTextWarning": "Geri dönüşüm kutusundaki, seçilen gün sayısından daha eski olan dosyalar otomatik olarak temizlenecektir", "RecycleBinCleanupDaysHelpTextWarning": "Geri dönüşüm kutusundaki, seçilen gün sayısından daha eski olan dosyalar otomatik olarak temizlenecektir",
"RecycleBinHelpText": "Film dosyaları, kalıcı olarak silinmek yerine silindiğinde buraya gider", "RecycleBinHelpText": "Film dosyaları, kalıcı olarak silinmek yerine silindiğinde buraya gider",
"RecyclingBin": "Geri dönüşüm Kutusu", "RecyclingBin": "Geri dönüşüm Kutusu",
"RecyclingBinCleanup": "Geri Dönüşüm Kutusu Temizleme", "RecyclingBinCleanup": "Geri Dönüşüm Kutusu Temizle",
"Redownload": "Yeniden indir", "Redownload": "Yeniden indir",
"Refresh": "Yenile", "Refresh": "Yenile",
"RefreshInformationAndScanDisk": "Bilgileri ve tarama diskini yenileyin", "RefreshInformationAndScanDisk": "Bilgileri ve tarama diskini yenileyin",
@@ -290,7 +290,7 @@
"RemovedFromTaskQueue": "Görev kuyruğundan kaldırıldı", "RemovedFromTaskQueue": "Görev kuyruğundan kaldırıldı",
"RenameBooksHelpText": "Yeniden adlandırma devre dışı bırakılırsa, {appName} mevcut dosya adını kullanacaktır", "RenameBooksHelpText": "Yeniden adlandırma devre dışı bırakılırsa, {appName} mevcut dosya adını kullanacaktır",
"Reorder": "Yeniden sırala", "Reorder": "Yeniden sırala",
"ReplaceIllegalCharacters": "Yasadışı Karakterleri Değiştirin", "ReplaceIllegalCharacters": "Geçersiz Karakterleri Değiştirin",
"RequiredHelpText": "Sürüm, bu terimlerden en az birini içermelidir (büyük / küçük harfe duyarlı değildir)", "RequiredHelpText": "Sürüm, bu terimlerden en az birini içermelidir (büyük / küçük harfe duyarlı değildir)",
"RequiredPlaceHolder": "Yeni kısıtlama ekle", "RequiredPlaceHolder": "Yeni kısıtlama ekle",
"RescanAfterRefreshHelpTextWarning": "{appName}, 'Her Zaman' olarak ayarlanmadığında dosyalardaki değişiklikleri otomatik olarak algılamayacaktır", "RescanAfterRefreshHelpTextWarning": "{appName}, 'Her Zaman' olarak ayarlanmadığında dosyalardaki değişiklikleri otomatik olarak algılamayacaktır",
@@ -308,8 +308,8 @@
"RetentionHelpText": "Yalnızca Usenet: Sınırsız saklamaya ayarlamak için sıfıra ayarlayın", "RetentionHelpText": "Yalnızca Usenet: Sınırsız saklamaya ayarlamak için sıfıra ayarlayın",
"RetryingDownloadInterp": "İndirme işlemi {0}, {1} tarihinde yeniden deneniyor", "RetryingDownloadInterp": "İndirme işlemi {0}, {1} tarihinde yeniden deneniyor",
"RootFolder": "Kök Klasör", "RootFolder": "Kök Klasör",
"RootFolders": "Kök klasörler", "RootFolders": "Kök Klasörler",
"RssSyncIntervalHelpText": "Dakika cinsinden periyot. Devre dışı bırakmak için sıfıra ayarlayın (tüm otomatik yayın yakalamayı durduracaktır)", "RssSyncIntervalHelpText": "Dakika cinsinden aralık. Devre dışı bırakmak için sıfıra ayarlayın (tüm otomatik yayın almayı durduracaktır)",
"SSLCertPassword": "SSL Sertifika Parolası", "SSLCertPassword": "SSL Sertifika Parolası",
"SSLCertPath": "SSL Sertifika Yolu", "SSLCertPath": "SSL Sertifika Yolu",
"SSLPort": "SSL Bağlantı Noktası", "SSLPort": "SSL Bağlantı Noktası",
@@ -333,8 +333,8 @@
"ShowPath": "Yolu Göster", "ShowPath": "Yolu Göster",
"ShowQualityProfile": "Kalite Profilini Göster", "ShowQualityProfile": "Kalite Profilini Göster",
"ShowQualityProfileHelpText": "Poster altında kalite profilini göster", "ShowQualityProfileHelpText": "Poster altında kalite profilini göster",
"ShowRelativeDates": "Göreli Tarihleri Göster", "ShowRelativeDates": "İlgili Tarihleri Göster",
"ShowRelativeDatesHelpText": "Göreli (Bugün / Dün / vb.) Veya mutlak tarihleri göster", "ShowRelativeDatesHelpText": "Göreceli (Bugün/Dün/vb.) veya mutlak tarihleri göster",
"ShowSearch": "Aramayı Göster", "ShowSearch": "Aramayı Göster",
"ShowSearchActionHelpText": "Fareyle üzerine gelindiğinde arama düğmesini göster", "ShowSearchActionHelpText": "Fareyle üzerine gelindiğinde arama düğmesini göster",
"ShowSizeOnDisk": "Diskte Boyutu Göster", "ShowSizeOnDisk": "Diskte Boyutu Göster",
@@ -346,7 +346,7 @@
"SorryThatBookCannotBeFound": "Maalesef o film bulunamıyor.", "SorryThatBookCannotBeFound": "Maalesef o film bulunamıyor.",
"Source": "Kaynak", "Source": "Kaynak",
"SourcePath": "Kaynak Yolu", "SourcePath": "Kaynak Yolu",
"SslCertPasswordHelpText": "Pfx dosyasının şifresi", "SslCertPasswordHelpText": "Pfx dosyası için şifre",
"SslCertPathHelpText": "Pfx dosyasının yolu", "SslCertPathHelpText": "Pfx dosyasının yolu",
"SslPortHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "SslPortHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"StandardBookFormat": "Standart Film Formatı", "StandardBookFormat": "Standart Film Formatı",
@@ -354,7 +354,7 @@
"StartupDirectory": "Başlangıç Dizini", "StartupDirectory": "Başlangıç Dizini",
"Status": "Durum", "Status": "Durum",
"StatusEndedEnded": "Bitti", "StatusEndedEnded": "Bitti",
"Style": "Tarz", "Style": "Stil",
"SuccessMyWorkIsDoneNoFilesToRename": "Başarılı! İşim bitti, yeniden adlandırılacak dosya yok.", "SuccessMyWorkIsDoneNoFilesToRename": "Başarılı! İşim bitti, yeniden adlandırılacak dosya yok.",
"SuccessMyWorkIsDoneNoFilesToRetag": "Başarılı! İşim bitti, yeniden adlandırılacak dosya yok.", "SuccessMyWorkIsDoneNoFilesToRetag": "Başarılı! İşim bitti, yeniden adlandırılacak dosya yok.",
"SupportsRssvalueRSSIsNotSupportedWithThisIndexer": "RSS, bu indeksleyici ile desteklenmiyor", "SupportsRssvalueRSSIsNotSupportedWithThisIndexer": "RSS, bu indeksleyici ile desteklenmiyor",
@@ -366,7 +366,7 @@
"Tasks": "Görevler", "Tasks": "Görevler",
"TestAll": "Tümünü Test Et", "TestAll": "Tümünü Test Et",
"TestAllClients": "Tüm İstemcileri Test Et", "TestAllClients": "Tüm İstemcileri Test Et",
"TestAllIndexers": "Tüm Dizinleyicileri Test Et", "TestAllIndexers": "İndeksleyicileri Test Et",
"TestAllLists": "Tüm Listeleri Test Et", "TestAllLists": "Tüm Listeleri Test Et",
"ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Bu, tüm dizin oluşturucular için geçerli olacaktır, lütfen onlar tarafından belirlenen kurallara uyun", "ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Bu, tüm dizin oluşturucular için geçerli olacaktır, lütfen onlar tarafından belirlenen kurallara uyun",
"TimeFormat": "Zaman formatı", "TimeFormat": "Zaman formatı",
@@ -382,7 +382,7 @@
"URLBase": "URL Tabanı", "URLBase": "URL Tabanı",
"UnableToAddANewDownloadClientPleaseTryAgain": "Yeni bir indirme istemcisi eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewDownloadClientPleaseTryAgain": "Yeni bir indirme istemcisi eklenemiyor, lütfen tekrar deneyin.",
"UnableToAddANewImportListExclusionPleaseTryAgain": "Yeni bir liste dışlaması eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewImportListExclusionPleaseTryAgain": "Yeni bir liste dışlaması eklenemiyor, lütfen tekrar deneyin.",
"UnableToAddANewIndexerPleaseTryAgain": "Yeni bir dizinleyici eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewIndexerPleaseTryAgain": "Yeni bir indeksleyici eklenemiyor, lütfen tekrar deneyin.",
"UnableToAddANewListPleaseTryAgain": "Yeni bir liste eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewListPleaseTryAgain": "Yeni bir liste eklenemiyor, lütfen tekrar deneyin.",
"UnableToAddANewMetadataProfilePleaseTryAgain": "Yeni bir kaliteli profil eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewMetadataProfilePleaseTryAgain": "Yeni bir kaliteli profil eklenemiyor, lütfen tekrar deneyin.",
"UnableToAddANewNotificationPleaseTryAgain": "Yeni bir bildirim eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewNotificationPleaseTryAgain": "Yeni bir bildirim eklenemiyor, lütfen tekrar deneyin.",
@@ -397,7 +397,7 @@
"UnableToLoadHistory": "Geçmiş yüklenemiyor", "UnableToLoadHistory": "Geçmiş yüklenemiyor",
"UnableToLoadImportListExclusions": "Hariç Tutulanlar Listesi yüklenemiyor", "UnableToLoadImportListExclusions": "Hariç Tutulanlar Listesi yüklenemiyor",
"UnableToLoadIndexerOptions": "Dizin oluşturucu seçenekleri yüklenemiyor", "UnableToLoadIndexerOptions": "Dizin oluşturucu seçenekleri yüklenemiyor",
"UnableToLoadIndexers": "Dizinleyiciler yüklenemiyor", "UnableToLoadIndexers": "İndeksleyiciler yüklenemiyor",
"UnableToLoadLists": "Listeler yüklenemiyor", "UnableToLoadLists": "Listeler yüklenemiyor",
"UnableToLoadMediaManagementSettings": "Medya Yönetimi ayarları yüklenemiyor", "UnableToLoadMediaManagementSettings": "Medya Yönetimi ayarları yüklenemiyor",
"UnableToLoadMetadata": "Meta Veriler yüklenemiyor", "UnableToLoadMetadata": "Meta Veriler yüklenemiyor",
@@ -429,20 +429,20 @@
"UsenetDelay": "Usenet Gecikmesi", "UsenetDelay": "Usenet Gecikmesi",
"UsenetDelayHelpText": "Usenet'ten bir yayın almadan önce beklemek için dakika cinsinden gecikme", "UsenetDelayHelpText": "Usenet'ten bir yayın almadan önce beklemek için dakika cinsinden gecikme",
"Username": "Kullanıcı adı", "Username": "Kullanıcı adı",
"BranchUpdate": "{appName}'ı güncellemek için kullanılacak dal", "BranchUpdate": "{appName} uygulamasını güncellemek için kullanılacak şube",
"BranchUpdateMechanism": "Harici güncelleme mekanizması tarafından kullanılan dal", "BranchUpdateMechanism": "Harici güncelleme mekanizması tarafından kullanılan şube",
"Version": "Sürüm", "Version": "Sürüm",
"WeekColumnHeader": "Hafta Sütun Başlığı", "WeekColumnHeader": "Hafta Sütun Başlığı",
"Year": "Yıl", "Year": "Yıl",
"YesCancel": "Evet İptal", "YesCancel": "Evet İptal",
"DownloadClientCheckDownloadingToRoot": "İndirme istemcisi {0}, indirmeleri kök klasöre yerleştirir {1}. Bir kök klasöre indirmemelisiniz.", "DownloadClientCheckDownloadingToRoot": "İndirme istemcisi {0}, indirmeleri kök klasöre yerleştirir {1}. Bir kök klasöre indirmemelisiniz.",
"NotAvailable": "Müsait değil", "NotAvailable": "Müsait değil",
"ReleaseTitle": "Yayin Başlığı", "ReleaseTitle": "Yayın Başlığı",
"ShowReleaseDate": "Çıkış Tarihini Göster", "ShowReleaseDate": "Çıkış Tarihini Göster",
"ReplaceIllegalCharactersHelpText": "Geçersiz karakterleri değiştirin. İşaretli değilse, {appName} onları kaldıracaktır.", "ReplaceIllegalCharactersHelpText": "Geçersiz karakterleri değiştirin. İşaretli değilse, {appName} onları kaldıracaktır.",
"BookAvailableButMissing": "Film Mevcut, ancak Eksik", "BookAvailableButMissing": "Film Mevcut, ancak Eksik",
"NotMonitored": "Takip Edilmeyen", "NotMonitored": "Takip Edilmeyen",
"OutputPath": "Çıkış yolu", "OutputPath": "İndirilen Yol",
"Progress": "İlerleme", "Progress": "İlerleme",
"ShowBookTitleHelpText": "Film başlığını posterin altında göster", "ShowBookTitleHelpText": "Film başlığını posterin altında göster",
"ShowTitle": "Başlığı göster", "ShowTitle": "Başlığı göster",
@@ -462,7 +462,7 @@
"Time": "Zaman", "Time": "Zaman",
"UnableToLoadBlocklist": "Kara liste yüklenemiyor", "UnableToLoadBlocklist": "Kara liste yüklenemiyor",
"Wanted": "Arananlar", "Wanted": "Arananlar",
"Blocklist": "Kara liste", "Blocklist": "Engellenenler listesi",
"BlocklistRelease": "Kara Liste Sürümü", "BlocklistRelease": "Kara Liste Sürümü",
"AppDataLocationHealthCheckMessage": "Güncelleme sırasında AppData'nın silinmesini önlemek için güncelleme yapılmayacaktır", "AppDataLocationHealthCheckMessage": "Güncelleme sırasında AppData'nın silinmesini önlemek için güncelleme yapılmayacaktır",
"Filters": "Filtreler", "Filters": "Filtreler",
@@ -476,25 +476,25 @@
"ConnectSettingsSummary": "Bildirimler, medya sunucularına/oynatıcılara bağlantılar ve özel komut kodları", "ConnectSettingsSummary": "Bildirimler, medya sunucularına/oynatıcılara bağlantılar ve özel komut kodları",
"CreateEmptyAuthorFolders": "Boş film klasörleri oluşturun", "CreateEmptyAuthorFolders": "Boş film klasörleri oluşturun",
"General": "Genel", "General": "Genel",
"GeneralSettingsSummary": "Port, SSL, kullanıcı adı/şifre, proxy, analitikler ve güncellemeler", "GeneralSettingsSummary": "Port, SSL, kullanıcı adı/şifre, proxy, analizler ve güncellemeler",
"ImportListStatusCheckAllClientMessage": "Hatalar nedeniyle tüm listeler kullanılamıyor", "ImportListStatusCheckAllClientMessage": "Hatalar nedeniyle tüm indeksleyiciler kullanılamıyor",
"ImportListStatusCheckSingleClientMessage": "Hatalar nedeniyle kullanılamayan listeler: {0}", "ImportListStatusCheckSingleClientMessage": "Hatalar nedeniyle kullanılamayan listeler: {0}",
"ImportMechanismHealthCheckMessage": "Tamamlanan İndirme İşlemini Etkinleştir", "ImportMechanismHealthCheckMessage": "Tamamlanan İndirme İşlemini Etkinleştir",
"IndexerLongTermStatusCheckAllClientMessage": "6 saatten uzun süren arızalar nedeniyle tüm dizinleyiciler kullanılamıyor", "IndexerLongTermStatusCheckAllClientMessage": "6 saatten uzun süren arızalar nedeniyle tüm indeksleyiciler kullanılamıyor",
"IndexerLongTermStatusCheckSingleClientMessage": "6 saatten uzun süredir yaşanan arızalar nedeniyle dizinleyiciler kullanılamıyor: {0}", "IndexerLongTermStatusCheckSingleClientMessage": "6 saatten uzun süredir yaşanan arızalar nedeniyle dizinleyiciler kullanılamıyor: {0}",
"IndexerRssHealthCheckNoAvailableIndexers": "Son indeksleyici hataları nedeniyle tüm rss özellikli indeksleyiciler geçici olarak kullanılamıyor", "IndexerRssHealthCheckNoAvailableIndexers": "Son zamanlardaki indeksleyici hataları nedeniyle tüm rss uyumlu indeksleyiciler geçici olarak kullanılamıyor",
"IndexerRssHealthCheckNoIndexers": "RSS senkronizasyonunun etkin olduğu dizinleyici yok, {appName} yeni sürümleri otomatik olarak almayacak", "IndexerRssHealthCheckNoIndexers": "RSS senkronizasyonunun etkin olduğu dizinleyici yok, {appName} yeni sürümleri otomatik olarak almayacak",
"IndexerSearchCheckNoAutomaticMessage": "Otomatik Arama etkinken indeksleyici yok, {appName} herhangi bir otomatik arama sonucu sağlamayacak", "IndexerSearchCheckNoAutomaticMessage": "Otomatik Arama etkinken indeksleyici yok, {appName} herhangi bir otomatik arama sonucu sağlamayacak",
"IndexerSearchCheckNoAvailableIndexersMessage": "Son indeksleyici hataları nedeniyle arama özellikli indeksleyicilerin tümü geçici olarak kullanılamıyor", "IndexerSearchCheckNoAvailableIndexersMessage": "Son zamanlardaki indeksleyici hataları nedeniyle tüm arama yeteneğine sahip indeksleyiciler geçici olarak kullanılamıyor",
"IndexerSearchCheckNoInteractiveMessage": "Etkileşimli Arama etkinken indeksleyici yok, {appName} herhangi bir etkileşimli arama sonucu sağlamayacaktır", "IndexerSearchCheckNoInteractiveMessage": "Etkileşimli Arama etkinken indeksleyici yok, {appName} herhangi bir etkileşimli arama sonucu sağlamayacaktır",
"IndexersSettingsSummary": "Dizinleyiciler ve yayımlama kısıtlamaları", "IndexersSettingsSummary": "İndeksleyiciler ve yayımlama kısıtlamaları",
"IndexerStatusCheckAllClientMessage": "Hatalar nedeniyle tüm dizinleyiciler kullanılamıyor", "IndexerStatusCheckAllClientMessage": "Hatalar nedeniyle tüm indeksleyiciler kullanılamıyor",
"IndexerStatusCheckSingleClientMessage": "Hatalar nedeniyle dizinleyiciler kullanılamıyor: {0}", "IndexerStatusCheckSingleClientMessage": "Hatalar nedeniyle dizinleyiciler kullanılamıyor: {0}",
"MediaManagement": "Medya işletme", "MediaManagement": "Medya Yönetimi",
"MissingFromDisk": "{appName} dosyayı diskte bulamadı, bu yüzden kaldırıldı", "MissingFromDisk": "{appName} dosyayı diskte bulamadı, bu yüzden kaldırıldı",
"Monitor": "Takip", "Monitor": "Takip",
"MountCheckMessage": "Bir film yolu içeren bağlama, salt okunur olarak bağlanır: ", "MountCheckMessage": "Bir film yolu içeren bağlama, salt okunur olarak bağlanır: ",
"OnGrab": "Yakalandığında", "OnGrab": "Alındığında",
"OnHealthIssue": "Sağlık Sorunu Hakkında", "OnHealthIssue": "Sağlık Sorunu Hakkında",
"OnRename": "Yeniden Adlandırıldığında", "OnRename": "Yeniden Adlandırıldığında",
"OnUpgrade": "Yükseltme sırasında", "OnUpgrade": "Yükseltme sırasında",
@@ -541,13 +541,13 @@
"RestartRequiredHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir", "RestartRequiredHelpTextWarning": "Etkili olması için yeniden başlatma gerektirir",
"AddList": "Liste Ekleyin", "AddList": "Liste Ekleyin",
"RenameFiles": "Yeniden Adlandır", "RenameFiles": "Yeniden Adlandır",
"Test": "Sına", "Test": "Test Et",
"ImportListExclusions": "İçe Aktarma Listesinden Hariç Bırakılan(lar)", "ImportListExclusions": "İçe Aktarma Listesinden Hariç Bırakılan(lar)",
"ManualImportSelectEdition": "Manuel İçe Aktarma - Film Seçin", "ManualImportSelectEdition": "Manuel İçe Aktarma - Film Seçin",
"HardlinkCopyFiles": "Hardlink / Dosyaları Kopyala", "HardlinkCopyFiles": "Hardlink / Dosyaları Kopyala",
"MoveFiles": "Dosyaları Taşı", "MoveFiles": "Dosyaları Taşı",
"MinimumCustomFormatScore": "Minimum Özel Format Puanı", "MinimumCustomFormatScore": "Minimum Özel Format Puanı",
"CustomFormatScore": "Özel Biçim Puanı", "CustomFormatScore": "Özel Format Puanı",
"CloneCustomFormat": "Özel Formatı Klonla", "CloneCustomFormat": "Özel Formatı Klonla",
"Conditions": "Koşullar", "Conditions": "Koşullar",
"CopyToClipboard": "Panoya kopyala", "CopyToClipboard": "Panoya kopyala",
@@ -555,10 +555,10 @@
"CutoffFormatScoreHelpText": "Bu özel format puanına ulaşıldığında, {appName} artık film indirmeyecektir", "CutoffFormatScoreHelpText": "Bu özel format puanına ulaşıldığında, {appName} artık film indirmeyecektir",
"DeleteCustomFormat": "Özel Formatı Sil", "DeleteCustomFormat": "Özel Formatı Sil",
"UnableToLoadCustomFormats": "Özel Biçimler yüklenemiyor", "UnableToLoadCustomFormats": "Özel Biçimler yüklenemiyor",
"UpgradesAllowed": "Yükseltmelere İzin Verildi", "UpgradesAllowed": "Yükseltmelere İzin Ver",
"CustomFormat": "Özel Format", "CustomFormat": "Özel Format",
"CustomFormatSettings": "Özel Biçim Ayarları", "CustomFormatSettings": "Özel Biçim Ayarları",
"DeleteCustomFormatMessageText": "'{name}' özel biçimini silmek istediğinizden emin misiniz?", "DeleteCustomFormatMessageText": "'{name}' özel formatı silmek istediğinizden emin misiniz?",
"DeleteFormatMessageText": "{0} biçim etiketini silmek istediğinizden emin misiniz?", "DeleteFormatMessageText": "{0} biçim etiketini silmek istediğinizden emin misiniz?",
"ExportCustomFormat": "Özel Formatı Dışa Aktar", "ExportCustomFormat": "Özel Formatı Dışa Aktar",
"Formats": "Formatlar", "Formats": "Formatlar",
@@ -595,7 +595,7 @@
"ApplyTagsHelpTextRemove": "Kaldır: Girilen etiketleri kaldırın", "ApplyTagsHelpTextRemove": "Kaldır: Girilen etiketleri kaldırın",
"ApplyTagsHelpTextReplace": "Değiştir: Etiketleri girilen etiketlerle değiştirin (tüm etiketleri kaldırmak için etiket girmeyin)", "ApplyTagsHelpTextReplace": "Değiştir: Etiketleri girilen etiketlerle değiştirin (tüm etiketleri kaldırmak için etiket girmeyin)",
"DeleteSelectedDownloadClients": "İndirme İstemcilerini Sil", "DeleteSelectedDownloadClients": "İndirme İstemcilerini Sil",
"DeleteSelectedIndexers": "Dizinleyicileri Sil", "DeleteSelectedIndexers": "İndeksleyicileri Sil",
"ExistingTag": "Mevcut etiket", "ExistingTag": "Mevcut etiket",
"No": "Hayır", "No": "Hayır",
"NoChange": "Değişiklik yok", "NoChange": "Değişiklik yok",
@@ -604,16 +604,16 @@
"ConnectionLostReconnect": "{appName} otomatik bağlanmayı deneyecek veya aşağıda yeniden yükle seçeneğini işaretleyebilirsiniz.", "ConnectionLostReconnect": "{appName} otomatik bağlanmayı deneyecek veya aşağıda yeniden yükle seçeneğini işaretleyebilirsiniz.",
"LastExecution": "Son Yürütme", "LastExecution": "Son Yürütme",
"LastWriteTime": "Son Yazma Zamanı", "LastWriteTime": "Son Yazma Zamanı",
"Location": "yer", "Location": "Klasör Yolu",
"RecentChanges": "Son değişiklikler", "RecentChanges": "Son değişiklikler",
"SomeResultsAreHiddenByTheAppliedFilter": "Bazı sonuçlar, uygulanan filtre tarafından gizlendi", "SomeResultsAreHiddenByTheAppliedFilter": "Bazı sonuçlar uygulanan filtre tarafından gizlendi",
"WhatsNew": "Ne var ne yok?", "WhatsNew": "Ne var ne yok?",
"NotificationStatusAllClientHealthCheckMessage": "Arızalar nedeniyle tüm bildirimler kullanılamıyor", "NotificationStatusAllClientHealthCheckMessage": "Arızalar nedeniyle tüm bildirimler kullanılamıyor",
"NotificationStatusSingleClientHealthCheckMessage": "Hatalar nedeniyle kullanılamayan listeler: {0}", "NotificationStatusSingleClientHealthCheckMessage": "Hatalar nedeniyle kullanılamayan listeler: {0}",
"Small": "Küçük", "Small": "Küçük",
"System": "Sistem", "System": "Sistem",
"Ui": "Arayüz", "Ui": "Arayüz",
"Events": "Etkinlikler", "Events": "Olaylar",
"FreeSpace": "Boş alan", "FreeSpace": "Boş alan",
"NextExecution": "Sonraki Yürütme", "NextExecution": "Sonraki Yürütme",
"NoResultsFound": "Sonuç bulunamadı", "NoResultsFound": "Sonuç bulunamadı",
@@ -624,14 +624,14 @@
"AddNew": "Yeni Ekle", "AddNew": "Yeni Ekle",
"Large": "Büyük", "Large": "Büyük",
"LastDuration": "Yürütme Süresi", "LastDuration": "Yürütme Süresi",
"AllResultsAreHiddenByTheAppliedFilter": "Tüm sonuçlar, uygulanan filtre tarafından gizlenir", "AllResultsAreHiddenByTheAppliedFilter": "Tüm sonuçlar uygulanan filtre tarafından gizlendi",
"Library": "kütüphane", "Library": "kütüphane",
"MetadataProfile": "üstveri profili", "MetadataProfile": "üstveri profili",
"MetadataProfiles": "üstveri profili", "MetadataProfiles": "üstveri profili",
"ExtraFileExtensionsHelpText": "İçe aktarılacak ekstra dosyaların virgülle ayrılmış listesi (.nfo, .nfo-orig olarak içe aktarılacaktır)", "ExtraFileExtensionsHelpText": "İçe aktarılacak ekstra dosyaların virgülle ayrılmış listesi (.nfo, .nfo-orig olarak içe aktarılacaktır)",
"ExtraFileExtensionsHelpTextsExamples": "Örnekler: \".sub, .nfo\" veya \"sub, nfo\"", "ExtraFileExtensionsHelpTextsExamples": "Örnekler: \".sub, .nfo\" veya \"sub, nfo\"",
"AppUpdated": "{appName} Güncellendi", "AppUpdated": "{appName} Güncellendi",
"AppUpdatedVersion": "{appName}, `{version}` sürümüne güncellendi; en son değişikliklerin etkin olabilmesi için {appName} uygulamasını yeniden başlatmanız gerekli", "AppUpdatedVersion": "{appName}, `{version}` sürümüne güncellendi; değişikliklerin etkin olabilmesi için {appName} uygulamasını yeniden başlatmanız gerekli",
"Clone": "Klon", "Clone": "Klon",
"ConnectionLostToBackend": "{appName}'ın arka uçla bağlantısı kesildi ve işlevselliğin geri kazanılması için yeniden yüklenmesi gerekecek.", "ConnectionLostToBackend": "{appName}'ın arka uçla bağlantısı kesildi ve işlevselliğin geri kazanılması için yeniden yüklenmesi gerekecek.",
"AutomaticUpdatesDisabledDocker": "Docker güncelleme mekanizması kullanıldığında otomatik güncellemeler doğrudan desteklenmez. Konteyner görüntüsünü {appName} dışında güncellemeniz veya bir komut dosyası kullanmanız gerekecek", "AutomaticUpdatesDisabledDocker": "Docker güncelleme mekanizması kullanıldığında otomatik güncellemeler doğrudan desteklenmez. Konteyner görüntüsünü {appName} dışında güncellemeniz veya bir komut dosyası kullanmanız gerekecek",
@@ -652,10 +652,10 @@
"ClickToChangeReleaseGroup": "Yayım grubunu değiştirmek için tıklayın", "ClickToChangeReleaseGroup": "Yayım grubunu değiştirmek için tıklayın",
"CloneCondition": "Klon Durumu", "CloneCondition": "Klon Durumu",
"CustomFilter": "Özel Filtre", "CustomFilter": "Özel Filtre",
"AutoRedownloadFailed": "Yeniden İndirme Başarısız", "AutoRedownloadFailed": "Başarısız İndirmeleri Yenile",
"AutoRedownloadFailedFromInteractiveSearchHelpText": "Başarısız indirmeler, etkileşimli aramada bulunduğunda otomatik olarak farklı bir versiyonu arayın ve indirmeyi deneyin", "AutoRedownloadFailedFromInteractiveSearchHelpText": "Etkileşimli aramadan başarısız bir sürüm alındığında otomatik olarak farklı bir sürümü arayın ve indirmeye çalışın",
"ChangeCategoryHint": "İndirme İstemcisi'nden indirme işlemini 'İçe Aktarma Sonrası Kategorisi' olarak değiştirir", "ChangeCategoryHint": "İndirme İstemcisi'nden indirme işlemini 'İçe Aktarma Sonrası Kategorisi' olarak değiştirir",
"AutoRedownloadFailedFromInteractiveSearch": "Etkileşimli Aramadan Yeniden İndirme Başarısız Oldu", "AutoRedownloadFailedFromInteractiveSearch": "Etkileşimli Arama'dan Başarısız İndirmeleri Yenile",
"AutomaticAdd": "Otomatik Ekle", "AutomaticAdd": "Otomatik Ekle",
"DeleteCondition": "Koşulu Sil", "DeleteCondition": "Koşulu Sil",
"DeleteSelectedImportListsMessageText": "Seçilen {count} içe aktarma listesini silmek istediğinizden emin misiniz?", "DeleteSelectedImportListsMessageText": "Seçilen {count} içe aktarma listesini silmek istediğinizden emin misiniz?",
@@ -664,7 +664,7 @@
"DeleteSelectedImportLists": "İçe Aktarma Listelerini Sil", "DeleteSelectedImportLists": "İçe Aktarma Listelerini Sil",
"DeleteSelectedDownloadClientsMessageText": "Seçilen {count} indirme istemcisini silmek istediğinizden emin misiniz?", "DeleteSelectedDownloadClientsMessageText": "Seçilen {count} indirme istemcisini silmek istediğinizden emin misiniz?",
"DeleteRootFolder": "Kök Klasörü Sil", "DeleteRootFolder": "Kök Klasörü Sil",
"DeleteSelectedIndexersMessageText": "Seçilen {count} dizinleyiciyi silmek istediğinizden emin misiniz?", "DeleteSelectedIndexersMessageText": "Seçilen {count} indeksleyiciyi silmek istediğinizden emin misiniz?",
"DoNotBlocklist": "Engelleme Listesine Eklemeyin", "DoNotBlocklist": "Engelleme Listesine Eklemeyin",
"DoNotBlocklistHint": "Engellenenler listesine eklemeden kaldır", "DoNotBlocklistHint": "Engellenenler listesine eklemeden kaldır",
"CustomFormatsSettingsTriggerInfo": "Bir yayına veya dosyaya, seçilen farklı koşul türlerinden en az biriyle eşleştiğinde Özel Format uygulanacaktır.", "CustomFormatsSettingsTriggerInfo": "Bir yayına veya dosyaya, seçilen farklı koşul türlerinden en az biriyle eşleştiğinde Özel Format uygulanacaktır.",
@@ -678,11 +678,11 @@
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "qBittorrent'in yapılandırılmış içerik düzenini mi, torrentteki orijinal düzeni mi kullanacağınızı yoksa her zaman bir alt klasör oluşturup oluşturmayacağınızı (qBittorrent 4.3.2+)", "DownloadClientQbittorrentSettingsContentLayoutHelpText": "qBittorrent'in yapılandırılmış içerik düzenini mi, torrentteki orijinal düzeni mi kullanacağınızı yoksa her zaman bir alt klasör oluşturup oluşturmayacağınızı (qBittorrent 4.3.2+)",
"EditSelectedImportLists": "Seçilen İçe Aktarma Listelerini Düzenle", "EditSelectedImportLists": "Seçilen İçe Aktarma Listelerini Düzenle",
"NoImportListsFound": "İçe aktarma listesi bulunamadı", "NoImportListsFound": "İçe aktarma listesi bulunamadı",
"IndexerDownloadClientHelpText": "Bu dizinleyiciden yakalamak için hangi indirme istemcisinin kullanılacağını belirtin", "IndexerDownloadClientHelpText": "Bu indeksleyiciden almak için hangi indirme istemcisinin kullanılacağını belirtin",
"ManageDownloadClients": "İndirme İstemcilerini Yönet", "ManageDownloadClients": "İndirme İstemcilerini Yönet",
"ManageIndexers": "Dizinleyicileri Yönet", "ManageIndexers": "İndeksleyicileri Yönet",
"NoHistoryBlocklist": "Geçmiş engellenenler listesi yok", "NoHistoryBlocklist": "Geçmiş engellenenler listesi yok",
"NoIndexersFound": "Dizinleyici bulunamadı", "NoIndexersFound": "İndeksleyici bulunamadı",
"InstanceName": "Örnek isim", "InstanceName": "Örnek isim",
"ListRefreshInterval": "Liste Yenileme Aralığı", "ListRefreshInterval": "Liste Yenileme Aralığı",
"Label": "Etiket", "Label": "Etiket",
@@ -697,7 +697,7 @@
"Implementation": "Uygula", "Implementation": "Uygula",
"IndexerDownloadClientHealthCheckMessage": "Geçersiz indirme istemcilerine sahip dizinleyiciler: {0}.", "IndexerDownloadClientHealthCheckMessage": "Geçersiz indirme istemcilerine sahip dizinleyiciler: {0}.",
"LabelIsRequired": "Etiket gerekli", "LabelIsRequired": "Etiket gerekli",
"EditSelectedIndexers": "Seçili Dizinleyicileri Düzenle", "EditSelectedIndexers": "Seçili İndeksleyicileri Düzenle",
"ManageImportLists": "İçe Aktarma Listelerini Yönet", "ManageImportLists": "İçe Aktarma Listelerini Yönet",
"IgnoreDownload": "İndirmeyi Yoksay", "IgnoreDownload": "İndirmeyi Yoksay",
"IgnoreDownloadHint": "{appName}'in bu indirmeyi daha fazla işlemesini durdurur", "IgnoreDownloadHint": "{appName}'in bu indirmeyi daha fazla işlemesini durdurur",
@@ -710,7 +710,7 @@
"RemoveCompleted": "Tamamlananları Kaldır", "RemoveCompleted": "Tamamlananları Kaldır",
"RemoveFailedDownloads": "Başarısız İndirmeleri Kaldır", "RemoveFailedDownloads": "Başarısız İndirmeleri Kaldır",
"ResetDefinitions": "Tanımları Sıfırla", "ResetDefinitions": "Tanımları Sıfırla",
"NotificationsPlexSettingsAuthToken": "Kimlik Doğrulama Jetonu", "NotificationsPlexSettingsAuthToken": "Kimlik Doğrulama Token'ı",
"NotificationsSettingsUpdateMapPathsFrom": "Harita Yolları", "NotificationsSettingsUpdateMapPathsFrom": "Harita Yolları",
"NotificationsPlexSettingsAuthenticateWithPlexTv": "Plex.tv ile kimlik doğrulaması yapın", "NotificationsPlexSettingsAuthenticateWithPlexTv": "Plex.tv ile kimlik doğrulaması yapın",
"NotificationsSettingsUpdateLibrary": "Kitaplığı Güncelle", "NotificationsSettingsUpdateLibrary": "Kitaplığı Güncelle",
@@ -722,8 +722,8 @@
"RemoveDownloadsAlert": "Kaldırma ayarları, yukarıdaki tabloda bireysel İndirme İstemcisi ayarlarına taşınmıştır.", "RemoveDownloadsAlert": "Kaldırma ayarları, yukarıdaki tabloda bireysel İndirme İstemcisi ayarlarına taşınmıştır.",
"RemoveSelectedItem": "Seçilen Öğeyi Kaldır", "RemoveSelectedItem": "Seçilen Öğeyi Kaldır",
"ResetQualityDefinitions": "Kalite Tanımlarını Sıfırla", "ResetQualityDefinitions": "Kalite Tanımlarını Sıfırla",
"SelectIndexerFlags": "Dizinleyici Bayraklarını Seçin", "SelectIndexerFlags": "İndeksleyici Bayraklarını Seçin",
"SetIndexerFlags": "Dizinleyici Bayraklarını Ayarla", "SetIndexerFlags": "İndeksleyici Bayraklarını Ayarla",
"WouldYouLikeToRestoreBackup": "'{name}' yedeğini geri yüklemek ister misiniz?", "WouldYouLikeToRestoreBackup": "'{name}' yedeğini geri yüklemek ister misiniz?",
"ThereWasAnErrorLoadingThisPage": "Sayfa yüklenirken bir hata oluştu", "ThereWasAnErrorLoadingThisPage": "Sayfa yüklenirken bir hata oluştu",
"Theme": "Tema", "Theme": "Tema",
@@ -746,12 +746,12 @@
"UpdateAvailable": "Yeni güncelleme mevcut", "UpdateAvailable": "Yeni güncelleme mevcut",
"ThemeHelpText": "Uygulama Kullanıcı Arayüzü Temasını Değiştirin, 'Otomatik' Teması, Açık veya Koyu modu ayarlamak için İşletim Sistemi Temanızı kullanacaktır. Theme.Park'tan ilham alındı", "ThemeHelpText": "Uygulama Kullanıcı Arayüzü Temasını Değiştirin, 'Otomatik' Teması, Açık veya Koyu modu ayarlamak için İşletim Sistemi Temanızı kullanacaktır. Theme.Park'tan ilham alındı",
"RemoveQueueItemRemovalMethodHelpTextWarning": "'İndirme İstemcisinden Kaldır', indirme işlemini ve dosyaları indirme istemcisinden kaldıracaktır.", "RemoveQueueItemRemovalMethodHelpTextWarning": "'İndirme İstemcisinden Kaldır', indirme işlemini ve dosyaları indirme istemcisinden kaldıracaktır.",
"ClickToChangeIndexerFlags": "Dizinleyici bayraklarını değiştirmek için tıklayın", "ClickToChangeIndexerFlags": "İndeksleyici bayraklarını değiştirmek için tıklayın",
"IndexerFlags": "Dizinleyici Bayrakları", "IndexerFlags": "İndeksleyici Bayrakları",
"IndexerSettingsSeedRatioHelpText": "Bir torrentin durmadan önce ulaşması gereken oran. Boş bırakılırsa indirme istemcisinin varsayılan değerini kullanır. Oran en az 1,0 olmalı ve indeksleyici kurallarına uygun olmalıdır", "IndexerSettingsSeedRatioHelpText": "Bir torrentin durdurulmadan önce ulaşması gereken oran. Boş bırakılırsa indirme istemcisinin varsayılan değerini kullanır. Oran en az 1,0 olmalı ve indeksleyici kurallarına uygun olmalıdır",
"IndexerSettingsSeedTime": "Seed Süresi", "IndexerSettingsSeedTime": "Seed Süresi",
"IndexerSettingsSeedRatio": "Seed Oranı", "IndexerSettingsSeedRatio": "Seed Oranı",
"IndexerSettingsSeedTimeHelpText": "Bir torrentin durmadan önce seed edilmesi gereken süre. Boş bırakılırsa indirme istemcisinin varsayılan ayarını kullanır", "IndexerSettingsSeedTimeHelpText": "Bir torrentin durdurulmadan önce ulaşması gereken oran, boş bırakıldığında uygulamanın varsayılanı kullanılır",
"BypassIfAboveCustomFormatScore": "Özel Format Koşullarının Üstündeyse Baypas Et", "BypassIfAboveCustomFormatScore": "Özel Format Koşullarının Üstündeyse Baypas Et",
"ImportLists": "Listeler", "ImportLists": "Listeler",
"Loading": "Yükleniyor", "Loading": "Yükleniyor",
@@ -772,7 +772,7 @@
"QualityProfileIdHelpText": "Kalite Profili listesi öğeleri şu şekilde eklenecektir:", "QualityProfileIdHelpText": "Kalite Profili listesi öğeleri şu şekilde eklenecektir:",
"SourceTitle": "Kaynak başlığı", "SourceTitle": "Kaynak başlığı",
"EnabledHelpText": "Yayımlama profilini etkinleştirmek için işaretleyin", "EnabledHelpText": "Yayımlama profilini etkinleştirmek için işaretleyin",
"ErrorLoadingContent": "Bu öğe yüklenirken bir hata oluştu", "ErrorLoadingContent": "Bu içerik yüklenirken bir hata oluştu",
"IsShowingMonitoredMonitorSelected": "Takip Edilen Seçildi", "IsShowingMonitoredMonitorSelected": "Takip Edilen Seçildi",
"RemotePathMappingCheckFileRemoved": "Dosyanın {path} yolu işlenme sürecinin bir parçası olarak kaldırıldı.", "RemotePathMappingCheckFileRemoved": "Dosyanın {path} yolu işlenme sürecinin bir parçası olarak kaldırıldı.",
"RecycleBinUnableToWriteHealthCheck": "Yapılandırılmış geri dönüşüm kutusu klasörüne yazılamıyor: {path}. Bu yolun mevcut olduğundan ve {appName} uygulamasını çalıştıran kullanıcı tarafından yazılabilir olduğundan emin olun", "RecycleBinUnableToWriteHealthCheck": "Yapılandırılmış geri dönüşüm kutusu klasörüne yazılamıyor: {path}. Bu yolun mevcut olduğundan ve {appName} uygulamasını çalıştıran kullanıcı tarafından yazılabilir olduğundan emin olun",
@@ -816,7 +816,7 @@
"External": "Harici", "External": "Harici",
"PasswordConfirmation": "Şifre Tekrarı", "PasswordConfirmation": "Şifre Tekrarı",
"AuthBasic": "Temel (Tarayıcı Açılır Penceresi)", "AuthBasic": "Temel (Tarayıcı Açılır Penceresi)",
"AuthForm": "Formlar (Giriş Sayfası)", "AuthForm": "Form (Giriş Sayfası)",
"AuthenticationMethod": "Kimlik Doğrulama Yöntemi", "AuthenticationMethod": "Kimlik Doğrulama Yöntemi",
"AuthenticationRequired": "Kimlik Doğrulama", "AuthenticationRequired": "Kimlik Doğrulama",
"AuthenticationRequiredHelpText": "İstekler için Kimlik doğrulamanın gereklilik ayarını değiştirin. Riskleri anlamadığınız sürece değiştirmeyin.", "AuthenticationRequiredHelpText": "İstekler için Kimlik doğrulamanın gereklilik ayarını değiştirin. Riskleri anlamadığınız sürece değiştirmeyin.",
@@ -830,19 +830,38 @@
"SmartReplace": "Akıllı Değiştir", "SmartReplace": "Akıllı Değiştir",
"DashOrSpaceDashDependingOnName": "İsme bağlı olarak Dash veya Space Dash", "DashOrSpaceDashDependingOnName": "İsme bağlı olarak Dash veya Space Dash",
"CatalogNumber": "katalog numarası", "CatalogNumber": "katalog numarası",
"AptUpdater": "Güncellemeyi yüklemek için apt kullanın", "AptUpdater": "Güncellemeyi yüklemek için apt'ı kullanın",
"BuiltIn": "Dahili", "BuiltIn": "Dahili",
"CurrentlyInstalled": "Şu anda Yüklü", "CurrentlyInstalled": "Şuan Kurulu",
"ExternalUpdater": "{appName}, harici bir güncelleme mekanizması kullanacak şekilde yapılandırıldı", "ExternalUpdater": "{appName}, harici bir güncelleme mekanizması kullanacak şekilde yapılandırıldı",
"FailedToFetchUpdates": "Güncellemeler getirilemedi", "FailedToFetchUpdates": "Güncellemeler getirilemedi",
"PreviouslyInstalled": "Önceden Yüklenmiş", "PreviouslyInstalled": "Daha Önce Kurulmuş",
"Script": "Hazır Metin", "Script": "Komut Dosyası",
"UpdateAppDirectlyLoadError": "{appName} doğrudan güncellenemiyor,", "UpdateAppDirectlyLoadError": "{appName} doğrudan güncellenemiyor,",
"DockerUpdater": "güncellemeyi almak için docker konteynerini güncelleyin", "DockerUpdater": "Güncellemeyi almak için docker konteynerini güncelleyin",
"Install": "Kur", "Install": "Kur",
"InstallLatest": "En Sonu Yükle", "InstallLatest": "En Sonu Yükle",
"InstallMajorVersionUpdate": "Güncellemeyi Kur", "InstallMajorVersionUpdate": "Güncellemeyi Kur",
"InstallMajorVersionUpdateMessage": "Bu güncelleştirme yeni bir ana sürüm yükleyecek ve sisteminizle uyumlu olmayabilir. Bu güncelleştirmeyi yüklemek istediğinizden emin misiniz?", "InstallMajorVersionUpdateMessage": "Bu güncelleştirme yeni bir ana sürüm yükleyecek ve sisteminizle uyumlu olmayabilir. Bu güncelleştirmeyi yüklemek istediğinizden emin misiniz?",
"InstallMajorVersionUpdateMessageLink": "Daha fazla bilgi için lütfen [{domain}]({url}) adresini kontrol edin.", "InstallMajorVersionUpdateMessageLink": "Daha fazla bilgi için lütfen [{domain}]({url}) adresini kontrol edin.",
"OnLatestVersion": "{appName}'ın en son sürümü zaten kurulu" "OnLatestVersion": "{appName}'ın en son sürümü kurulu",
"AllExpandedCollapseAll": "Tümünü Daralt",
"StatusEndedContinuing": "Devam ediyor",
"AllExpandedExpandAll": "Tümünü Genişlet",
"MonitoringOptions": "Takip Etme Seçenekleri",
"AutoAdd": "Otomatik Ekle",
"MediaManagementSettingsSummary": "Adlandırma ve dosya yönetimi ayarları",
"SearchMonitored": "Takip Edilenleri Ara",
"ShowBanners": "Bannerları Göster",
"MetadataSource": "Meta Veri Kaynağı",
"FailedToFetchSettings": "Ayarlar alınamadı",
"Other": "Diğer",
"Continuing": "Devam Ediyor",
"Monitoring": "Takip Durumu",
"Book": "Kitap",
"LogRotation": "Günlük Döndürme",
"FilterSentryEventsHelpText": "Bilinen kullanıcı hatası olaylarının Analitik olarak gönderilmesini filtreleyin",
"LogRotateHelpText": "Günlük klasöründe saklanacak maksimum günlük dosyası sayısı",
"FilterAnalyticsEvents": "Analitik Olayları Filtrele",
"ConsoleLogLevel": "Konsol Günlük Düzeyi"
} }
@@ -482,7 +482,7 @@
"AllExpandedExpandAll": "全部展开", "AllExpandedExpandAll": "全部展开",
"Duration": "时长", "Duration": "时长",
"Filters": "过滤器", "Filters": "过滤器",
"AppDataLocationHealthCheckMessage": "无法更新,以防止在更新时删除 AppData", "AppDataLocationHealthCheckMessage": "防止在更新时删除 AppData,更新将无法进行",
"FileWasDeletedByViaUI": "文件已通过 UI 删除", "FileWasDeletedByViaUI": "文件已通过 UI 删除",
"IndexerJackettAll": "使用 Jackett 不受支持的“全部”终点的索引器:{0}", "IndexerJackettAll": "使用 Jackett 不受支持的“全部”终点的索引器:{0}",
"SizeLimit": "尺寸限制", "SizeLimit": "尺寸限制",
@@ -1116,5 +1116,6 @@
"InstallMajorVersionUpdateMessage": "此更新将安装新的主要版本,这可能与您的系统不兼容。您确定要安装此更新吗?", "InstallMajorVersionUpdateMessage": "此更新将安装新的主要版本,这可能与您的系统不兼容。您确定要安装此更新吗?",
"InstallMajorVersionUpdateMessageLink": "请查看 [{domain}]({url}) 以获取更多信息。", "InstallMajorVersionUpdateMessageLink": "请查看 [{domain}]({url}) 以获取更多信息。",
"PreviouslyInstalled": "上次安装", "PreviouslyInstalled": "上次安装",
"UpdateAppDirectlyLoadError": "无法直接更新{appName}" "UpdateAppDirectlyLoadError": "无法直接更新{appName}",
"FailedToFetchSettings": "设置同步失败"
} }
@@ -0,0 +1,5 @@
{
"Analytics": "分析",
"About": "关于",
"Username": "用户名"
}
+32 -4
View File
@@ -1,10 +1,10 @@
{ {
"About": "關於", "About": "關於",
"Actions": "執行", "Actions": "動作",
"All": "全部", "All": "全部",
"AddingTag": "新增標籤", "AddingTag": "新增標籤",
"Analytics": "分析", "Analytics": "分析",
"AddList": "新增列表", "AddList": "加入清單",
"ExportCustomFormat": "新增自定義格式", "ExportCustomFormat": "新增自定義格式",
"Blocklist": "封鎖清單", "Blocklist": "封鎖清單",
"Branch": "分支", "Branch": "分支",
@@ -110,7 +110,7 @@
"Ui": "UI", "Ui": "UI",
"UnableToAddANewDownloadClientPleaseTryAgain": "無法加入新的條件,請重新嘗試。", "UnableToAddANewDownloadClientPleaseTryAgain": "無法加入新的條件,請重新嘗試。",
"UnableToAddANewRootFolderPleaseTryAgain": "無法加入新的自動標籤,請重新嘗試。", "UnableToAddANewRootFolderPleaseTryAgain": "無法加入新的自動標籤,請重新嘗試。",
"UnableToAddANewIndexerPleaseTryAgain": "無法加入新的條件,請重新嘗試。", "UnableToAddANewIndexerPleaseTryAgain": "無法加入新的索引器,請重新嘗試。",
"Grab": "抓取", "Grab": "抓取",
"Hostname": "Hostname", "Hostname": "Hostname",
"Label": "標籤", "Label": "標籤",
@@ -143,5 +143,33 @@
"AuthForm": "表單(登入頁面)", "AuthForm": "表單(登入頁面)",
"ApiKey": "API密鑰", "ApiKey": "API密鑰",
"AuthBasic": "基礎(瀏覽器彈出視窗)", "AuthBasic": "基礎(瀏覽器彈出視窗)",
"Enabled": "啟用" "Enabled": "啟用",
"BuiltIn": "內建",
"Reason": "季",
"AptUpdater": "使用apt安裝更新",
"BranchUpdate": "用於更新{appName}的分支",
"UnableToLoadIndexers": "無法載入索引器",
"UnselectAll": "取消全選",
"UISettings": "使用者介面設定",
"UILanguage": "使用者介面語言",
"Version": "版本",
"Uptime": "上線時間",
"UnableToLoadTags": "無法載入標籤",
"UnableToLoadUISettings": "無法載入 UI 設定",
"UpdateAppDirectlyLoadError": "無法直接更新 {appName}",
"UnableToLoadHistory": "無法載入歷史記錄",
"AutoRedownloadFailed": "失敗時重新下載",
"AutoRedownloadFailedFromInteractiveSearch": "失敗時重新下載來自手動搜索的資源",
"AuthenticationMethodHelpTextWarning": "請選擇一個有效的驗證方式",
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "確認新密碼",
"AuthenticationRequiredPasswordHelpTextWarning": "請輸入新密碼",
"AuthenticationRequiredUsernameHelpTextWarning": "請輸入新用戶名",
"AuthenticationMethod": "驗證方式",
"AuthenticationRequired": "需要驗證",
"AuthenticationRequiredHelpText": "更改需要進行驗證的請求。除非你了解其中的風險,否則請勿修改。",
"AuthenticationRequiredWarning": "為防止未經認證的遠程訪問,{appName} 現需要啟用身份認證。您可以選擇禁用本地地址的身份認證。",
"IgnoredPlaceHolder": "加入新的限制",
"RequiredPlaceHolder": "加入新的限制",
"RedownloadFailed": "失敗時重新下載",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "無法加入新的遠程路徑對應,請重試。"
} }
+1
View File
@@ -6,6 +6,7 @@
<PackageReference Include="Dapper" /> <PackageReference Include="Dapper" />
<PackageReference Include="Diacritical.Net" /> <PackageReference Include="Diacritical.Net" />
<PackageReference Include="LazyCache" /> <PackageReference Include="LazyCache" />
<PackageReference Include="Microsoft.Data.SqlClient" />
<PackageReference Include="Polly" /> <PackageReference Include="Polly" />
<PackageReference Include="System.Text.Json" /> <PackageReference Include="System.Text.Json" />
<PackageReference Include="System.Text.Encoding.CodePages" /> <PackageReference Include="System.Text.Encoding.CodePages" />
@@ -1,5 +1,4 @@
using FluentValidation; using FluentValidation;
using FluentValidation.Validators;
using NzbDrone.Common.Extensions; using NzbDrone.Common.Extensions;
namespace NzbDrone.Core.Validation namespace NzbDrone.Core.Validation
@@ -10,10 +9,5 @@ namespace NzbDrone.Core.Validation
{ {
return ruleBuilder.Must(x => x.IsValidIpAddress()).WithMessage("Must contain wildcard (*) or a valid IP Address"); return ruleBuilder.Must(x => x.IsValidIpAddress()).WithMessage("Must contain wildcard (*) or a valid IP Address");
} }
public static IRuleBuilderOptions<T, string> NotListenAllIp4Address<T>(this IRuleBuilder<T, string> ruleBuilder)
{
return ruleBuilder.SetValidator(new RegularExpressionValidator(@"^(?!0\.0\.0\.0)")).WithMessage("Use * instead of 0.0.0.0");
}
} }
} }
+1 -1
View File
@@ -105,7 +105,7 @@ namespace NzbDrone.Host
License = new OpenApiLicense License = new OpenApiLicense
{ {
Name = "GPL-3.0", Name = "GPL-3.0",
Url = new Uri("https://github.com/Readarr/Readarr/blob/develop/LICENSE") Url = new Uri("https://github.com/Readarr/Readarr/blob/develop/LICENSE.md")
} }
}); });
@@ -7,7 +7,7 @@ using Readarr.Api.V1.Author;
namespace NzbDrone.Integration.Test.ApiTests namespace NzbDrone.Integration.Test.ApiTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class AuthorEditorFixture : IntegrationTest public class AuthorEditorFixture : IntegrationTest
{ {
private void GivenExistingAuthor() private void GivenExistingAuthor()
@@ -7,7 +7,7 @@ using NUnit.Framework;
namespace NzbDrone.Integration.Test.ApiTests namespace NzbDrone.Integration.Test.ApiTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class AuthorFixture : IntegrationTest public class AuthorFixture : IntegrationTest
{ {
[Test] [Test]
@@ -4,7 +4,7 @@ using NUnit.Framework;
namespace NzbDrone.Integration.Test.ApiTests namespace NzbDrone.Integration.Test.ApiTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class AuthorLookupFixture : IntegrationTest public class AuthorLookupFixture : IntegrationTest
{ {
[TestCase("Robert Harris", "Robert Harris")] [TestCase("Robert Harris", "Robert Harris")]
@@ -6,7 +6,7 @@ using Readarr.Api.V1.Blocklist;
namespace NzbDrone.Integration.Test.ApiTests namespace NzbDrone.Integration.Test.ApiTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class BlocklistFixture : IntegrationTest public class BlocklistFixture : IntegrationTest
{ {
private AuthorResource _author; private AuthorResource _author;
@@ -9,7 +9,7 @@ using Readarr.Api.V1.Books;
namespace NzbDrone.Integration.Test.ApiTests namespace NzbDrone.Integration.Test.ApiTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class CalendarFixture : IntegrationTest public class CalendarFixture : IntegrationTest
{ {
public ClientBase<BookResource> Calendar; public ClientBase<BookResource> Calendar;
@@ -8,7 +8,7 @@ using Readarr.Api.V1.RootFolders;
namespace NzbDrone.Integration.Test.ApiTests.WantedTests namespace NzbDrone.Integration.Test.ApiTests.WantedTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class CutoffUnmetFixture : IntegrationTest public class CutoffUnmetFixture : IntegrationTest
{ {
[SetUp] [SetUp]
@@ -7,7 +7,7 @@ using Readarr.Api.V1.RootFolders;
namespace NzbDrone.Integration.Test.ApiTests.WantedTests namespace NzbDrone.Integration.Test.ApiTests.WantedTests
{ {
[TestFixture] [TestFixture]
[Ignore("Waiting for metadata to be back again", Until = "2024-12-15 00:00:00Z")] [Ignore("Waiting for metadata to be back again", Until = "2025-05-15 00:00:00Z")]
public class MissingFixture : IntegrationTest public class MissingFixture : IntegrationTest
{ {
[SetUp] [SetUp]
@@ -34,7 +34,6 @@ namespace Readarr.Api.V1.Config
SharedValidator.RuleFor(c => c.BindAddress) SharedValidator.RuleFor(c => c.BindAddress)
.ValidIpAddress() .ValidIpAddress()
.NotListenAllIp4Address()
.When(c => c.BindAddress != "*" && c.BindAddress != "localhost"); .When(c => c.BindAddress != "*" && c.BindAddress != "localhost");
SharedValidator.RuleFor(c => c.Port).ValidPort(); SharedValidator.RuleFor(c => c.Port).ValidPort();
@@ -44,6 +44,7 @@ namespace Readarr.Api.V1.Config
public string BackupFolder { get; set; } public string BackupFolder { get; set; }
public int BackupInterval { get; set; } public int BackupInterval { get; set; }
public int BackupRetention { get; set; } public int BackupRetention { get; set; }
public bool TrustCgnatIpAddresses { get; set; }
} }
public static class HostConfigResourceMapper public static class HostConfigResourceMapper
@@ -50,7 +50,7 @@ namespace Readarr.Api.V1.System.Backup
} }
[RestDeleteById] [RestDeleteById]
public void DeleteBackup(int id) public object DeleteBackup(int id)
{ {
var backup = GetBackup(id); var backup = GetBackup(id);
@@ -67,6 +67,8 @@ namespace Readarr.Api.V1.System.Backup
} }
_diskProvider.DeleteFile(path); _diskProvider.DeleteFile(path);
return new { };
} }
[HttpPost("restore/{id:int}")] [HttpPost("restore/{id:int}")]
+4 -1
View File
@@ -5,7 +5,7 @@
"description": "Readarr API docs", "description": "Readarr API docs",
"license": { "license": {
"name": "GPL-3.0", "name": "GPL-3.0",
"url": "https://github.com/Readarr/Readarr/blob/develop/LICENSE" "url": "https://github.com/Readarr/Readarr/blob/develop/LICENSE.md"
}, },
"version": "1.0.0" "version": "1.0.0"
}, },
@@ -10706,6 +10706,9 @@
"backupRetention": { "backupRetention": {
"type": "integer", "type": "integer",
"format": "int32" "format": "int32"
},
"trustCgnatIpAddresses": {
"type": "boolean"
} }
}, },
"additionalProperties": false "additionalProperties": false
@@ -27,10 +27,13 @@ namespace NzbDrone.Http.Authentication
if (_authenticationRequired == AuthenticationRequiredType.DisabledForLocalAddresses) if (_authenticationRequired == AuthenticationRequiredType.DisabledForLocalAddresses)
{ {
if (context.Resource is HttpContext httpContext && if (context.Resource is HttpContext httpContext &&
IPAddress.TryParse(httpContext.GetRemoteIP(), out var ipAddress) && IPAddress.TryParse(httpContext.GetRemoteIP(), out var ipAddress))
ipAddress.IsLocalAddress())
{ {
context.Succeed(requirement); if (ipAddress.IsLocalAddress() ||
(_configService.TrustCgnatIpAddresses && ipAddress.IsCgnatIpAddress()))
{
context.Succeed(requirement);
}
} }
} }
+689 -610
View File
File diff suppressed because it is too large Load Diff