mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a550c6554f | |||
| c1b26eec8d | |||
| ffe5ede55d | |||
| 9005860899 | |||
| c67f67109e | |||
| 51b9744e25 | |||
| 334d824633 | |||
| ae01387ca9 | |||
| 4eb13e0938 | |||
| 6dbb826f2f | |||
| 52dfa57dd7 | |||
| f354b3bc47 | |||
| 2d9e6788e6 | |||
| 0d121fe9c0 | |||
| 892c34fe35 | |||
| 24f6007594 | |||
| 5028ed4027 | |||
| 05f303436b | |||
| 5635de96a8 | |||
| ce59f32023 | |||
| 6d675a5207 | |||
| b093b23900 | |||
| 884ac2cb6f | |||
| 295a6c4255 | |||
| 74a59d5790 | |||
| ae23e5f187 |
+2
-2
@@ -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.3'
|
majorVersion: '0.4.7'
|
||||||
minorVersion: $[counter('minorVersion', 1)]
|
minorVersion: $[counter('minorVersion', 1)]
|
||||||
readarrVersion: '$(majorVersion).$(minorVersion)'
|
readarrVersion: '$(majorVersion).$(minorVersion)'
|
||||||
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
buildName: '$(Build.SourceBranchName).$(readarrVersion)'
|
||||||
@@ -1211,7 +1211,7 @@ stages:
|
|||||||
- task: SonarCloudAnalyze@2
|
- task: SonarCloudAnalyze@2
|
||||||
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
|
- task: reportgenerator@5.3.11
|
||||||
displayName: Generate Coverage Report
|
displayName: Generate Coverage Report
|
||||||
inputs:
|
inputs:
|
||||||
reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml'
|
reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml'
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.0" />
|
||||||
<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" />
|
||||||
@@ -34,18 +34,18 @@
|
|||||||
<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="3.31.0" />
|
||||||
<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" />
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
+69
-51
@@ -178,8 +178,9 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
VerifyWarning(item);
|
VerifyWarning(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedDL")]
|
||||||
public void paused_item_should_have_required_properties()
|
[TestCase("stoppedDL")]
|
||||||
|
public void paused_item_should_have_required_properties(string state)
|
||||||
{
|
{
|
||||||
var torrent = new QBittorrentTorrent
|
var torrent = new QBittorrentTorrent
|
||||||
{
|
{
|
||||||
@@ -188,7 +189,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
Size = 1000,
|
Size = 1000,
|
||||||
Progress = 0.7,
|
Progress = 0.7,
|
||||||
Eta = 8640000,
|
Eta = 8640000,
|
||||||
State = "pausedDL",
|
State = state,
|
||||||
Label = "",
|
Label = "",
|
||||||
SavePath = ""
|
SavePath = ""
|
||||||
};
|
};
|
||||||
@@ -200,6 +201,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[TestCase("pausedUP")]
|
[TestCase("pausedUP")]
|
||||||
|
[TestCase("stoppedUP")]
|
||||||
[TestCase("queuedUP")]
|
[TestCase("queuedUP")]
|
||||||
[TestCase("uploading")]
|
[TestCase("uploading")]
|
||||||
[TestCase("stalledUP")]
|
[TestCase("stalledUP")]
|
||||||
@@ -397,8 +399,9 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
result.OutputPath.FullPath.Should().Be(Path.Combine(torrent.SavePath, "Droned.S01.12"));
|
result.OutputPath.FullPath.Should().Be(Path.Combine(torrent.SavePath, "Droned.S01.12"));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void api_261_should_use_content_path()
|
[TestCase("stoppedUP")]
|
||||||
|
public void api_261_should_use_content_path(string state)
|
||||||
{
|
{
|
||||||
var torrent = new QBittorrentTorrent
|
var torrent = new QBittorrentTorrent
|
||||||
{
|
{
|
||||||
@@ -407,7 +410,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
Size = 1000,
|
Size = 1000,
|
||||||
Progress = 0.7,
|
Progress = 0.7,
|
||||||
Eta = 8640000,
|
Eta = 8640000,
|
||||||
State = "pausedUP",
|
State = state,
|
||||||
Label = "",
|
Label = "",
|
||||||
SavePath = @"C:\Torrents".AsOsAgnostic(),
|
SavePath = @"C:\Torrents".AsOsAgnostic(),
|
||||||
ContentPath = @"C:\Torrents\Droned.S01.12".AsOsAgnostic()
|
ContentPath = @"C:\Torrents\Droned.S01.12".AsOsAgnostic()
|
||||||
@@ -684,44 +687,48 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
item.CanMoveFiles.Should().BeFalse();
|
item.CanMoveFiles.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_not_be_removable_and_should_not_allow_move_files_if_max_ratio_is_not_set()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_not_be_removable_and_should_not_allow_move_files_if_max_ratio_is_not_set(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1);
|
GivenGlobalSeedLimits(-1);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 1.0f);
|
GivenCompletedTorrent(state, ratio: 1.0f);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeFalse();
|
item.CanBeRemoved.Should().BeFalse();
|
||||||
item.CanMoveFiles.Should().BeFalse();
|
item.CanMoveFiles.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_max_ratio_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_max_ratio_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(1.0f);
|
GivenGlobalSeedLimits(1.0f);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 1.0f);
|
GivenCompletedTorrent(state, ratio: 1.0f);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_overridden_max_ratio_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_overridden_max_ratio_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(2.0f);
|
GivenGlobalSeedLimits(2.0f);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 1.0f, ratioLimit: 0.8f);
|
GivenCompletedTorrent(state, ratio: 1.0f, ratioLimit: 0.8f);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_not_be_removable_if_overridden_max_ratio_not_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_not_be_removable_if_overridden_max_ratio_not_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(0.2f);
|
GivenGlobalSeedLimits(0.2f);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 0.5f, ratioLimit: 0.8f);
|
GivenCompletedTorrent(state, ratio: 0.5f, ratioLimit: 0.8f);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeFalse();
|
item.CanBeRemoved.Should().BeFalse();
|
||||||
@@ -739,33 +746,36 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
item.CanMoveFiles.Should().BeFalse();
|
item.CanMoveFiles.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_max_seedingtime_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_max_seedingtime_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, 20);
|
GivenGlobalSeedLimits(-1, 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 20);
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 20);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_overridden_max_seedingtime_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_overridden_max_seedingtime_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, 40);
|
GivenGlobalSeedLimits(-1, 40);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 20, seedingTimeLimit: 10);
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 20, seedingTimeLimit: 10);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_not_be_removable_if_overridden_max_seedingtime_not_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_not_be_removable_if_overridden_max_seedingtime_not_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, 20);
|
GivenGlobalSeedLimits(-1, 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 30, seedingTimeLimit: 40);
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 30, seedingTimeLimit: 40);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeFalse();
|
item.CanBeRemoved.Should().BeFalse();
|
||||||
@@ -783,66 +793,72 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
item.CanMoveFiles.Should().BeFalse();
|
item.CanMoveFiles.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_max_inactive_seedingtime_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_max_inactive_seedingtime_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 20);
|
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(25)).ToUnixTimeSeconds());
|
GivenCompletedTorrent(state, ratio: 2.0f, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(25)).ToUnixTimeSeconds());
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_overridden_max_inactive_seedingtime_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_overridden_max_inactive_seedingtime_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 40);
|
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 40);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 20, inactiveSeedingTimeLimit: 10, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(15)).ToUnixTimeSeconds());
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 20, inactiveSeedingTimeLimit: 10, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(15)).ToUnixTimeSeconds());
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_not_be_removable_if_overridden_max_inactive_seedingtime_not_reached_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_not_be_removable_if_overridden_max_inactive_seedingtime_not_reached_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 20);
|
GivenGlobalSeedLimits(-1, maxInactiveSeedingTime: 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 30, inactiveSeedingTimeLimit: 40, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(30)).ToUnixTimeSeconds());
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 30, inactiveSeedingTimeLimit: 40, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(30)).ToUnixTimeSeconds());
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeFalse();
|
item.CanBeRemoved.Should().BeFalse();
|
||||||
item.CanMoveFiles.Should().BeFalse();
|
item.CanMoveFiles.Should().BeFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_max_seedingtime_reached_but_ratio_not_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_max_seedingtime_reached_but_ratio_not_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(2.0f, 20);
|
GivenGlobalSeedLimits(2.0f, 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 1.0f, seedingTime: 30);
|
GivenCompletedTorrent(state, ratio: 1.0f, seedingTime: 30);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_be_removable_and_should_allow_move_files_if_max_inactive_seedingtime_reached_but_ratio_not_and_paused()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_be_removable_and_should_allow_move_files_if_max_inactive_seedingtime_reached_but_ratio_not_and_paused(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(2.0f, maxInactiveSeedingTime: 20);
|
GivenGlobalSeedLimits(2.0f, maxInactiveSeedingTime: 20);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 1.0f, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(25)).ToUnixTimeSeconds());
|
GivenCompletedTorrent(state, ratio: 1.0f, lastActivity: DateTimeOffset.UtcNow.Subtract(TimeSpan.FromMinutes(25)).ToUnixTimeSeconds());
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeTrue();
|
item.CanBeRemoved.Should().BeTrue();
|
||||||
item.CanMoveFiles.Should().BeTrue();
|
item.CanMoveFiles.Should().BeTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_not_fetch_details_twice()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_not_fetch_details_twice(string state)
|
||||||
{
|
{
|
||||||
GivenGlobalSeedLimits(-1, 30);
|
GivenGlobalSeedLimits(-1, 30);
|
||||||
GivenCompletedTorrent("pausedUP", ratio: 2.0f, seedingTime: 20);
|
GivenCompletedTorrent(state, ratio: 2.0f, seedingTime: 20);
|
||||||
|
|
||||||
var item = Subject.GetItems().Single();
|
var item = Subject.GetItems().Single();
|
||||||
item.CanBeRemoved.Should().BeFalse();
|
item.CanBeRemoved.Should().BeFalse();
|
||||||
@@ -854,8 +870,9 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
.Verify(p => p.GetTorrentProperties(It.IsAny<string>(), It.IsAny<QBittorrentSettings>()), Times.Once());
|
.Verify(p => p.GetTorrentProperties(It.IsAny<string>(), It.IsAny<QBittorrentSettings>()), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_get_category_from_the_category_if_set()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_get_category_from_the_category_if_set(string state)
|
||||||
{
|
{
|
||||||
const string category = "music-readarr";
|
const string category = "music-readarr";
|
||||||
GivenGlobalSeedLimits(1.0f);
|
GivenGlobalSeedLimits(1.0f);
|
||||||
@@ -867,7 +884,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
Size = 1000,
|
Size = 1000,
|
||||||
Progress = 1.0,
|
Progress = 1.0,
|
||||||
Eta = 8640000,
|
Eta = 8640000,
|
||||||
State = "pausedUP",
|
State = state,
|
||||||
Category = category,
|
Category = category,
|
||||||
SavePath = "",
|
SavePath = "",
|
||||||
Ratio = 1.0f
|
Ratio = 1.0f
|
||||||
@@ -879,8 +896,9 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
item.Category.Should().Be(category);
|
item.Category.Should().Be(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[TestCase("pausedUP")]
|
||||||
public void should_get_category_from_the_label_if_the_category_is_not_available()
|
[TestCase("stoppedUP")]
|
||||||
|
public void should_get_category_from_the_label_if_the_category_is_not_available(string state)
|
||||||
{
|
{
|
||||||
const string category = "music-readarr";
|
const string category = "music-readarr";
|
||||||
GivenGlobalSeedLimits(1.0f);
|
GivenGlobalSeedLimits(1.0f);
|
||||||
@@ -892,7 +910,7 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.QBittorrentTests
|
|||||||
Size = 1000,
|
Size = 1000,
|
||||||
Progress = 1.0,
|
Progress = 1.0,
|
||||||
Eta = 8640000,
|
Eta = 8640000,
|
||||||
State = "pausedUP",
|
State = state,
|
||||||
Label = category,
|
Label = category,
|
||||||
SavePath = "",
|
SavePath = "",
|
||||||
Ratio = 1.0f
|
Ratio = 1.0f
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.MetadataSource.Goodreads
|
|||||||
|
|
||||||
[TestCase("Harry Potter and the sorcerer's stone a detailed summary", 72245296)]
|
[TestCase("Harry Potter and the sorcerer's stone a detailed summary", 72245296)]
|
||||||
[TestCase("B0192CTMYG", 61209488)]
|
[TestCase("B0192CTMYG", 61209488)]
|
||||||
[TestCase("9780439554930", 48517161)]
|
[TestCase("9780439554930", 3)]
|
||||||
public void successful_book_search(string title, int expected)
|
public void successful_book_search(string title, int expected)
|
||||||
{
|
{
|
||||||
var result = Subject.Search(title);
|
var result = Subject.Search(title);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
|
|
||||||
// Avoid removing torrents that haven't reached the global max ratio.
|
// Avoid removing torrents that haven't reached the global max ratio.
|
||||||
// Removal also requires the torrent to be paused, in case a higher max ratio was set on the torrent itself (which is not exposed by the api).
|
// Removal also requires the torrent to be paused, in case a higher max ratio was set on the torrent itself (which is not exposed by the api).
|
||||||
item.CanMoveFiles = item.CanBeRemoved = torrent.State == "pausedUP" && HasReachedSeedLimit(torrent, config);
|
item.CanMoveFiles = item.CanBeRemoved = torrent.State is "pausedUP" or "stoppedUP" && HasReachedSeedLimit(torrent, config);
|
||||||
|
|
||||||
switch (torrent.State)
|
switch (torrent.State)
|
||||||
{
|
{
|
||||||
@@ -248,7 +248,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
item.Message = "qBittorrent is reporting an error";
|
item.Message = "qBittorrent is reporting an error";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "pausedDL": // torrent is paused and has NOT finished downloading
|
case "stoppedDL": // torrent is stopped and has NOT finished downloading
|
||||||
|
case "pausedDL": // torrent is paused and has NOT finished downloading (qBittorrent < 5)
|
||||||
item.Status = DownloadItemStatus.Paused;
|
item.Status = DownloadItemStatus.Paused;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -259,7 +260,8 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
item.Status = DownloadItemStatus.Queued;
|
item.Status = DownloadItemStatus.Queued;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "pausedUP": // torrent is paused and has finished downloading
|
case "pausedUP": // torrent is paused and has finished downloading (qBittorent < 5)
|
||||||
|
case "stoppedUP": // torrent is stopped and has finished downloading
|
||||||
case "uploading": // torrent is being seeded and data is being transferred
|
case "uploading": // torrent is being seeded and data is being transferred
|
||||||
case "stalledUP": // torrent is being seeded, but no connection were made
|
case "stalledUP": // torrent is being seeded, but no connection were made
|
||||||
case "queuedUP": // queuing is enabled and torrent is queued for upload
|
case "queuedUP": // queuing is enabled and torrent is queued for upload
|
||||||
|
|||||||
@@ -26,8 +26,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
Dictionary<string, QBittorrentLabel> GetLabels(QBittorrentSettings settings);
|
Dictionary<string, QBittorrentLabel> GetLabels(QBittorrentSettings settings);
|
||||||
void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings);
|
void SetTorrentSeedingConfiguration(string hash, TorrentSeedConfiguration seedConfiguration, QBittorrentSettings settings);
|
||||||
void MoveTorrentToTopInQueue(string hash, QBittorrentSettings settings);
|
void MoveTorrentToTopInQueue(string hash, QBittorrentSettings settings);
|
||||||
void PauseTorrent(string hash, QBittorrentSettings settings);
|
|
||||||
void ResumeTorrent(string hash, QBittorrentSettings settings);
|
|
||||||
void SetForceStart(string hash, bool enabled, QBittorrentSettings settings);
|
void SetForceStart(string hash, bool enabled, QBittorrentSettings settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
request.AddFormParameter("paused", false);
|
||||||
}
|
}
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", true);
|
request.AddFormParameter("paused", true);
|
||||||
}
|
}
|
||||||
@@ -178,7 +178,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
request.AddFormParameter("paused", false);
|
||||||
}
|
}
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", true);
|
request.AddFormParameter("paused", true);
|
||||||
}
|
}
|
||||||
@@ -214,7 +214,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// if setCategory fails due to method not being found, then try older setLabel command for qBittorrent < v.3.3.5
|
// if setCategory fails due to method not being found, then try older setLabel command for qBittorrent < v.3.3.5
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.NotFound)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.NotFound)
|
||||||
{
|
{
|
||||||
var setLabelRequest = BuildRequest(settings).Resource("/command/setLabel")
|
var setLabelRequest = BuildRequest(settings).Resource("/command/setLabel")
|
||||||
.Post()
|
.Post()
|
||||||
@@ -257,7 +257,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// qBittorrent rejects all Prio commands with 403: Forbidden if Options -> BitTorrent -> Torrent Queueing is not enabled
|
// qBittorrent rejects all Prio commands with 403: Forbidden if Options -> BitTorrent -> Torrent Queueing is not enabled
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.Forbidden)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.Forbidden)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -266,22 +266,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PauseTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/command/pause")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hash", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResumeTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/command/resume")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hash", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
||||||
{
|
{
|
||||||
var request = BuildRequest(settings).Resource("/command/setForceStart")
|
var request = BuildRequest(settings).Resource("/command/setForceStart")
|
||||||
|
|||||||
@@ -246,14 +246,20 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
request.AddFormParameter("category", settings.MusicCategory);
|
request.AddFormParameter("category", settings.MusicCategory);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: ForceStart is handled by separate api call
|
// Avoid extraneous API version check if initial state is ForceStart
|
||||||
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
if ((QBittorrentState)settings.InitialState is QBittorrentState.Start or QBittorrentState.Stop)
|
||||||
{
|
{
|
||||||
request.AddFormParameter("paused", false);
|
var stoppedParameterName = GetApiVersion(settings) >= new Version(2, 11, 0) ? "stopped" : "paused";
|
||||||
}
|
|
||||||
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Pause)
|
// Note: ForceStart is handled by separate api call
|
||||||
{
|
if ((QBittorrentState)settings.InitialState == QBittorrentState.Start)
|
||||||
request.AddFormParameter("paused", true);
|
{
|
||||||
|
request.AddFormParameter(stoppedParameterName, false);
|
||||||
|
}
|
||||||
|
else if ((QBittorrentState)settings.InitialState == QBittorrentState.Stop)
|
||||||
|
{
|
||||||
|
request.AddFormParameter(stoppedParameterName, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (settings.SequentialOrder)
|
if (settings.SequentialOrder)
|
||||||
@@ -291,7 +297,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// setShareLimits was added in api v2.0.1 so catch it case of the unlikely event that someone has api v2.0
|
// setShareLimits was added in api v2.0.1 so catch it case of the unlikely event that someone has api v2.0
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.NotFound)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.NotFound)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -313,7 +319,7 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
catch (DownloadClientException ex)
|
catch (DownloadClientException ex)
|
||||||
{
|
{
|
||||||
// qBittorrent rejects all Prio commands with 409: Conflict if Options -> BitTorrent -> Torrent Queueing is not enabled
|
// qBittorrent rejects all Prio commands with 409: Conflict if Options -> BitTorrent -> Torrent Queueing is not enabled
|
||||||
if (ex.InnerException is HttpException && (ex.InnerException as HttpException).Response.StatusCode == HttpStatusCode.Conflict)
|
if (ex.InnerException is HttpException httpException && httpException.Response.StatusCode == HttpStatusCode.Conflict)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -322,22 +328,6 @@ namespace NzbDrone.Core.Download.Clients.QBittorrent
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void PauseTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/pause")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hashes", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResumeTorrent(string hash, QBittorrentSettings settings)
|
|
||||||
{
|
|
||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/resume")
|
|
||||||
.Post()
|
|
||||||
.AddFormParameter("hashes", hash);
|
|
||||||
ProcessRequest(request, settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
public void SetForceStart(string hash, bool enabled, QBittorrentSettings settings)
|
||||||
{
|
{
|
||||||
var request = BuildRequest(settings).Resource("/api/v2/torrents/setForceStart")
|
var request = BuildRequest(settings).Resource("/api/v2/torrents/setForceStart")
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
|
using NzbDrone.Core.Annotations;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Download.Clients.QBittorrent
|
namespace NzbDrone.Core.Download.Clients.QBittorrent
|
||||||
{
|
{
|
||||||
public enum QBittorrentState
|
public enum QBittorrentState
|
||||||
{
|
{
|
||||||
|
[FieldOption(Label = "Started")]
|
||||||
Start = 0,
|
Start = 0,
|
||||||
|
|
||||||
|
[FieldOption(Label = "Force Started")]
|
||||||
ForceStart = 1,
|
ForceStart = 1,
|
||||||
Pause = 2
|
|
||||||
|
[FieldOption(Label = "Stopped")]
|
||||||
|
Stop = 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -642,5 +642,16 @@
|
|||||||
"AuthForm": "النماذج (صفحة تسجيل الدخول)",
|
"AuthForm": "النماذج (صفحة تسجيل الدخول)",
|
||||||
"Enabled": "ممكن",
|
"Enabled": "ممكن",
|
||||||
"FailedLoadingSearchResults": "فشل تحميل نتائج البحث ، يرجى المحاولة مرة أخرى.",
|
"FailedLoadingSearchResults": "فشل تحميل نتائج البحث ، يرجى المحاولة مرة أخرى.",
|
||||||
"DisabledForLocalAddresses": "معطل بسبب العناوين المحلية"
|
"DisabledForLocalAddresses": "معطل بسبب العناوين المحلية",
|
||||||
|
"AptUpdater": "استخدم apt لتثبيت التحديث",
|
||||||
|
"CurrentlyInstalled": "مثبتة حاليا",
|
||||||
|
"DockerUpdater": "تحديث حاوية عامل الإرساء لتلقي التحديث",
|
||||||
|
"ExternalUpdater": "تم تكوين {appName} لاستخدام آلية تحديث خارجية",
|
||||||
|
"InstallLatest": "تثبيت الأحدث",
|
||||||
|
"OnLatestVersion": "تم بالفعل تثبيت أحدث إصدار من {appName}",
|
||||||
|
"Script": "النصي",
|
||||||
|
"UnmappedFiles": "المجلدات غير المعينة",
|
||||||
|
"UpdateAppDirectlyLoadError": "تعذر تحديث {appName} مباشرة ،",
|
||||||
|
"Clone": "قريب",
|
||||||
|
"BuiltIn": "مدمج"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -642,5 +642,16 @@
|
|||||||
"AuthBasic": "Основно (изскачащ прозорец на браузъра)",
|
"AuthBasic": "Основно (изскачащ прозорец на браузъра)",
|
||||||
"AuthForm": "Формуляри (Страница за вход)",
|
"AuthForm": "Формуляри (Страница за вход)",
|
||||||
"DisabledForLocalAddresses": "Забранено за местни адреси",
|
"DisabledForLocalAddresses": "Забранено за местни адреси",
|
||||||
"Enabled": "Активирано"
|
"Enabled": "Активирано",
|
||||||
|
"AptUpdater": "Използвайте apt, за да инсталирате актуализацията",
|
||||||
|
"BuiltIn": "Вграден",
|
||||||
|
"CurrentlyInstalled": "Понастоящем инсталиран",
|
||||||
|
"ExternalUpdater": "{appName} е конфигуриран да използва външен механизъм за актуализация",
|
||||||
|
"Script": "Сценарий",
|
||||||
|
"UnmappedFiles": "Немапирани папки",
|
||||||
|
"UpdateAppDirectlyLoadError": "Не може да се актуализира {appName} директно,",
|
||||||
|
"Clone": "Близо",
|
||||||
|
"DockerUpdater": "актуализирайте контейнера на докера, за да получите актуализацията",
|
||||||
|
"InstallLatest": "Инсталирайте най-новите",
|
||||||
|
"OnLatestVersion": "Вече е инсталирана най-новата версия на {appName}"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -713,5 +713,16 @@
|
|||||||
"Enabled": "Povoleno",
|
"Enabled": "Povoleno",
|
||||||
"ApiKey": "Klíč API",
|
"ApiKey": "Klíč API",
|
||||||
"AuthForm": "Formuláře (přihlašovací stránka)",
|
"AuthForm": "Formuláře (přihlašovací stránka)",
|
||||||
"DisabledForLocalAddresses": "Zakázáno pro místní adresy"
|
"DisabledForLocalAddresses": "Zakázáno pro místní adresy",
|
||||||
|
"DockerUpdater": "aktualizujte kontejner dockeru, abyste aktualizaci obdrželi",
|
||||||
|
"ExternalUpdater": "{appName} je nakonfigurován pro použití externího aktualizačního mechanismu",
|
||||||
|
"FailedToFetchUpdates": "Nepodařilo se načíst aktualizace",
|
||||||
|
"OnLatestVersion": "Nejnovější verze aplikace {appName} je již nainstalována",
|
||||||
|
"Script": "Skript",
|
||||||
|
"UpdateAppDirectlyLoadError": "{appName} nelze aktualizovat přímo,",
|
||||||
|
"BuiltIn": "Vestavěný",
|
||||||
|
"InstallLatest": "Nainstalujte nejnovější",
|
||||||
|
"CurrentlyInstalled": "Aktuálně nainstalováno",
|
||||||
|
"UnmappedFiles": "Nezmapované složky",
|
||||||
|
"AptUpdater": "K instalaci aktualizace použijte apt"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
@@ -657,5 +657,17 @@
|
|||||||
"ApiKey": "API-nøgle",
|
"ApiKey": "API-nøgle",
|
||||||
"AddedAuthorSettings": "Indstillinger for tilføjede forfattere",
|
"AddedAuthorSettings": "Indstillinger for tilføjede forfattere",
|
||||||
"AddMissing": "Tilføj manglende",
|
"AddMissing": "Tilføj manglende",
|
||||||
"AddImportListExclusionHelpText": "Forhindre bog i at blive tilføjet til Readarr via Importer Lister eller Opdater Forfatter"
|
"AddImportListExclusionHelpText": "Forhindre bog i at blive tilføjet til Readarr via Importer Lister eller Opdater Forfatter",
|
||||||
|
"AptUpdater": "Brug apt til at installere opdateringen",
|
||||||
|
"BuiltIn": "Indbygget",
|
||||||
|
"CurrentlyInstalled": "Aktuelt installeret",
|
||||||
|
"InstallLatest": "Installer senest",
|
||||||
|
"Script": "Manuskript",
|
||||||
|
"UpdateAppDirectlyLoadError": "Kan ikke opdatere {appName} direkte,",
|
||||||
|
"Clone": "Luk",
|
||||||
|
"UnmappedFiles": "Ikke-kortlagte mapper",
|
||||||
|
"DockerUpdater": "opdater docker-containeren for at modtage opdateringen",
|
||||||
|
"ExternalUpdater": "{appName} er konfigureret til at bruge en ekstern opdateringsmekanisme",
|
||||||
|
"OnLatestVersion": "Den seneste version af {appName} er allerede installeret",
|
||||||
|
"WouldYouLikeToRestoreBackup": "Vil du gendanne sikkerhedskopien »{name}«?"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,9 +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",
|
||||||
|
"CurrentlyInstalled": "Derzeit installiert",
|
||||||
|
"InstallLatest": "Neueste Version installieren",
|
||||||
|
"OnLatestVersion": "Die neueste Version von {appName} ist bereits installiert",
|
||||||
|
"Script": "Skript",
|
||||||
|
"AptUpdater": "Verwenden Sie apt, um das Update zu installieren",
|
||||||
|
"DockerUpdater": "Aktualisieren Sie den Docker-Container, um das Update zu erhalten",
|
||||||
|
"ExternalUpdater": "{appName} ist so konfiguriert, dass es einen externen Aktualisierungsmechanismus verwendet",
|
||||||
|
"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')"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1012,5 +1012,14 @@
|
|||||||
"AuthenticationRequiredWarning": "Για να αποτρέψει την απομακρυσμένη πρόσβαση χωρίς έλεγχο ταυτότητας, το {appName} απαιτεί τώρα να ενεργοποιηθεί ο έλεγχος ταυτότητας. Διαμορφώστε τη μέθοδο ελέγχου ταυτότητας και τα διαπιστευτήριά σας. Μπορείτε προαιρετικά να απενεργοποιήσετε τον έλεγχο ταυτότητας από τοπικές διευθύνσεις. Ανατρέξτε στις Συχνές Ερωτήσεις για πρόσθετες πληροφορίες.",
|
"AuthenticationRequiredWarning": "Για να αποτρέψει την απομακρυσμένη πρόσβαση χωρίς έλεγχο ταυτότητας, το {appName} απαιτεί τώρα να ενεργοποιηθεί ο έλεγχος ταυτότητας. Διαμορφώστε τη μέθοδο ελέγχου ταυτότητας και τα διαπιστευτήριά σας. Μπορείτε προαιρετικά να απενεργοποιήσετε τον έλεγχο ταυτότητας από τοπικές διευθύνσεις. Ανατρέξτε στις Συχνές Ερωτήσεις για πρόσθετες πληροφορίες.",
|
||||||
"Enabled": "Ενεργοποιήθηκε",
|
"Enabled": "Ενεργοποιήθηκε",
|
||||||
"ApiKey": "Κλειδί API",
|
"ApiKey": "Κλειδί API",
|
||||||
"DisabledForLocalAddresses": "Απενεργοποιήθηκε για τοπικές διευθύνσεις"
|
"DisabledForLocalAddresses": "Απενεργοποιήθηκε για τοπικές διευθύνσεις",
|
||||||
|
"AptUpdater": "Χρησιμοποιήστε το apt για να εγκαταστήσετε την ενημέρωση",
|
||||||
|
"BuiltIn": "Ενσωματωμένο",
|
||||||
|
"CurrentlyInstalled": "Εγκατεστημένο αυτήν τη στιγμή",
|
||||||
|
"DockerUpdater": "ενημερώστε το κοντέινερ για να λάβετε την ενημέρωση",
|
||||||
|
"OnLatestVersion": "Η τελευταία έκδοση του {appName} είναι ήδη εγκατεστημένη",
|
||||||
|
"Script": "Γραφή",
|
||||||
|
"UpdateAppDirectlyLoadError": "Δεν είναι δυνατή η απευθείας ενημέρωση του {appName},",
|
||||||
|
"ExternalUpdater": "Το {appName} έχει ρυθμιστεί να χρησιμοποιεί έναν εξωτερικό μηχανισμό ενημέρωσης",
|
||||||
|
"InstallLatest": "Εγκατάσταση πιο πρόσφατου"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1101,5 +1101,21 @@
|
|||||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirma la nueva contraseña",
|
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirma la nueva contraseña",
|
||||||
"AuthenticationRequiredPasswordHelpTextWarning": "Introduce una nueva contraseña",
|
"AuthenticationRequiredPasswordHelpTextWarning": "Introduce una nueva contraseña",
|
||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Introduce un nuevo usuario",
|
"AuthenticationRequiredUsernameHelpTextWarning": "Introduce un nuevo usuario",
|
||||||
"External": "Externa"
|
"External": "Externa",
|
||||||
|
"AptUpdater": "Usa apt para instalar la actualización",
|
||||||
|
"BuiltIn": "Integrado",
|
||||||
|
"CurrentlyInstalled": "Actualmente instalado",
|
||||||
|
"DockerUpdater": "Actualiza el contenedor docker para recibir la actualización",
|
||||||
|
"ExternalUpdater": "{appName} está configurado para usar un mecanismo de actualización externo",
|
||||||
|
"FailedToFetchSettings": "Error al recuperar la configuración",
|
||||||
|
"Install": "Instalar",
|
||||||
|
"OnLatestVersion": "La última versión de {appName} ya está instalada",
|
||||||
|
"PreviouslyInstalled": "Previamente instalado",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "No se pudo actualizar {appName} directamente,",
|
||||||
|
"FailedToFetchUpdates": "Fallo al buscar las actualizaciones",
|
||||||
|
"InstallLatest": "Instala el último",
|
||||||
|
"InstallMajorVersionUpdate": "Instalar actualización",
|
||||||
|
"InstallMajorVersionUpdateMessage": "Esta actualización instalará una nueva versión principal y podría no ser compatible con tu sistema. ¿Estás seguro que quieres instalar esta actualización?",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "Por favor revisa [{domain}]({url}) para más información."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1029,5 +1029,16 @@
|
|||||||
"External": "Ulkoinen",
|
"External": "Ulkoinen",
|
||||||
"PasswordConfirmation": "Salasanan vahvistus",
|
"PasswordConfirmation": "Salasanan vahvistus",
|
||||||
"DisabledForLocalAddresses": "Ei käytössä paikallisille osoitteille",
|
"DisabledForLocalAddresses": "Ei käytössä paikallisille osoitteille",
|
||||||
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "{appName} tukee useita listoja, joilta sarjoja voidaan tuoda tietokantaan."
|
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "{appName} tukee useita listoja, joilta sarjoja voidaan tuoda tietokantaan.",
|
||||||
|
"BuiltIn": "Sisäänrakennettu",
|
||||||
|
"CurrentlyInstalled": "Nykyinen asennettu versio",
|
||||||
|
"DockerUpdater": "Hanki päivitys päivittämällä Docker-säiliö",
|
||||||
|
"ExternalUpdater": "{appName} on määritetty käyttämään ulkoista päivitysratkaisua.",
|
||||||
|
"FailedToFetchUpdates": "Päivitysten nouto epäonnistui",
|
||||||
|
"InstallLatest": "Asenna uusin",
|
||||||
|
"OnLatestVersion": "Uusin {appName}-versio on jo asennettu",
|
||||||
|
"PreviouslyInstalled": "Edellinen asennettu versio",
|
||||||
|
"Script": "Skripti",
|
||||||
|
"UpdateAppDirectlyLoadError": "{appName}ia ei voida päivittää suoraan,",
|
||||||
|
"AptUpdater": "Asenna päivitys APT-työkalun avulla"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1101,5 +1101,21 @@
|
|||||||
"Iso639-3": "Codes de langage ISO 639-3, ou 'null', séparés par des virgules",
|
"Iso639-3": "Codes de langage ISO 639-3, ou 'null', séparés par des virgules",
|
||||||
"SpecificBook": "Livre spécifique",
|
"SpecificBook": "Livre spécifique",
|
||||||
"SkipSecondarySeriesBooks": "Sauter les livres de séries secondaires",
|
"SkipSecondarySeriesBooks": "Sauter les livres de séries secondaires",
|
||||||
"SkipPartBooksAndSets": "Livres et coffrets \"Skip part\""
|
"SkipPartBooksAndSets": "Livres et coffrets \"Skip part\"",
|
||||||
|
"AptUpdater": "Utiliser apt pour installer la mise à jour",
|
||||||
|
"BuiltIn": "Intégré",
|
||||||
|
"CurrentlyInstalled": "Actuellement installé",
|
||||||
|
"DockerUpdater": "Mettez à jour le conteneur Docker pour recevoir la mise à jour",
|
||||||
|
"ExternalUpdater": "{appName} est configuré pour utiliser un mécanisme de mise à jour externe",
|
||||||
|
"FailedToFetchSettings": "Échec de la récupération des paramètres",
|
||||||
|
"FailedToFetchUpdates": "Échec de la récupération des mises à jour",
|
||||||
|
"Install": "Installer",
|
||||||
|
"InstallLatest": "Installer la dernière",
|
||||||
|
"InstallMajorVersionUpdate": "Installer la mise à jour",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "Veuillez consulter [{domain}]({url}) pour plus d'informations.",
|
||||||
|
"OnLatestVersion": "La dernière version de {appName} est déjà installée",
|
||||||
|
"PreviouslyInstalled": "Installé précédemment",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Impossible de mettre à jour directement {appName},",
|
||||||
|
"InstallMajorVersionUpdateMessage": "Cette mise à jour installera une nouvelle version majeure et pourrait ne pas être compatible avec votre système. Êtes-vous sûr de vouloir installer cette mise à jour ?"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -676,5 +676,16 @@
|
|||||||
"AuthenticationRequiredHelpText": "הגדר עבור אילו קריאות נדרש אימות. עדיף להשאיר את ברירת המחדל.",
|
"AuthenticationRequiredHelpText": "הגדר עבור אילו קריאות נדרש אימות. עדיף להשאיר את ברירת המחדל.",
|
||||||
"AuthenticationRequiredWarning": "בכדי למנוע גישה מרחוק ללא אימות, {appName} דורש הגדרת אימות.\nהגדר את הפרטים ושיטת האימות. ישנה אפשרות לדלג על אימות מהרשת הביתית שלך. \nבמידת הצורך יש לפנות אל שו״ת למידע נוסף.",
|
"AuthenticationRequiredWarning": "בכדי למנוע גישה מרחוק ללא אימות, {appName} דורש הגדרת אימות.\nהגדר את הפרטים ושיטת האימות. ישנה אפשרות לדלג על אימות מהרשת הביתית שלך. \nבמידת הצורך יש לפנות אל שו״ת למידע נוסף.",
|
||||||
"DisabledForLocalAddresses": "מושבת לכתובות מקומיות",
|
"DisabledForLocalAddresses": "מושבת לכתובות מקומיות",
|
||||||
"Enabled": "מופעל"
|
"Enabled": "מופעל",
|
||||||
|
"AptUpdater": "השתמש ב- apt כדי להתקין את העדכון",
|
||||||
|
"BuiltIn": "נִבנָה בְּ",
|
||||||
|
"CurrentlyInstalled": "מותקן כעת",
|
||||||
|
"DockerUpdater": "עדכן את מיכל העגינה לקבל את העדכון",
|
||||||
|
"ExternalUpdater": "{appName} מוגדר להשתמש במנגנון עדכון חיצוני",
|
||||||
|
"InstallLatest": "התקן את האחרונה",
|
||||||
|
"OnLatestVersion": "הגרסה האחרונה של {appName} כבר מותקנת",
|
||||||
|
"Script": "תַסרִיט",
|
||||||
|
"UnmappedFiles": "תיקיות לא ממופות",
|
||||||
|
"UpdateAppDirectlyLoadError": "לא ניתן לעדכן את {appName} ישירות,",
|
||||||
|
"Clone": "סגור"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -640,5 +640,15 @@
|
|||||||
"AuthBasic": "बेसिक (ब्राउज़र पॉपअप)",
|
"AuthBasic": "बेसिक (ब्राउज़र पॉपअप)",
|
||||||
"AuthForm": "प्रपत्र (लॉग इन पेज)",
|
"AuthForm": "प्रपत्र (लॉग इन पेज)",
|
||||||
"DisabledForLocalAddresses": "स्थानीय पते के लिए अक्षम",
|
"DisabledForLocalAddresses": "स्थानीय पते के लिए अक्षम",
|
||||||
"Enabled": "सक्रिय"
|
"Enabled": "सक्रिय",
|
||||||
|
"UnmappedFiles": "बिना मोड़े हुए फोल्डर",
|
||||||
|
"AptUpdater": "अद्यतन स्थापित करने के लिए उपयुक्त का उपयोग करें",
|
||||||
|
"BuiltIn": "में निर्मित",
|
||||||
|
"CurrentlyInstalled": "वर्तमान में स्थापित है",
|
||||||
|
"DockerUpdater": "अपडेट प्राप्त करने के लिए docker कंटेनर को अपडेट करें",
|
||||||
|
"InstallLatest": "नवीनतम स्थापित करें",
|
||||||
|
"OnLatestVersion": "रेडर का नवीनतम संस्करण पहले से ही स्थापित है",
|
||||||
|
"Script": "लिपि",
|
||||||
|
"UpdateAppDirectlyLoadError": "सीधे {appName} अद्यतन करने में असमर्थ,",
|
||||||
|
"Clone": "बंद करे"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -224,5 +224,10 @@
|
|||||||
"AuthenticationRequired": "Potrebna Autentikacija",
|
"AuthenticationRequired": "Potrebna Autentikacija",
|
||||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Potvrdi novu lozinku",
|
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Potvrdi novu lozinku",
|
||||||
"AuthenticationRequiredPasswordHelpTextWarning": "Unesi novu lozinku",
|
"AuthenticationRequiredPasswordHelpTextWarning": "Unesi novu lozinku",
|
||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Unesi novo korisničko ime"
|
"AuthenticationRequiredUsernameHelpTextWarning": "Unesi novo korisničko ime",
|
||||||
|
"Reason": "Sezona",
|
||||||
|
"DeleteSelectedBookFilesMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?",
|
||||||
|
"Clone": "Zatvori",
|
||||||
|
"BuiltIn": "Ugrađeno",
|
||||||
|
"AptUpdater": "Koristi apt kako bi instalirao ažuriranje"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1074,5 +1074,16 @@
|
|||||||
"External": "Külső",
|
"External": "Külső",
|
||||||
"PasswordConfirmation": "Jelszó megerősítése",
|
"PasswordConfirmation": "Jelszó megerősítése",
|
||||||
"AuthBasic": "Alap (böngésző előugró ablak)",
|
"AuthBasic": "Alap (böngésző előugró ablak)",
|
||||||
"Enabled": "Engedélyezés"
|
"Enabled": "Engedélyezés",
|
||||||
|
"AptUpdater": "A frissítés telepítéséhez használja az apt-t",
|
||||||
|
"BuiltIn": "Beépített",
|
||||||
|
"CurrentlyInstalled": "Jelenleg telepítve",
|
||||||
|
"DockerUpdater": "Frissítse a docker-tárolót a frissítés fogadásához",
|
||||||
|
"ExternalUpdater": "A {appName} egy külső frissítési mechanizmus használatára van konfigurálva",
|
||||||
|
"FailedToFetchUpdates": "Nem sikerült lekérni a frissítéseket",
|
||||||
|
"InstallLatest": "Legfrissebb telepítése",
|
||||||
|
"OnLatestVersion": "A {appName} legújabb verziója már telepítva van",
|
||||||
|
"PreviouslyInstalled": "Korábban telepítve",
|
||||||
|
"Script": "Szkript",
|
||||||
|
"UpdateAppDirectlyLoadError": "Nem lehetséges közvetlenül frissíteni a {appName}-t"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,5 +102,9 @@
|
|||||||
"AuthenticationRequiredPasswordHelpTextWarning": "Masukkan sandi baru",
|
"AuthenticationRequiredPasswordHelpTextWarning": "Masukkan sandi baru",
|
||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Masukkan nama pengguna baru",
|
"AuthenticationRequiredUsernameHelpTextWarning": "Masukkan nama pengguna baru",
|
||||||
"AuthenticationRequiredWarning": "Untuk mencegah akses jarak jauh tanpa autentikasi, {appName} kini mewajibkan pengaktifkan autentikasi. Kamu dapat menonaktifkan autentikasi dari jaringan lokal.",
|
"AuthenticationRequiredWarning": "Untuk mencegah akses jarak jauh tanpa autentikasi, {appName} kini mewajibkan pengaktifkan autentikasi. Kamu dapat menonaktifkan autentikasi dari jaringan lokal.",
|
||||||
"Enabled": "Aktif"
|
"Enabled": "Aktif",
|
||||||
|
"AptUpdater": "Gunakan apt untuk memasang pembaruan",
|
||||||
|
"Clone": "Tutup",
|
||||||
|
"CurrentlyInstalled": "Saat Ini Terpasang",
|
||||||
|
"EnableSSL": "Aktifkan RSS"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -641,5 +641,16 @@
|
|||||||
"DisabledForLocalAddresses": "Óvirkt vegna heimilisfanga",
|
"DisabledForLocalAddresses": "Óvirkt vegna heimilisfanga",
|
||||||
"Enabled": "Virkt",
|
"Enabled": "Virkt",
|
||||||
"ApiKey": "API lykill",
|
"ApiKey": "API lykill",
|
||||||
"AuthBasic": "Grunn (sprettiglugga vafra)"
|
"AuthBasic": "Grunn (sprettiglugga vafra)",
|
||||||
|
"Clone": "Lokaðu",
|
||||||
|
"AptUpdater": "Notaðu apt til að setja uppfærsluna upp",
|
||||||
|
"BuiltIn": "Innbyggð",
|
||||||
|
"CurrentlyInstalled": "Nú sett upp",
|
||||||
|
"DockerUpdater": "uppfærðu bryggjugáminn til að fá uppfærsluna",
|
||||||
|
"ExternalUpdater": "{appName} er stilltur til að nota ytri uppfærslu",
|
||||||
|
"InstallLatest": "Settu upp nýjustu",
|
||||||
|
"OnLatestVersion": "Nýjasta útgáfan af {appName} er þegar uppsett",
|
||||||
|
"Script": "Handrit",
|
||||||
|
"UnmappedFiles": "Ókortlagðar möppur",
|
||||||
|
"UpdateAppDirectlyLoadError": "Ekki er hægt að uppfæra {appName} beint,"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -900,5 +900,16 @@
|
|||||||
"Fixed": "Fissato",
|
"Fixed": "Fissato",
|
||||||
"MusicBrainzTrackID": "ID Libro MusicBrainz",
|
"MusicBrainzTrackID": "ID Libro MusicBrainz",
|
||||||
"CountImportListsSelected": "{selectedCount} autore/i selezionato/i",
|
"CountImportListsSelected": "{selectedCount} autore/i selezionato/i",
|
||||||
"DownloadClientDelugeSettingsDirectory": "Cartella Download"
|
"DownloadClientDelugeSettingsDirectory": "Cartella Download",
|
||||||
|
"UnmappedFiles": "Cartelle Non Mappate",
|
||||||
|
"AptUpdater": "Usa apt per installare l'aggiornamento",
|
||||||
|
"BuiltIn": "Incluso",
|
||||||
|
"CurrentlyInstalled": "Attualmente Installato",
|
||||||
|
"DockerUpdater": "Aggiorna il container di docker per ricevere l'aggiornamento",
|
||||||
|
"ExternalUpdater": "{appName} è configurato per utilizzare un meccanismo di aggiornamento esterno",
|
||||||
|
"InstallLatest": "Installa il più recente",
|
||||||
|
"OnLatestVersion": "L'ultima versione di {appName} è già installata",
|
||||||
|
"PreviouslyInstalled": "Precedentemente Installato",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Impossibile aggiornare {appName} direttamente,"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -640,5 +640,16 @@
|
|||||||
"Enabled": "有効",
|
"Enabled": "有効",
|
||||||
"ApiKey": "APIキー",
|
"ApiKey": "APIキー",
|
||||||
"AuthBasic": "基本(ブラウザポップアップ)",
|
"AuthBasic": "基本(ブラウザポップアップ)",
|
||||||
"DisabledForLocalAddresses": "ローカルアドレスでは無効"
|
"DisabledForLocalAddresses": "ローカルアドレスでは無効",
|
||||||
|
"Clone": "閉じる",
|
||||||
|
"InstallLatest": "最新のインストール",
|
||||||
|
"Script": "脚本",
|
||||||
|
"UnmappedFiles": "マップされていないフォルダ",
|
||||||
|
"UpdateAppDirectlyLoadError": "{appName}を直接更新できません。",
|
||||||
|
"AptUpdater": "aptを使用してアップデートをインストールします",
|
||||||
|
"BuiltIn": "ビルトイン",
|
||||||
|
"CurrentlyInstalled": "現在インストール中",
|
||||||
|
"DockerUpdater": "Dockerコンテナを更新して、更新を受信します",
|
||||||
|
"ExternalUpdater": "{appName}は、外部更新メカニズムを使用するように構成されています",
|
||||||
|
"OnLatestVersion": "{appName}の最新バージョンはすでにインストールされています"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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에 사용할 언어",
|
||||||
@@ -631,5 +631,17 @@
|
|||||||
"AuthBasic": "기본 (브라우저 팝업)",
|
"AuthBasic": "기본 (브라우저 팝업)",
|
||||||
"AuthForm": "양식 (로그인 페이지)",
|
"AuthForm": "양식 (로그인 페이지)",
|
||||||
"DisabledForLocalAddresses": "로컬 주소에 대해 비활성화됨",
|
"DisabledForLocalAddresses": "로컬 주소에 대해 비활성화됨",
|
||||||
"Enabled": "활성화"
|
"Enabled": "활성화",
|
||||||
|
"Clone": "닫기",
|
||||||
|
"AptUpdater": "apt를 사용하여 업데이트 설치",
|
||||||
|
"BuiltIn": "내장",
|
||||||
|
"CurrentlyInstalled": "현재 설치됨",
|
||||||
|
"DockerUpdater": "Docker 컨테이너를 업데이트하여 업데이트를 받으십시오.",
|
||||||
|
"ExternalUpdater": "{appName}는 외부 업데이트 메커니즘을 사용하도록 구성됩니다.",
|
||||||
|
"OnLatestVersion": "최신 버전의 {appName}가 이미 설치되어 있습니다.",
|
||||||
|
"UpdateAppDirectlyLoadError": "{appName}를 직접 업데이트 할 수 없습니다.",
|
||||||
|
"ApiKeyValidationHealthCheckMessage": "API 키를 {length}자 이상으로 업데이트하세요. 설정 또는 구성 파일을 통해 이 작업을 수행할 수 있습니다.",
|
||||||
|
"AppUpdated": "{appName} 업데이트",
|
||||||
|
"AppUpdatedVersion": "{appName}이 버전 `{version}`으로 업데이트되었습니다. 최신 변경 사항을 받으려면 {appName}을 다시 로드해야 합니다",
|
||||||
|
"WouldYouLikeToRestoreBackup": "'{name}' 백업을 복원하시겠습니까?"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -198,5 +198,9 @@
|
|||||||
"AuthBasic": "Grunnleggende (nettleser -popup)",
|
"AuthBasic": "Grunnleggende (nettleser -popup)",
|
||||||
"UnableToAddANewImportListExclusionPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
|
"UnableToAddANewImportListExclusionPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
|
||||||
"UnableToAddANewMetadataProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
|
"UnableToAddANewMetadataProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
|
||||||
"UnableToAddANewQualityProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen"
|
"UnableToAddANewQualityProfilePleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen",
|
||||||
|
"Reason": "Sesong",
|
||||||
|
"Clone": "Lukk",
|
||||||
|
"AptUpdater": "Bruk apt til å installere oppdateringen",
|
||||||
|
"BuiltIn": "Bygget inn"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -757,5 +757,15 @@
|
|||||||
"ChangeCategoryMultipleHint": "Wijzigt downloads naar de 'Post-Import Categorie' van Downloadclient",
|
"ChangeCategoryMultipleHint": "Wijzigt downloads naar de 'Post-Import Categorie' van Downloadclient",
|
||||||
"BypassIfAboveCustomFormatScore": "Omzeilen indien boven aangepaste opmaak score",
|
"BypassIfAboveCustomFormatScore": "Omzeilen indien boven aangepaste opmaak score",
|
||||||
"BypassIfAboveCustomFormatScoreHelpText": "Schakel omleiding in als de release een score heeft die hoger is dan de geconfigureerde minimale aangepaste formaatscore",
|
"BypassIfAboveCustomFormatScoreHelpText": "Schakel omleiding in als de release een score heeft die hoger is dan de geconfigureerde minimale aangepaste formaatscore",
|
||||||
"MinimumCustomFormatScoreHelpText": "Minimumscore aangepast formaat vereist om vertraging voor het voorkeursprotocol te omzeilen"
|
"MinimumCustomFormatScoreHelpText": "Minimumscore aangepast formaat vereist om vertraging voor het voorkeursprotocol te omzeilen",
|
||||||
|
"UnmappedFiles": "Niet-toegewezen Mappen",
|
||||||
|
"AptUpdater": "Gebruik apt om de update te installeren",
|
||||||
|
"BuiltIn": "Ingebouwd",
|
||||||
|
"DockerUpdater": "Update de docker container om de update te ontvangen",
|
||||||
|
"InstallLatest": "Installeer Nieuwste Versie",
|
||||||
|
"OnLatestVersion": "De nieuwste versie van {appName} is al geïnstalleerd",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Kan {appName} niet rechtstreeks updaten,",
|
||||||
|
"CurrentlyInstalled": "Momenteel Geïnstalleerd",
|
||||||
|
"ExternalUpdater": "{appName} is geconfigureerd om een extern update mechanisme te gebruiken"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -707,5 +707,16 @@
|
|||||||
"Label": "Etykieta",
|
"Label": "Etykieta",
|
||||||
"CatalogNumber": "numer katalogowy",
|
"CatalogNumber": "numer katalogowy",
|
||||||
"MetadataProfiles": "profil metadanych",
|
"MetadataProfiles": "profil metadanych",
|
||||||
"Publisher": "Wydawca"
|
"Publisher": "Wydawca",
|
||||||
|
"Clone": "Zamknij",
|
||||||
|
"AptUpdater": "Użyj apt, aby zainstalować aktualizację",
|
||||||
|
"BuiltIn": "Wbudowany",
|
||||||
|
"CurrentlyInstalled": "Aktualnie zainstalowane",
|
||||||
|
"ExternalUpdater": "{appName} jest skonfigurowany do korzystania z zewnętrznego mechanizmu aktualizacji",
|
||||||
|
"InstallLatest": "Zainstaluj najnowsze",
|
||||||
|
"OnLatestVersion": "Najnowsza wersja {appName} jest już zainstalowana",
|
||||||
|
"Script": "Scenariusz",
|
||||||
|
"UnmappedFiles": "Niezmapowane foldery",
|
||||||
|
"UpdateAppDirectlyLoadError": "Nie można bezpośrednio zaktualizować {appName},",
|
||||||
|
"DockerUpdater": "zaktualizuj kontener Dockera, aby otrzymać aktualizację"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -955,5 +955,14 @@
|
|||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Insira um novo Nome de Usuário",
|
"AuthenticationRequiredUsernameHelpTextWarning": "Insira um novo Nome de Usuário",
|
||||||
"AuthenticationRequiredWarning": "Para evitar o acesso remoto sem autenticação, {appName} agora exige que a autenticação esteja habilitada. Opcionalmente, você pode desabilitar a autenticação de endereços locais.",
|
"AuthenticationRequiredWarning": "Para evitar o acesso remoto sem autenticação, {appName} agora exige que a autenticação esteja habilitada. Opcionalmente, você pode desabilitar a autenticação de endereços locais.",
|
||||||
"DisabledForLocalAddresses": "Desativado para endereços locais",
|
"DisabledForLocalAddresses": "Desativado para endereços locais",
|
||||||
"Enabled": "Ativado"
|
"Enabled": "Ativado",
|
||||||
|
"AptUpdater": "Utilize o apt para instalar a atualização",
|
||||||
|
"BuiltIn": "Incorporado",
|
||||||
|
"CurrentlyInstalled": "Atualmente instalado",
|
||||||
|
"InstallLatest": "Instalar o mais recente",
|
||||||
|
"OnLatestVersion": "A versão mais recente do {appName} já está instalada",
|
||||||
|
"DockerUpdater": "atualize o contentor do Docker para receber a atualização",
|
||||||
|
"ExternalUpdater": "O {appName} está definido para usar um mecanismo de atualização externo",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Não foi possível atualizar o {appName} diretamente,"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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",
|
||||||
@@ -1101,5 +1101,21 @@
|
|||||||
"Enabled": "Habilitado",
|
"Enabled": "Habilitado",
|
||||||
"External": "Externo",
|
"External": "Externo",
|
||||||
"ApiKey": "Chave API",
|
"ApiKey": "Chave API",
|
||||||
"PasswordConfirmation": "Confirmação Da Senha"
|
"PasswordConfirmation": "Confirmação Da Senha",
|
||||||
|
"AptUpdater": "Usar apt para instalar atualizações",
|
||||||
|
"BuiltIn": "Embutido",
|
||||||
|
"Install": "Instalar",
|
||||||
|
"InstallLatest": "Instalar o mais recente",
|
||||||
|
"InstallMajorVersionUpdate": "Instalar Atualização",
|
||||||
|
"OnLatestVersion": "A versão mais recente do {appName} já está instalada",
|
||||||
|
"PreviouslyInstalled": "Instalado anteriormente",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Incapaz de atualizar o {appName} diretamente,",
|
||||||
|
"CurrentlyInstalled": "Atualmente instalado",
|
||||||
|
"DockerUpdater": "Atualize o contêiner docker para receber a atualização",
|
||||||
|
"ExternalUpdater": "O {appName} está configurado para usar um mecanismo de atualização externo",
|
||||||
|
"FailedToFetchSettings": "Falha ao buscar configurações",
|
||||||
|
"FailedToFetchUpdates": "Falha ao buscar atualizações",
|
||||||
|
"InstallMajorVersionUpdateMessage": "Esta atualização instalará uma nova versão principal e pode não ser compatível com o seu sistema. Tem certeza de que deseja instalar esta atualização?",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "Verifique [{domain}]({url}) para obter mais informações."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,8 +122,8 @@
|
|||||||
"Clear": "Șterge",
|
"Clear": "Șterge",
|
||||||
"ClickToChangeQuality": "Faceți clic pentru a schimba calitatea",
|
"ClickToChangeQuality": "Faceți clic pentru a schimba calitatea",
|
||||||
"ClientPriority": "Prioritate client",
|
"ClientPriority": "Prioritate client",
|
||||||
"CloneIndexer": "Clonă Indexer",
|
"CloneIndexer": "Clonează Indexer",
|
||||||
"CloneProfile": "Clonați profil",
|
"CloneProfile": "Clonează Profil",
|
||||||
"CopyUsingHardlinksHelpTextWarning": "Ocazional, blocarea fișierelor poate împiedica redenumirea fișierelor care sunt însămânțate. Puteți dezactiva temporar însămânțarea și puteți utiliza funcția de redenumire a lui {appName} ca soluție.",
|
"CopyUsingHardlinksHelpTextWarning": "Ocazional, blocarea fișierelor poate împiedica redenumirea fișierelor care sunt însămânțate. Puteți dezactiva temporar însămânțarea și puteți utiliza funcția de redenumire a lui {appName} ca soluție.",
|
||||||
"CreateEmptyAuthorFoldersHelpText": "Creați directoare de film lipsă în timpul scanării discului",
|
"CreateEmptyAuthorFoldersHelpText": "Creați directoare de film lipsă în timpul scanării discului",
|
||||||
"CreateGroup": "Creați un grup",
|
"CreateGroup": "Creați un grup",
|
||||||
@@ -548,7 +548,7 @@
|
|||||||
"MoveFiles": "Mută Fișiere",
|
"MoveFiles": "Mută Fișiere",
|
||||||
"MinimumCustomFormatScore": "Scor minim format personalizat",
|
"MinimumCustomFormatScore": "Scor minim format personalizat",
|
||||||
"CustomFormatScore": "Scorul formatului personalizat",
|
"CustomFormatScore": "Scorul formatului personalizat",
|
||||||
"CloneCustomFormat": "Clonați format personalizat",
|
"CloneCustomFormat": "Clonează format personalizat",
|
||||||
"Conditions": "Condiții",
|
"Conditions": "Condiții",
|
||||||
"DeleteCustomFormat": "Ștergeți formatul personalizat",
|
"DeleteCustomFormat": "Ștergeți formatul personalizat",
|
||||||
"DeleteCustomFormatMessageText": "Sigur doriți să ștergeți indexatorul „{0}”?",
|
"DeleteCustomFormatMessageText": "Sigur doriți să ștergeți indexatorul „{0}”?",
|
||||||
@@ -606,7 +606,7 @@
|
|||||||
"ApplicationURL": "URL aplicație",
|
"ApplicationURL": "URL aplicație",
|
||||||
"ApplyChanges": "Aplicați modificări",
|
"ApplyChanges": "Aplicați modificări",
|
||||||
"AutomaticAdd": "Adăugare automată",
|
"AutomaticAdd": "Adăugare automată",
|
||||||
"CloneCondition": "Clonați condiție",
|
"CloneCondition": "Clonează condiție",
|
||||||
"InstanceName": "Nume instanță",
|
"InstanceName": "Nume instanță",
|
||||||
"Publisher": "Editor",
|
"Publisher": "Editor",
|
||||||
"Implementation": "Implementarea",
|
"Implementation": "Implementarea",
|
||||||
@@ -660,5 +660,16 @@
|
|||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Introduceți un nou nume de utilizator",
|
"AuthenticationRequiredUsernameHelpTextWarning": "Introduceți un nou nume de utilizator",
|
||||||
"DisabledForLocalAddresses": "Dezactivat pentru adresele locale",
|
"DisabledForLocalAddresses": "Dezactivat pentru adresele locale",
|
||||||
"ApiKey": "Cheie API",
|
"ApiKey": "Cheie API",
|
||||||
"Enabled": "Activat"
|
"Enabled": "Activat",
|
||||||
|
"Clone": "Clonează",
|
||||||
|
"UnmappedFiles": "Foldere nemapate",
|
||||||
|
"AptUpdater": "Utilizați apt pentru a instala actualizarea",
|
||||||
|
"BuiltIn": "Incorporat",
|
||||||
|
"CurrentlyInstalled": "În prezent instalat",
|
||||||
|
"DockerUpdater": "Actualizați containerul Docker pentru a primi actualizarea",
|
||||||
|
"ExternalUpdater": "{appName} este configurat pentru a utiliza un mecanism de actualizare extern",
|
||||||
|
"InstallLatest": "Instalați cel mai recent",
|
||||||
|
"OnLatestVersion": "Cea mai recentă versiune a {appName} este deja instalată",
|
||||||
|
"Script": "Script",
|
||||||
|
"UpdateAppDirectlyLoadError": "Imposibil de actualizat direct {appName},"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -860,5 +860,22 @@
|
|||||||
"Books": "Книга",
|
"Books": "Книга",
|
||||||
"LogRotation": "Ротация журналов",
|
"LogRotation": "Ротация журналов",
|
||||||
"FilterAnalyticsEvents": "Фильтровать события аналитики",
|
"FilterAnalyticsEvents": "Фильтровать события аналитики",
|
||||||
"FilterSentryEventsHelpText": "Фильтровать известные события ошибок пользователя, чтобы они не отправлялись в виде аналитики."
|
"FilterSentryEventsHelpText": "Фильтровать известные события ошибок пользователя, чтобы они не отправлялись в виде аналитики.",
|
||||||
|
"UnmappedFiles": "Несопоставленные папки",
|
||||||
|
"BuiltIn": "Встроенный",
|
||||||
|
"CurrentlyInstalled": "Установлено",
|
||||||
|
"DockerUpdater": "Обновите контейнер Docker, чтобы получить обновление",
|
||||||
|
"ExternalUpdater": "{appName} настроен на использование внешнего механизма обновления",
|
||||||
|
"FailedToFetchSettings": "Не удалось загрузить настройки",
|
||||||
|
"Install": "Установить",
|
||||||
|
"InstallLatest": "Установить последнюю версию",
|
||||||
|
"OnLatestVersion": "Последняя версия {appName} уже установлена",
|
||||||
|
"PreviouslyInstalled": "Ранее установленный",
|
||||||
|
"Script": "Скрипт",
|
||||||
|
"AptUpdater": "Использовать apt для установки обновления",
|
||||||
|
"FailedToFetchUpdates": "Не удалось загрузить обновления",
|
||||||
|
"InstallMajorVersionUpdate": "Установить обновление",
|
||||||
|
"InstallMajorVersionUpdateMessage": "Это обновление установит новую версию, которая может не поддерживаться вашей системой. Вы уверены, что хотите установить это обновление?",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "Пожалуйста, проверьте [{domain}]({url}) для получения дополнительной информации.",
|
||||||
|
"UpdateAppDirectlyLoadError": "Невозможно обновить {appName} напрямую,"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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ý"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -873,5 +873,15 @@
|
|||||||
"DisabledForLocalAddresses": "Inaktiverad för lokala adresser",
|
"DisabledForLocalAddresses": "Inaktiverad för lokala adresser",
|
||||||
"Enabled": "Aktiverad",
|
"Enabled": "Aktiverad",
|
||||||
"ApiKey": "API Nyckel",
|
"ApiKey": "API Nyckel",
|
||||||
"AuthForm": "Blanketter (inloggningssida)"
|
"AuthForm": "Blanketter (inloggningssida)",
|
||||||
|
"Clone": "Avsluta",
|
||||||
|
"AptUpdater": "Använd apt för att installera uppdateringen",
|
||||||
|
"BuiltIn": "Inbyggd",
|
||||||
|
"CurrentlyInstalled": "För närvarande installerad",
|
||||||
|
"DockerUpdater": "uppdatera dockerbehållaren för att ta emot uppdateringen",
|
||||||
|
"ExternalUpdater": "{appName} är konfigurerad för att använda en extern uppdateringsmekanism",
|
||||||
|
"InstallLatest": "Installera senaste",
|
||||||
|
"OnLatestVersion": "Den senaste versionen av {appName} är redan installerad",
|
||||||
|
"Script": "Skript",
|
||||||
|
"UpdateAppDirectlyLoadError": "Det går inte att uppdatera {appName} direkt,"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -642,5 +642,16 @@
|
|||||||
"DisabledForLocalAddresses": "ปิดใช้งานสำหรับที่อยู่ท้องถิ่น",
|
"DisabledForLocalAddresses": "ปิดใช้งานสำหรับที่อยู่ท้องถิ่น",
|
||||||
"Enabled": "เปิดใช้งาน",
|
"Enabled": "เปิดใช้งาน",
|
||||||
"AuthBasic": "พื้นฐาน (เบราว์เซอร์ป๊อปอัพ)",
|
"AuthBasic": "พื้นฐาน (เบราว์เซอร์ป๊อปอัพ)",
|
||||||
"AuthForm": "แบบฟอร์ม (หน้าเข้าสู่ระบบ)"
|
"AuthForm": "แบบฟอร์ม (หน้าเข้าสู่ระบบ)",
|
||||||
|
"BuiltIn": "สร้างขึ้นใน",
|
||||||
|
"Clone": "ปิด",
|
||||||
|
"CurrentlyInstalled": "ติดตั้งแล้ว",
|
||||||
|
"DockerUpdater": "อัปเดตคอนเทนเนอร์นักเทียบท่าเพื่อรับการอัปเดต",
|
||||||
|
"ExternalUpdater": "{appName} ถูกกำหนดค่าให้ใช้กลไกการอัพเดตภายนอก",
|
||||||
|
"InstallLatest": "ติดตั้งล่าสุด",
|
||||||
|
"Script": "สคริปต์",
|
||||||
|
"UpdateAppDirectlyLoadError": "ไม่สามารถอัปเดต {appName} ได้โดยตรง",
|
||||||
|
"UnmappedFiles": "โฟลเดอร์ที่ไม่ได้แมป",
|
||||||
|
"AptUpdater": "ใช้ apt เพื่อติดตั้งการอัปเดต",
|
||||||
|
"OnLatestVersion": "มีการติดตั้ง {appName} เวอร์ชันล่าสุดแล้ว"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
"Columns": "Sütunlar",
|
"Columns": "Sütunlar",
|
||||||
"DeleteIndexer": "Dizinleyiciyi Sil",
|
"DeleteIndexer": "Dizinleyiciyi 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": "Otomatik olarak farklı bir Yayın arayın ve indirmeye çalışın",
|
||||||
"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",
|
||||||
@@ -103,9 +103,9 @@
|
|||||||
"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}",
|
||||||
@@ -117,9 +117,9 @@
|
|||||||
"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 ilk 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,7 +166,7 @@
|
|||||||
"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",
|
||||||
@@ -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,7 +217,7 @@
|
|||||||
"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 yok",
|
||||||
"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 yok",
|
||||||
"NotificationTriggers": "Bildirim Tetikleyicileri",
|
"NotificationTriggers": "Bildirim Tetikleyicileri",
|
||||||
@@ -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ı",
|
||||||
@@ -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ı",
|
||||||
@@ -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": "Dizinleyicileri 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ı",
|
||||||
@@ -429,8 +429,8 @@
|
|||||||
"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",
|
||||||
@@ -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 dizinleyiciler 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 dizinleyiciler 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 dizinleyici hataları nedeniyle tüm rss uyumlu dizinleyiciler 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 dizinleyici hataları nedeniyle tüm arama yeteneğine sahip dizinleyiciler 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": "Dizinleyiciler ve yayımlama kısıtlamaları",
|
||||||
"IndexerStatusCheckAllClientMessage": "Hatalar nedeniyle tüm dizinleyiciler kullanılamıyor",
|
"IndexerStatusCheckAllClientMessage": "Hatalar nedeniyle tüm dizinleyiciler 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",
|
||||||
@@ -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",
|
||||||
@@ -678,7 +678,7 @@
|
|||||||
"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 dizinleyiciden 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": "Dizinleyicileri Yönet",
|
||||||
"NoHistoryBlocklist": "Geçmiş engellenenler listesi yok",
|
"NoHistoryBlocklist": "Geçmiş engellenenler listesi yok",
|
||||||
@@ -748,10 +748,10 @@
|
|||||||
"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": "Dizinleyici bayraklarını değiştirmek için tıklayın",
|
||||||
"IndexerFlags": "Dizinleyici Bayrakları",
|
"IndexerFlags": "Dizinleyici 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.",
|
||||||
@@ -824,5 +824,39 @@
|
|||||||
"AuthenticationRequiredPasswordHelpTextWarning": "Yeni şifre girin",
|
"AuthenticationRequiredPasswordHelpTextWarning": "Yeni şifre girin",
|
||||||
"AuthenticationRequiredUsernameHelpTextWarning": "Yeni kullanıcı adınızı girin",
|
"AuthenticationRequiredUsernameHelpTextWarning": "Yeni kullanıcı adınızı girin",
|
||||||
"AuthenticationRequiredWarning": "Kimlik doğrulaması olmadan uzaktan erişimi engellemek için, {appName}'da artık kimlik doğrulamanın etkinleştirilmesini gerektiriyor. İsteğe bağlı olarak yerel adresler için kimlik doğrulamayı devre dışı bırakabilirsiniz.",
|
"AuthenticationRequiredWarning": "Kimlik doğrulaması olmadan uzaktan erişimi engellemek için, {appName}'da artık kimlik doğrulamanın etkinleştirilmesini gerektiriyor. İsteğe bağlı olarak yerel adresler için kimlik doğrulamayı devre dışı bırakabilirsiniz.",
|
||||||
"DeleteSelected": "Seçileni Sil"
|
"DeleteSelected": "Seçileni Sil",
|
||||||
|
"UnmappedFiles": "Eşlenmemiş Klasörler",
|
||||||
|
"Series": "Diziler",
|
||||||
|
"SmartReplace": "Akıllı Değiştir",
|
||||||
|
"DashOrSpaceDashDependingOnName": "İsme bağlı olarak Dash veya Space Dash",
|
||||||
|
"CatalogNumber": "katalog numarası",
|
||||||
|
"AptUpdater": "Güncellemeyi yüklemek için apt'ı kullanın",
|
||||||
|
"BuiltIn": "Dahili",
|
||||||
|
"CurrentlyInstalled": "Şuan Kurulu",
|
||||||
|
"ExternalUpdater": "{appName}, harici bir güncelleme mekanizması kullanacak şekilde yapılandırıldı",
|
||||||
|
"FailedToFetchUpdates": "Güncellemeler getirilemedi",
|
||||||
|
"PreviouslyInstalled": "Daha Önce Kurulmuş",
|
||||||
|
"Script": "Komut Dosyası",
|
||||||
|
"UpdateAppDirectlyLoadError": "{appName} doğrudan güncellenemiyor,",
|
||||||
|
"DockerUpdater": "Güncellemeyi almak için docker konteynerini güncelleyin",
|
||||||
|
"Install": "Kur",
|
||||||
|
"InstallLatest": "En Sonu Yükle",
|
||||||
|
"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?",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "Daha fazla bilgi için lütfen [{domain}]({url}) adresini kontrol edin.",
|
||||||
|
"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"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -745,5 +745,15 @@
|
|||||||
"CountDownloadClientsSelected": "Вибрано {count} клієнтів завантажувача",
|
"CountDownloadClientsSelected": "Вибрано {count} клієнтів завантажувача",
|
||||||
"ReleaseProfiles": "профіль релізу",
|
"ReleaseProfiles": "профіль релізу",
|
||||||
"MinimumCustomFormatScoreHelpText": "Мінімальна оцінка користувацького формату, необхідна для обходу затримки для обраного протоколу",
|
"MinimumCustomFormatScoreHelpText": "Мінімальна оцінка користувацького формату, необхідна для обходу затримки для обраного протоколу",
|
||||||
"BypassIfAboveCustomFormatScore": "Пропустити, якщо перевищено оцінку користувацького формату"
|
"BypassIfAboveCustomFormatScore": "Пропустити, якщо перевищено оцінку користувацького формату",
|
||||||
|
"UnmappedFiles": "Невідповідні папки",
|
||||||
|
"AptUpdater": "Використовуйте apt для інсталяції оновлення",
|
||||||
|
"BuiltIn": "Вбудований",
|
||||||
|
"ExternalUpdater": "{appName} налаштовано на використання зовнішнього механізму оновлення",
|
||||||
|
"InstallLatest": "Встановити останній",
|
||||||
|
"Script": "Сценарій",
|
||||||
|
"UpdateAppDirectlyLoadError": "Неможливо оновити {appName} безпосередньо,",
|
||||||
|
"CurrentlyInstalled": "В даний час встановлено",
|
||||||
|
"DockerUpdater": "Оновіть контейнер docker, щоб отримати оновлення",
|
||||||
|
"OnLatestVersion": "Остання версія {appName} вже встановлена"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -644,5 +644,18 @@
|
|||||||
"AuthBasic": "Cơ bản (Cửa sổ bật lên trình duyệt)",
|
"AuthBasic": "Cơ bản (Cửa sổ bật lên trình duyệt)",
|
||||||
"AuthForm": "Biểu mẫu (Trang đăng nhập)",
|
"AuthForm": "Biểu mẫu (Trang đăng nhập)",
|
||||||
"DisabledForLocalAddresses": "Bị vô hiệu hóa đối với địa chỉ địa phương",
|
"DisabledForLocalAddresses": "Bị vô hiệu hóa đối với địa chỉ địa phương",
|
||||||
"Enabled": "Đã bật"
|
"Enabled": "Đã bật",
|
||||||
|
"Clone": "Đóng",
|
||||||
|
"UseSSL": "Dùng SSL",
|
||||||
|
"UnmappedFiles": "Thư mục chưa được ánh xạ",
|
||||||
|
"BuiltIn": "Được xây dựng trong",
|
||||||
|
"CurrentlyInstalled": "Mới cài đặt",
|
||||||
|
"DockerUpdater": "cập nhật vùng chứa docker để nhận bản cập nhật",
|
||||||
|
"InstallLatest": "Cài đặt mới nhất",
|
||||||
|
"OnLatestVersion": "Phiên bản mới nhất của {appName} đã được cài đặt",
|
||||||
|
"Script": "Kịch bản",
|
||||||
|
"UpdateAppDirectlyLoadError": "Không thể cập nhật {appName} trực tiếp,",
|
||||||
|
"AptUpdater": "Sử dụng apt để cài đặt bản cập nhật",
|
||||||
|
"ExternalUpdater": "{appName} được định cấu hình để sử dụng cơ chế cập nhật bên ngoài",
|
||||||
|
"WhySearchesCouldBeFailing": "Nhấp vào đây để tìm hiểu lý do tại sao tìm kiếm thất bại"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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": "尺寸限制",
|
||||||
@@ -1101,5 +1101,21 @@
|
|||||||
"SelectIndexerFlags": "选择索引器标志",
|
"SelectIndexerFlags": "选择索引器标志",
|
||||||
"SetIndexerFlags": "设置索引器标志",
|
"SetIndexerFlags": "设置索引器标志",
|
||||||
"LabelIsRequired": "需要标签",
|
"LabelIsRequired": "需要标签",
|
||||||
"NotificationsSettingsUpdateMapPathsFromHelpText": "{appName} 路径,当 {serviceName} 与 {appName} 对资源库路径的识别不一致时,可以使用此设置修改系列路径(需要`更新资源库`)"
|
"NotificationsSettingsUpdateMapPathsFromHelpText": "{appName} 路径,当 {serviceName} 与 {appName} 对资源库路径的识别不一致时,可以使用此设置修改系列路径(需要`更新资源库`)",
|
||||||
|
"AptUpdater": "使用apt安装更新",
|
||||||
|
"BuiltIn": "内置的",
|
||||||
|
"CurrentlyInstalled": "已安装",
|
||||||
|
"ExternalUpdater": "{appName}配置为使用外部更新机制",
|
||||||
|
"FailedToFetchUpdates": "获取更新失败",
|
||||||
|
"OnLatestVersion": "已安装最新版的{appName}",
|
||||||
|
"Script": "脚本",
|
||||||
|
"DockerUpdater": "更新Docker容器以更新应用",
|
||||||
|
"Install": "安装",
|
||||||
|
"InstallLatest": "安装最新版",
|
||||||
|
"InstallMajorVersionUpdate": "安装更新",
|
||||||
|
"InstallMajorVersionUpdateMessage": "此更新将安装新的主要版本,这可能与您的系统不兼容。您确定要安装此更新吗?",
|
||||||
|
"InstallMajorVersionUpdateMessageLink": "请查看 [{domain}]({url}) 以获取更多信息。",
|
||||||
|
"PreviouslyInstalled": "上次安装",
|
||||||
|
"UpdateAppDirectlyLoadError": "无法直接更新{appName},",
|
||||||
|
"FailedToFetchSettings": "设置同步失败"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"Analytics": "分析",
|
||||||
|
"About": "关于",
|
||||||
|
"Username": "用户名"
|
||||||
|
}
|
||||||
@@ -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,19 @@
|
|||||||
"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": "無法載入歷史記錄"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|||||||
@@ -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}")]
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NzbDrone.Common.Crypto;
|
using NzbDrone.Common.Crypto;
|
||||||
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
|
|
||||||
namespace Readarr.Http.Frontend.Mappers
|
namespace Readarr.Http.Frontend.Mappers
|
||||||
@@ -28,6 +30,11 @@ namespace Readarr.Http.Frontend.Mappers
|
|||||||
return resourceUrl;
|
return resourceUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!RuntimeInfo.IsProduction)
|
||||||
|
{
|
||||||
|
return resourceUrl + "?t=" + DateTime.UtcNow.Ticks;
|
||||||
|
}
|
||||||
|
|
||||||
var mapper = _diskMappers.Single(m => m.CanHandle(resourceUrl));
|
var mapper = _diskMappers.Single(m => m.CanHandle(resourceUrl));
|
||||||
var pathToFile = mapper.Map(resourceUrl);
|
var pathToFile = mapper.Map(resourceUrl);
|
||||||
var hash = _hashProvider.ComputeMd5(pathToFile).ToBase64();
|
var hash = _hashProvider.ComputeMd5(pathToFile).ToBase64();
|
||||||
|
|||||||
Reference in New Issue
Block a user