mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2026-04-17 21:44:48 -04:00
Compare commits
14 Commits
v1.12.1.42
...
v1.13.0.42
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cfdf88a1e2 | ||
|
|
70a5dae293 | ||
|
|
b53f8d4552 | ||
|
|
9668e91b21 | ||
|
|
49857693c0 | ||
|
|
850315ad1c | ||
|
|
86124d4319 | ||
|
|
4f28d583d7 | ||
|
|
01f3930211 | ||
|
|
7c7114c87a | ||
|
|
ef8e6d774b | ||
|
|
2960fc37d9 | ||
|
|
8bddf753bb | ||
|
|
cff24b3fd4 |
@@ -9,7 +9,7 @@ variables:
|
||||
testsFolder: './_tests'
|
||||
yarnCacheFolder: $(Pipeline.Workspace)/.yarn
|
||||
nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages
|
||||
majorVersion: '1.12.1'
|
||||
majorVersion: '1.13.0'
|
||||
minorVersion: $[counter('minorVersion', 1)]
|
||||
prowlarrVersion: '$(majorVersion).$(minorVersion)'
|
||||
buildName: '$(Build.SourceBranchName).$(prowlarrVersion)'
|
||||
@@ -17,7 +17,7 @@ variables:
|
||||
sentryUrl: 'https://sentry.servarr.com'
|
||||
dotnetVersion: '6.0.417'
|
||||
nodeVersion: '16.X'
|
||||
innoVersion: '6.2.0'
|
||||
innoVersion: '6.2.2'
|
||||
windowsImage: 'windows-2022'
|
||||
linuxImage: 'ubuntu-20.04'
|
||||
macImage: 'macOS-11'
|
||||
@@ -1206,6 +1206,7 @@ stages:
|
||||
- stage: Report_Out
|
||||
dependsOn:
|
||||
- Analyze
|
||||
- Installer
|
||||
- Unit_Test
|
||||
- Integration
|
||||
- Automation
|
||||
|
||||
2
build.sh
2
build.sh
@@ -254,7 +254,7 @@ InstallInno()
|
||||
ProgressStart "Installing portable Inno Setup"
|
||||
|
||||
rm -rf _inno
|
||||
curl -s --output innosetup.exe "https://files.jrsoftware.org/is/6/innosetup-${INNOVERSION:-6.2.0}.exe"
|
||||
curl -s --output innosetup.exe "https://files.jrsoftware.org/is/6/innosetup-${INNOVERSION:-6.2.2}.exe"
|
||||
mkdir _inno
|
||||
./innosetup.exe //portable=1 //silent //currentuser //dir=.\\_inno
|
||||
rm innosetup.exe
|
||||
|
||||
@@ -30,22 +30,24 @@ function CustomFiltersModalContent(props) {
|
||||
|
||||
<ModalBody>
|
||||
{
|
||||
customFilters.map((customFilter) => {
|
||||
return (
|
||||
<CustomFilter
|
||||
key={customFilter.id}
|
||||
id={customFilter.id}
|
||||
label={customFilter.label}
|
||||
filters={customFilter.filters}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
isDeleting={isDeleting}
|
||||
deleteError={deleteError}
|
||||
dispatchSetFilter={dispatchSetFilter}
|
||||
dispatchDeleteCustomFilter={dispatchDeleteCustomFilter}
|
||||
onEditPress={onEditCustomFilter}
|
||||
/>
|
||||
);
|
||||
})
|
||||
customFilters
|
||||
.sort((a, b) => a.label.localeCompare(b.label))
|
||||
.map((customFilter) => {
|
||||
return (
|
||||
<CustomFilter
|
||||
key={customFilter.id}
|
||||
id={customFilter.id}
|
||||
label={customFilter.label}
|
||||
filters={customFilter.filters}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
isDeleting={isDeleting}
|
||||
deleteError={deleteError}
|
||||
dispatchSetFilter={dispatchSetFilter}
|
||||
dispatchDeleteCustomFilter={dispatchDeleteCustomFilter}
|
||||
onEditPress={onEditCustomFilter}
|
||||
/>
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
<div className={styles.addButtonContainer}>
|
||||
|
||||
@@ -40,18 +40,26 @@ class FilterMenuContent extends Component {
|
||||
}
|
||||
|
||||
{
|
||||
customFilters.map((filter) => {
|
||||
return (
|
||||
<FilterMenuItem
|
||||
key={filter.id}
|
||||
filterKey={filter.id}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
onPress={onFilterSelect}
|
||||
>
|
||||
{filter.label}
|
||||
</FilterMenuItem>
|
||||
);
|
||||
})
|
||||
customFilters.length > 0 ?
|
||||
<MenuItemSeparator /> :
|
||||
null
|
||||
}
|
||||
|
||||
{
|
||||
customFilters
|
||||
.sort((a, b) => a.label.localeCompare(b.label))
|
||||
.map((filter) => {
|
||||
return (
|
||||
<FilterMenuItem
|
||||
key={filter.id}
|
||||
filterKey={filter.id}
|
||||
selectedFilterKey={selectedFilterKey}
|
||||
onPress={onFilterSelect}
|
||||
>
|
||||
{filter.label}
|
||||
</FilterMenuItem>
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
@@ -92,6 +92,10 @@ namespace NzbDrone.Common.Http
|
||||
{
|
||||
data = new XElement("base64", Convert.ToBase64String(bytes));
|
||||
}
|
||||
else if (value is Dictionary<string, string> d)
|
||||
{
|
||||
data = new XElement("struct", d.Select(p => new XElement("member", new XElement("name", p.Key), new XElement("value", p.Value))));
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException($"Unhandled argument type {value.GetType().Name}");
|
||||
|
||||
@@ -40,7 +40,7 @@ namespace NzbDrone.Core.Test.IndexerTests.GazelleGamesTests
|
||||
|
||||
var releases = (await Subject.Fetch(new BasicSearchCriteria { Categories = new[] { 2000 } })).Releases;
|
||||
|
||||
releases.Should().HaveCount(1463);
|
||||
releases.Should().HaveCount(1462);
|
||||
releases.First().Should().BeOfType<TorrentInfo>();
|
||||
|
||||
var torrentInfo = releases.First() as TorrentInfo;
|
||||
|
||||
@@ -252,11 +252,11 @@ namespace NzbDrone.Core.Applications
|
||||
if (webException.Message.Contains("502") || webException.Message.Contains("503") ||
|
||||
webException.Message.Contains("timed out"))
|
||||
{
|
||||
_logger.Warn("{0} server is currently unavailable. {1}", this, webException.Message);
|
||||
_logger.Warn(webException, "{0} server is currently unavailable. {1}", this, webException.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warn("{0} {1}", this, webException.Message);
|
||||
_logger.Warn(webException, "{0} {1}", this, webException.Message);
|
||||
}
|
||||
}
|
||||
catch (TooManyRequestsException ex)
|
||||
@@ -264,12 +264,12 @@ namespace NzbDrone.Core.Applications
|
||||
var minimumBackOff = ex.RetryAfter != TimeSpan.Zero ? ex.RetryAfter : TimeSpan.FromHours(1);
|
||||
_applicationStatusService.RecordFailure(application.Definition.Id, minimumBackOff);
|
||||
|
||||
_logger.Warn("API Request Limit reached for {0}", this);
|
||||
_logger.Warn(ex, "API Request Limit reached for {0}", this);
|
||||
}
|
||||
catch (HttpException ex)
|
||||
{
|
||||
_applicationStatusService.RecordFailure(application.Definition.Id);
|
||||
_logger.Warn("{0} {1}", this, ex.Message);
|
||||
_logger.Warn(ex, "{0} {1}", this, ex.Message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -301,11 +301,11 @@ namespace NzbDrone.Core.Applications
|
||||
if (webException.Message.Contains("502") || webException.Message.Contains("503") ||
|
||||
webException.Message.Contains("timed out"))
|
||||
{
|
||||
_logger.Warn("{0} server is currently unavailable. {1}", this, webException.Message);
|
||||
_logger.Warn(webException, "{0} server is currently unavailable. {1}", this, webException.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warn("{0} {1}", this, webException.Message);
|
||||
_logger.Warn(webException, "{0} {1}", this, webException.Message);
|
||||
}
|
||||
}
|
||||
catch (TooManyRequestsException ex)
|
||||
@@ -313,12 +313,12 @@ namespace NzbDrone.Core.Applications
|
||||
var minimumBackOff = ex.RetryAfter != TimeSpan.Zero ? ex.RetryAfter : TimeSpan.FromHours(1);
|
||||
_applicationStatusService.RecordFailure(application.Definition.Id, minimumBackOff);
|
||||
|
||||
_logger.Warn("API Request Limit reached for {0}", this);
|
||||
_logger.Warn(ex, "API Request Limit reached for {0}", this);
|
||||
}
|
||||
catch (HttpException ex)
|
||||
{
|
||||
_applicationStatusService.RecordFailure(application.Definition.Id);
|
||||
_logger.Warn("{0} {1}", this, ex.Message);
|
||||
_logger.Warn(ex, "{0} {1}", this, ex.Message);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -227,7 +227,7 @@ namespace NzbDrone.Core.Configuration
|
||||
return urlBase;
|
||||
}
|
||||
|
||||
return "/" + urlBase.Trim('/').ToLower();
|
||||
return "/" + urlBase;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
using System.Xml.XPath;
|
||||
using NzbDrone.Common.Extensions;
|
||||
using NzbDrone.Common.Http;
|
||||
using NzbDrone.Core.Download.Extensions;
|
||||
|
||||
@@ -95,8 +96,14 @@ namespace NzbDrone.Core.Download.Clients.Aria2
|
||||
|
||||
public string AddUri(Aria2Settings settings, string magnet)
|
||||
{
|
||||
var response = ExecuteRequest(settings, "aria2.addUri", GetToken(settings), new List<string> { magnet });
|
||||
var options = new Dictionary<string, string>();
|
||||
|
||||
if (settings.Directory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
options.Add("dir", settings.Directory);
|
||||
}
|
||||
|
||||
var response = ExecuteRequest(settings, "aria2.addUri", GetToken(settings), new List<string> { magnet }, options);
|
||||
var gid = response.GetStringResponse();
|
||||
|
||||
return gid;
|
||||
@@ -104,8 +111,16 @@ namespace NzbDrone.Core.Download.Clients.Aria2
|
||||
|
||||
public string AddTorrent(Aria2Settings settings, byte[] torrent)
|
||||
{
|
||||
var response = ExecuteRequest(settings, "aria2.addTorrent", GetToken(settings), torrent);
|
||||
// Aria2's second parameter is an array of URIs and needs to be sent if options are provided, this satisfies that requirement.
|
||||
var emptyListOfUris = new List<string>();
|
||||
var options = new Dictionary<string, string>();
|
||||
|
||||
if (settings.Directory.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
options.Add("dir", settings.Directory);
|
||||
}
|
||||
|
||||
var response = ExecuteRequest(settings, "aria2.addTorrent", GetToken(settings), torrent, emptyListOfUris, options);
|
||||
var gid = response.GetStringResponse();
|
||||
|
||||
return gid;
|
||||
|
||||
@@ -41,6 +41,9 @@ namespace NzbDrone.Core.Download.Clients.Aria2
|
||||
[FieldDefinition(4, Label = "Secret token", Type = FieldType.Password, Privacy = PrivacyLevel.Password)]
|
||||
public string SecretToken { get; set; }
|
||||
|
||||
[FieldDefinition(5, Label = "Directory", Type = FieldType.Textbox, HelpText = "DownloadClientAriaSettingsDirectoryHelpText")]
|
||||
public string Directory { get; set; }
|
||||
|
||||
public NzbDroneValidationResult Validate()
|
||||
{
|
||||
return new NzbDroneValidationResult(Validator.Validate(this));
|
||||
|
||||
@@ -171,9 +171,7 @@ namespace NzbDrone.Core.Download
|
||||
}
|
||||
catch (FormatException ex)
|
||||
{
|
||||
_logger.Error(ex, "Failed to parse magnetlink for release '{0}': '{1}'", release.Title, magnetUrl);
|
||||
|
||||
return null;
|
||||
throw new ReleaseDownloadException("Failed to parse magnetlink for release '{0}': '{1}'", ex, release.Title, magnetUrl);
|
||||
}
|
||||
|
||||
if (hash != null)
|
||||
|
||||
@@ -38,3 +38,8 @@ public class FileListTorrent
|
||||
[JsonPropertyName("small_description")]
|
||||
public string SmallDescription { get; set; }
|
||||
}
|
||||
|
||||
public class FileListErrorResponse
|
||||
{
|
||||
public string Error { get; set; }
|
||||
}
|
||||
|
||||
@@ -28,9 +28,14 @@ public class FileListParser : IParseIndexerResponse
|
||||
throw new IndexerException(indexerResponse, "Unexpected response status {0} code from indexer request", indexerResponse.HttpResponse.StatusCode);
|
||||
}
|
||||
|
||||
if (indexerResponse.Content.StartsWith("{\"error\"") && STJson.TryDeserialize<FileListErrorResponse>(indexerResponse.Content, out var errorResponse))
|
||||
{
|
||||
throw new IndexerException(indexerResponse, "Unexpected response from indexer request: {0}", errorResponse.Error);
|
||||
}
|
||||
|
||||
if (!indexerResponse.HttpResponse.Headers.ContentType.Contains(HttpAccept.Json.Value))
|
||||
{
|
||||
throw new IndexerException(indexerResponse, $"Unexpected response header {indexerResponse.HttpResponse.Headers.ContentType} from indexer request, expected {HttpAccept.Json.Value}");
|
||||
throw new IndexerException(indexerResponse, "Unexpected response header {0} from indexer request, expected {1}", indexerResponse.HttpResponse.Headers.ContentType, HttpAccept.Json.Value);
|
||||
}
|
||||
|
||||
var releaseInfos = new List<ReleaseInfo>();
|
||||
|
||||
@@ -394,7 +394,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
|
||||
var torrents = groupTorrents
|
||||
.ToObject<Dictionary<int, GazelleGamesTorrent>>(JsonSerializer.Create(Json.GetSerializerSettings()))
|
||||
.Where(t => t.Value.TorrentType != "Link")
|
||||
.Where(t => t.Value.TorrentType.ToUpperInvariant() == "TORRENT")
|
||||
.ToList();
|
||||
|
||||
var categories = group.Value.Artists
|
||||
@@ -470,6 +470,11 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
flags.AddIfNotNull(torrent.Region);
|
||||
flags.AddIfNotNull(torrent.Miscellaneous);
|
||||
|
||||
if (torrent.Dupable == 1)
|
||||
{
|
||||
flags.Add("Trumpable");
|
||||
}
|
||||
|
||||
flags = flags.Where(x => x.IsNotNullOrWhiteSpace()).ToList();
|
||||
|
||||
if (flags.Any())
|
||||
@@ -477,6 +482,11 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
title += $" [{string.Join(" / ", flags)}]";
|
||||
}
|
||||
|
||||
if (torrent.GameDoxType.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
title += $" [{torrent.GameDoxType.Trim()}]";
|
||||
}
|
||||
|
||||
return title;
|
||||
}
|
||||
|
||||
@@ -570,6 +580,7 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
public string ReleaseTitle { get; set; }
|
||||
public string Miscellaneous { get; set; }
|
||||
public int Scene { get; set; }
|
||||
public int Dupable { get; set; }
|
||||
public DateTime Time { get; set; }
|
||||
public string TorrentType { get; set; }
|
||||
public int FileCount { get; set; }
|
||||
@@ -580,6 +591,9 @@ namespace NzbDrone.Core.Indexers.Definitions
|
||||
public GazelleGamesFreeTorrent FreeTorrent { get; set; }
|
||||
public bool PersonalFL { get; set; }
|
||||
public bool LowSeedFL { get; set; }
|
||||
|
||||
[JsonProperty("GameDOXType")]
|
||||
public string GameDoxType { get; set; }
|
||||
}
|
||||
|
||||
public class GazelleGamesUserResponse
|
||||
|
||||
@@ -388,11 +388,11 @@ namespace NzbDrone.Core.Indexers
|
||||
if (webException.Message.Contains("502") || webException.Message.Contains("503") ||
|
||||
webException.Message.Contains("504") || webException.Message.Contains("timed out"))
|
||||
{
|
||||
_logger.Warn("{0} server is currently unavailable. {1} {2}", this, url, webException.Message);
|
||||
_logger.Warn(webException, "{0} server is currently unavailable. {1} {2}", this, url, webException.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warn("{0} {1} {2}", this, url, webException.Message);
|
||||
_logger.Warn(webException, "{0} {1} {2}", this, url, webException.Message);
|
||||
}
|
||||
}
|
||||
catch (TooManyRequestsException ex)
|
||||
@@ -402,7 +402,7 @@ namespace NzbDrone.Core.Indexers
|
||||
var retryTime = ex.RetryAfter != TimeSpan.Zero ? ex.RetryAfter : minimumBackoff;
|
||||
|
||||
_indexerStatusService.RecordFailure(Definition.Id, retryTime);
|
||||
_logger.Warn("Request Limit reached for {0}. Disabled for {1}", this, retryTime);
|
||||
_logger.Warn(ex, "Request Limit reached for {0}. Disabled for {1}", this, retryTime);
|
||||
}
|
||||
catch (HttpException ex)
|
||||
{
|
||||
@@ -411,18 +411,18 @@ namespace NzbDrone.Core.Indexers
|
||||
|
||||
if (ex.Response.HasHttpServerError)
|
||||
{
|
||||
_logger.Warn("Unable to connect to {0} at [{1}]. Indexer's server is unavailable. Try again later. {2}", this, url, ex.Message);
|
||||
_logger.Warn(ex, "Unable to connect to {0} at [{1}]. Indexer's server is unavailable. Try again later. {2}", this, url, ex.Message);
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Warn("{0} {1}", this, ex.Message);
|
||||
_logger.Warn(ex, "{0} {1}", this, ex.Message);
|
||||
}
|
||||
}
|
||||
catch (RequestLimitReachedException ex)
|
||||
{
|
||||
result.Queries.Add(new IndexerQueryResult { Response = ex.Response.HttpResponse });
|
||||
_indexerStatusService.RecordFailure(Definition.Id, minimumBackoff);
|
||||
_logger.Warn("Request Limit reached for {0}. Disabled for {1}", this, minimumBackoff);
|
||||
_logger.Warn(ex, "Request Limit reached for {0}. Disabled for {1}", this, minimumBackoff);
|
||||
}
|
||||
catch (IndexerAuthException ex)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
"ScriptPath": "Camí de l'script",
|
||||
"Search": "Cerca",
|
||||
"Files": "Fitxers",
|
||||
"SettingsEnableColorImpairedModeHelpText": "Estil alternat per permetre als usuaris amb problemes de color distingir millor la informació codificada per colors",
|
||||
"SettingsEnableColorImpairedModeHelpText": "Estil alternat per a permetre als usuaris amb problemes de color distingir millor la informació codificada per colors",
|
||||
"TagIsNotUsedAndCanBeDeleted": "L'etiqueta no està en ús i es pot suprimir",
|
||||
"TagsSettingsSummary": "Consulta totes les etiquetes i com s'utilitzen. Les etiquetes no utilitzades es poden eliminar",
|
||||
"Tasks": "Tasques",
|
||||
@@ -37,7 +37,7 @@
|
||||
"Analytics": "Anàlisi",
|
||||
"ApiKey": "Clau API",
|
||||
"AppDataDirectory": "Directori AppData",
|
||||
"AppDataLocationHealthCheckMessage": "No es podrà actualitzar per evitar que s'eliminin AppData a l'actualització",
|
||||
"AppDataLocationHealthCheckMessage": "No es podrà actualitzar per a evitar que s'eliminin AppData a l'actualització",
|
||||
"Authentication": "Autenticació",
|
||||
"Torrents": "Torrents",
|
||||
"Type": "Tipus",
|
||||
@@ -78,7 +78,7 @@
|
||||
"Reddit": "Reddit",
|
||||
"System": "Sistema",
|
||||
"Username": "Nom d'usuari",
|
||||
"Duration": "durada",
|
||||
"Duration": "Durada",
|
||||
"EditIndexer": "Edita l'indexador",
|
||||
"EnableAutomaticSearch": "Activa la cerca automàtica",
|
||||
"Enabled": "Habilitat",
|
||||
@@ -251,7 +251,7 @@
|
||||
"Level": "Nivell",
|
||||
"LogFiles": "Fitxers de registre",
|
||||
"Logging": "Registre",
|
||||
"MappedDrivesRunningAsService": "Les unitats de xarxa assignades no estan disponibles quan s'executen com a servei de Windows. Si us plau, consulteu les PMF per obtenir més informació",
|
||||
"MappedDrivesRunningAsService": "Les unitats de xarxa assignades no estan disponibles quan s'executen com a servei de Windows. Si us plau, consulteu les PMF per a obtenir més informació",
|
||||
"Mechanism": "Mecanisme",
|
||||
"MIA": "MIA",
|
||||
"Wiki": "Wiki",
|
||||
@@ -300,7 +300,7 @@
|
||||
"View": "Visualitza",
|
||||
"Yesterday": "Ahir",
|
||||
"ApplicationStatusCheckSingleClientMessage": "Llistes no disponibles a causa d'errors: {0}",
|
||||
"AnalyticsEnabledHelpText": "Envieu informació anònima d'ús i errors als servidors de {appName}. Això inclou informació sobre el vostre navegador, quines pàgines {appName} WebUI feu servir, informes d'errors, així com el sistema operatiu i la versió de l'entorn d'execució. Utilitzarem aquesta informació per prioritzar les funcions i les correccions d'errors.",
|
||||
"AnalyticsEnabledHelpText": "Envieu informació anònima d'ús i errors als servidors de {appName}. Això inclou informació sobre el vostre navegador, quines pàgines {appName} WebUI feu servir, informes d'errors, així com el sistema operatiu i la versió de l'entorn d'execució. Utilitzarem aquesta informació per a prioritzar les funcions i les correccions d'errors.",
|
||||
"HistoryCleanupDaysHelpTextWarning": "Els fitxers de la paperera de reciclatge més antics que el nombre de dies seleccionat es netejaran automàticament",
|
||||
"UnableToAddANewAppProfilePleaseTryAgain": "No es pot afegir un perfil de qualitat nou, torneu-ho a provar.",
|
||||
"BackupFolderHelpText": "Els camins relatius estaran sota el directori AppData de {appName}",
|
||||
@@ -312,11 +312,11 @@
|
||||
"Application": "Aplicacions",
|
||||
"Applications": "Aplicacions",
|
||||
"ApplicationStatusCheckAllClientMessage": "Totes les llistes no estan disponibles a causa d'errors",
|
||||
"AuthenticationMethodHelpText": "Es requereix nom d'usuari i contrasenya per accedir a {appName}",
|
||||
"AuthenticationMethodHelpText": "Es requereix nom d'usuari i contrasenya per a accedir a {appName}",
|
||||
"ApplicationLongTermStatusCheckAllClientMessage": "Tots els indexadors no estan disponibles a causa d'errors durant més de 6 hores",
|
||||
"ApplicationLongTermStatusCheckSingleClientMessage": "Els indexadors no estan disponibles a causa d'errors durant més de 6 hores: {0}",
|
||||
"BindAddressHelpText": "Adreça IP vàlida, localhost o '*' per a totes les interfícies",
|
||||
"BranchUpdate": "Branca que s'utilitza per actualitzar {appName}",
|
||||
"BranchUpdate": "Branca que s'utilitza per a actualitzar {appName}",
|
||||
"Connect": "Notificacions",
|
||||
"DeleteApplicationMessageText": "Esteu segur que voleu suprimir la notificació '{0}'?",
|
||||
"DeleteIndexerProxyMessageText": "Esteu segur que voleu suprimir la llista '{0}'?",
|
||||
@@ -351,7 +351,7 @@
|
||||
"ApplyTagsHelpTextRemove": "Eliminar: elimina les etiquetes introduïdes",
|
||||
"DeleteSelectedApplicationsMessageText": "Esteu segur que voleu suprimir l'indexador '{0}'?",
|
||||
"Label": "Etiqueta",
|
||||
"ApplyTagsHelpTextReplace": "Substitució: substituïu les etiquetes per les etiquetes introduïdes (no introduïu cap etiqueta per esborrar totes les etiquetes)",
|
||||
"ApplyTagsHelpTextReplace": "Substitució: substituïu les etiquetes per les etiquetes introduïdes (no introduïu cap etiqueta per a esborrar totes les etiquetes)",
|
||||
"DeleteSelectedDownloadClients": "Suprimeix el(s) client(s) de baixada",
|
||||
"Genre": "Gèneres",
|
||||
"DeleteSelectedDownloadClientsMessageText": "Esteu segur que voleu suprimir {count} client(s) de baixada seleccionat(s)?",
|
||||
@@ -364,7 +364,7 @@
|
||||
"Year": "Any",
|
||||
"UpdateAvailable": "Nova actualització disponible",
|
||||
"ConnectionLostReconnect": "{appName} intentarà connectar-se automàticament, o podeu fer clic a recarregar.",
|
||||
"ConnectionLostToBackend": "{appName} ha perdut la connexió amb el backend i s'haurà de tornar a carregar per restaurar la funcionalitat.",
|
||||
"ConnectionLostToBackend": "{appName} ha perdut la connexió amb el backend i s'haurà de tornar a carregar per a restaurar la funcionalitat.",
|
||||
"RecentChanges": "Canvis recents",
|
||||
"WhatsNew": "Que hi ha de nou?",
|
||||
"minutes": "Minuts",
|
||||
@@ -381,7 +381,7 @@
|
||||
"AuthenticationRequired": "Autenticació necessària",
|
||||
"CountDownloadClientsSelected": "{count} client(s) de baixada seleccionat(s)",
|
||||
"NoDownloadClientsFound": "No s'han trobat clients de baixada",
|
||||
"AuthenticationRequiredWarning": "Per evitar l'accés remot sense autenticació, ara {appName} requereix que l'autenticació estigui activada. Opcionalment, podeu desactivar l'autenticació des d'adreces locals.",
|
||||
"AuthenticationRequiredWarning": "Per a evitar l'accés remot sense autenticació, ara {appName} requereix que l'autenticació estigui activada. Opcionalment, podeu desactivar l'autenticació des d'adreces locals.",
|
||||
"AppUpdatedVersion": "{appName} s'ha actualitzat a la versió `{version}`, per tal d'obtenir els darrers canvis, haureu de tornar a carregar {appName}",
|
||||
"AppUpdated": "{appName} Actualitzada",
|
||||
"ApplyChanges": "Aplica els canvis",
|
||||
@@ -423,5 +423,7 @@
|
||||
"AddApplicationImplementation": "Afegeix una condició - {implementationName}",
|
||||
"AddIndexerProxyImplementation": "Afegeix un indexador - {implementationName}",
|
||||
"Category": "Categoria",
|
||||
"Clone": "Clona"
|
||||
"Clone": "Clona",
|
||||
"Yes": "Si",
|
||||
"No": "No"
|
||||
}
|
||||
|
||||
@@ -171,6 +171,7 @@
|
||||
"Docker": "Docker",
|
||||
"Donations": "Donations",
|
||||
"DownloadClient": "Download Client",
|
||||
"DownloadClientAriaSettingsDirectoryHelpText": "Optional location to put downloads in, leave blank to use the default Aria2 location",
|
||||
"DownloadClientCategory": "Download Client Category",
|
||||
"DownloadClientPriorityHelpText": "Prioritize multiple Download Clients. Round-Robin is used for clients with the same priority.",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Content Layout",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"IndexerProxyStatusCheckSingleClientMessage": "Välityspalvelimet eivät ole käytettävissä virheiden vuoksi: {0}",
|
||||
"Logging": "Kirjaus",
|
||||
"Logging": "Lokikirjaus",
|
||||
"LogLevel": "Lokikirjauksen laajuus",
|
||||
"MovieIndexScrollTop": "Elokuvakirjasto: vieritä ylös",
|
||||
"Apply": "Käytä",
|
||||
@@ -25,11 +25,11 @@
|
||||
"SettingsTimeFormat": "Kellonajan esitys",
|
||||
"Message": "Viesti",
|
||||
"Seeders": "Jakajat",
|
||||
"TestAll": "Testaa kaikki",
|
||||
"TestAll": "Kaikkien testaus",
|
||||
"AddDownloadClient": "Lisää lataustyökalu",
|
||||
"CustomFilters": "Omat suodattimet",
|
||||
"DeleteTag": "Poista tunniste",
|
||||
"EnableRss": "RSS-syöte",
|
||||
"EnableRss": "Käytä RSS-syötettä",
|
||||
"Filter": "Suodatus",
|
||||
"Fixed": "Korjattu",
|
||||
"FocusSearchBox": "Kohdista hakukenttä",
|
||||
@@ -40,12 +40,12 @@
|
||||
"New": "Uutta",
|
||||
"PageSizeHelpText": "Sivukohtainen kohdemäärä.",
|
||||
"Proxy": "Välityspalvelin",
|
||||
"ProxyBypassFilterHelpText": "Käytä erottimena ',' ja '*.' jokerimerkkinä aliverkkotunnuksille (esim. www.esimerkki.fi,*.esimerkki.fi)",
|
||||
"ProxyBypassFilterHelpText": "Käytä aliverkkotunnusten erottimena pilkkua (,) ja jokerimerkkinä tähteä ja pistettä (*.). Esimerkkejä: www.esimerkki.fi,*.esimerkki.fi.",
|
||||
"Reddit": "Reddit",
|
||||
"Refresh": "Päivitä",
|
||||
"RefreshMovie": "Päivitä elokuva",
|
||||
"ReleaseBranchCheckOfficialBranchMessage": "\"{0}\" ei ole kelvollinen {appName}-julkaisuhaara ja tämän vuoksi et saa päivityksiä.",
|
||||
"RestartRequiredHelpTextWarning": "Käyttöönotto vaatii uudelleenkäynnistyksen",
|
||||
"RestartRequiredHelpTextWarning": "Käyttöönotto vaatii {appName}in uudelleenkäynnistyksen.",
|
||||
"Result": "Tulos",
|
||||
"Settings": "Asetukset",
|
||||
"SettingsLongDateFormat": "Pitkän päiväyksen esitys",
|
||||
@@ -83,7 +83,7 @@
|
||||
"InteractiveSearch": "Manuaalihaku",
|
||||
"Interval": "Ajoitus",
|
||||
"KeyboardShortcuts": "Pikanäppäimet",
|
||||
"LastWriteTime": "Edellinen tallennusaika",
|
||||
"LastWriteTime": "Viimeksi tallennettu",
|
||||
"LogFiles": "Lokitiedostot",
|
||||
"LogLevelTraceHelpTextWarning": "Jäljityskirjausta tulee käyttää vain tilapäisesti.",
|
||||
"Logs": "Lokitiedot",
|
||||
@@ -97,9 +97,9 @@
|
||||
"ProxyCheckBadRequestMessage": "Välityspalvelintesti epäonnistui. Tilakoodi: {0}.",
|
||||
"ProxyCheckFailedToTestMessage": "Välityspalvelintesti epäonnistui: {0}",
|
||||
"ProxyCheckResolveIpMessage": "Määritetyn välityspalvelimen \"{0}\" IP-osoitteen selvitys epäonnistui.",
|
||||
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee syöttää vain tarvittaessa. Muussa tapauksessa jätä kentät tyhjiksi.",
|
||||
"ProxyPasswordHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
|
||||
"ProxyType": "Välityspalvelimen tyyppi",
|
||||
"ProxyUsernameHelpText": "Käyttäjätunnus ja salasana tulee syöttää vain tarvittaessa. Muussa tapauksessa jätä kentät tyhjiksi.",
|
||||
"ProxyUsernameHelpText": "Käyttäjätunnus ja salasana tulee täyttää vain tarvittaessa. Mikäli näitä ei ole, tulee kentät jättää tyhjiksi.",
|
||||
"Queue": "Jono",
|
||||
"ReadTheWikiForMoreInformation": "Wikistä löydät lisää tietoja",
|
||||
"ReleaseStatus": "Julkaisutila",
|
||||
@@ -122,8 +122,8 @@
|
||||
"TagIsNotUsedAndCanBeDeleted": "Tunnistetta ei ole määritetty millekään kohteelle, joten sen voi poistaa.",
|
||||
"TagsSettingsSummary": "Täältä näet kaikki tunnisteet käyttökohteineen ja voit poistaa käyttämättömät tunnisteet.",
|
||||
"Tasks": "Tehtävät",
|
||||
"Test": "Kokeile",
|
||||
"TestAllClients": "Testaa kaikki lataustyökalut",
|
||||
"Test": "Testaa",
|
||||
"TestAllClients": "Lataustyökalujen testaus",
|
||||
"Time": "Aika",
|
||||
"Title": "Nimike",
|
||||
"Tomorrow": "Huomenna",
|
||||
@@ -258,7 +258,7 @@
|
||||
"Error": "Virhe",
|
||||
"ErrorLoadingContents": "Virhe ladattaessa sisältöjä",
|
||||
"Events": "Tapahtumat",
|
||||
"ExistingTag": "Olemassa oleva tunniste",
|
||||
"ExistingTag": "Tunniste on jo olemassa",
|
||||
"Failed": "Epäonnistui",
|
||||
"Filename": "Tiedostonimi",
|
||||
"Files": "Tiedostot",
|
||||
@@ -292,7 +292,7 @@
|
||||
"NoUpdatesAreAvailable": "Päivityksiä ei ole saatavilla",
|
||||
"OAuthPopupMessage": "Selaimesi estää ponnahdukset",
|
||||
"Ok": "Ok",
|
||||
"OnHealthIssueHelpText": "Kuntoon liittyvä ongelma",
|
||||
"OnHealthIssueHelpText": "Vakausongelmat",
|
||||
"OpenBrowserOnStart": "Avaa selain käynnistettäessä",
|
||||
"OpenThisModal": "Avaa tämä ikkuna",
|
||||
"Options": "Asetukset",
|
||||
@@ -328,11 +328,11 @@
|
||||
"UnableToLoadAppProfiles": "Sovellusprofiilien lataus epäonnistui",
|
||||
"AppProfileSelectHelpText": "Sovellusprofiilieilla määritetään tietolähteelle sovellussynkronoinnin yhteydessä aktivoitavat hakutavat (RSS/automaatti/manuaali).",
|
||||
"IndexerQuery": "Tietolähteen kysely",
|
||||
"IndexerRss": "Tietolähteen RSS-syöte",
|
||||
"IndexerRss": "Tietolähteen RSS",
|
||||
"SearchIndexers": "Etsi tietolähteistä",
|
||||
"AddRemoveOnly": "Ainoastaan lisää/poista",
|
||||
"IndexerVipCheckExpiredClientMessage": "Tietolähteen VIP-edut ovat erääntyneet: {0}",
|
||||
"MaintenanceRelease": "Huoltojulkaisu: Korjauksia ja muita parannuksia. Lue lisää Githubin historiasta muutoshistoriasta.",
|
||||
"MaintenanceRelease": "Huoltojulkaisu: korjauksia ja muita parannuksia. Lue lisää Githubin muutoshistoriasta.",
|
||||
"Query": "Kysely",
|
||||
"Redirect": "Uudelleenohjaus",
|
||||
"RestartProwlarr": "Käynnistä {appName} uudelleen",
|
||||
@@ -355,7 +355,7 @@
|
||||
"ConnectSettingsSummary": "Ilmoitukset, kuten viestintä mediapalvelimille ja soittimille, sekä omat komentosarjat.",
|
||||
"DevelopmentSettings": "Kehittäjäasetukset",
|
||||
"Description": "Kuvaus",
|
||||
"Id": "Tunniste",
|
||||
"Id": "ID",
|
||||
"SettingsConsoleLogLevel": "Valvontalokin laajuus",
|
||||
"SettingsFilterSentryEvents": "Suodata analytiikan tapahtumia",
|
||||
"SettingsFilterSentryEventsHelpText": "Suodata tunnetut käyttäjävirheet pois analytiikkalähetyksistä",
|
||||
@@ -373,7 +373,7 @@
|
||||
"IndexerProxies": "Tiedonhaun välityspalvelimet",
|
||||
"IndexerAuth": "Tietolähteen todennus",
|
||||
"Notifications": "Kytkennät",
|
||||
"NotificationTriggersHelpText": "Valitse tapahtumat, jotka aiheuttavat ilmoituksen.",
|
||||
"NotificationTriggersHelpText": "Valitse tämän ilmoituksen laukaisevat tapahtumat.",
|
||||
"Stats": "Tilastot",
|
||||
"UnableToLoadDevelopmentSettings": "Kehittäjäasetusten lataus epäonnistui",
|
||||
"AppSettingsSummary": "Sovellukset ja asetukset, joilla määritetään miten {appName} viestii PVR-sovellustesi kanssa.",
|
||||
@@ -387,10 +387,10 @@
|
||||
"TvSearch": "Etsi televisiosarjoja",
|
||||
"Filters": "Suodattimet",
|
||||
"OnGrab": "Kun julkaisu kaapataan",
|
||||
"OnHealthIssue": "Kun havaitaan kuntoon liittyvä ongelma",
|
||||
"OnHealthIssue": "Vakausongelmat",
|
||||
"HistoryCleanupDaysHelpText": "Arvo \"0\" (nolla) poistaa automaattityhjennyksen käytöstä.",
|
||||
"HistoryCleanupDaysHelpTextWarning": "Tässä määritettyä aikaa vanhemmat tiedostot poistetaan automaattisesti roskakorista pysyvästi.",
|
||||
"TestAllIndexers": "Testaa tietolähteet",
|
||||
"TestAllIndexers": "Tietolähteiden testaus",
|
||||
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent-tiedon ilmoitti sovellus, joka kommunikoi API:n kanssa",
|
||||
"Categories": "Kategoriat",
|
||||
"Database": "Tietokanta",
|
||||
@@ -434,12 +434,12 @@
|
||||
"AddSyncProfile": "Lisää synkronointiprofiili",
|
||||
"EditSyncProfile": "Muokkaa synkronointiprofiilia",
|
||||
"InstanceName": "Instanssin nimi",
|
||||
"InstanceNameHelpText": "Instanssin nimi välilehdellä ja järjestelmälokissa",
|
||||
"InstanceNameHelpText": "Instanssin nimi välilehdellä ja järjestelmälokissa.",
|
||||
"ThemeHelpText": "Vaihda sovelluksen käyttöliittymän ulkoasua. \"Automaattinen\" vaihtaa vaalean ja tumman tilan välillä järjestelmän teeman mukaan. Innoittanut Theme.Park.",
|
||||
"Duration": "Kesto",
|
||||
"ElapsedTime": "Kulunut aika",
|
||||
"EnabledRedirected": "Kulunut, uudelleenohjattu",
|
||||
"Ended": "Päättyi",
|
||||
"Ended": "Päättynyt",
|
||||
"GrabTitle": "Kaappaa nimike",
|
||||
"LastExecution": "Edellinen suoritus",
|
||||
"LastDuration": "Edellinen kesto",
|
||||
@@ -496,7 +496,7 @@
|
||||
"NotificationStatusSingleClientHealthCheckMessage": "Ilmoitukset eivät ole ongelmien vuoksi käytettävissä: {0}",
|
||||
"AuthBasic": "Perus (ponnahdusikkuna)",
|
||||
"AuthForm": "Lomake (kirjautumissivu)",
|
||||
"DisabledForLocalAddresses": "Ei käytetä paikallisille osoitteille",
|
||||
"DisabledForLocalAddresses": "Ei käytössä paikallisille osoitteille",
|
||||
"None": "Ei mitään",
|
||||
"ResetAPIKeyMessageText": "Haluatko varmasti uudistaa API-avaimesi?",
|
||||
"TotalIndexerSuccessfulGrabs": "Onnistuneiden tietolähdekaappausten kokonaismäärä",
|
||||
@@ -524,7 +524,7 @@
|
||||
"StopSelecting": "Lopeta valitseminen",
|
||||
"EditConnectionImplementation": "Muokataan kytköstä - {implementationName}",
|
||||
"AddConnectionImplementation": "Lisätään kytköstä - {implementationName}",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Sisällön asettelu",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Sisällön rakenne",
|
||||
"EditIndexerImplementation": "Muokataan tietolähdettä - {implementationName}",
|
||||
"AuthenticationRequiredUsernameHelpTextWarning": "Syötä uusi käyttäjätunnus",
|
||||
"DefaultNameCopiedProfile": "{name} - Kopioi",
|
||||
@@ -534,14 +534,75 @@
|
||||
"AuthenticationRequiredHelpText": "Valitse mitkä pyynnöt vaativat tunnistautumisen. Älä muuta, jos et ymmärrä riskejä.",
|
||||
"TotalUserAgentGrabs": "Käyttäjäagentin kaappausten kokonaismäärä",
|
||||
"AuthenticationMethodHelpTextWarning": "Valitse sopiva tunnistautumistapa",
|
||||
"AuthenticationRequiredPasswordHelpTextWarning": "Syötä salasana",
|
||||
"AuthenticationRequiredPasswordHelpTextWarning": "Syötä uusi salasana",
|
||||
"AuthenticationMethod": "Tunnistautumistapa",
|
||||
"Clone": "Monista",
|
||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Vahvista uusi salasana",
|
||||
"EditApplicationImplementation": "Muokataan kytköstä - {implementationName}",
|
||||
"AddApplicationImplementation": "Lisätään kytköstä - {implementationName}",
|
||||
"EditApplicationImplementation": "Muokataan sovellusta - {implementationName}",
|
||||
"AddApplicationImplementation": "Lisätään sovellusta - {implementationName}",
|
||||
"InvalidUILanguage": "Käytöliittymän kielivalinta on virheellinen. Korjaa se ja tallenna asetukset.",
|
||||
"SeedRatio": "Jakosuhde",
|
||||
"SeedTime": "Jakoaika",
|
||||
"days": "päivää"
|
||||
"days": "päivää",
|
||||
"HistoryDetails": "Historiatiedot",
|
||||
"IndexerDisabled": "Tietolähde ei ole käytössä",
|
||||
"AdvancedSettingsShownClickToHide": "Lisäasetukset näytetään, piilota painamalla tästä",
|
||||
"AdvancedSettingsHiddenClickToShow": "Lisäasetukset on piilotettu, näytä painamalla tästä",
|
||||
"AppsMinimumSeeders": "Sovellusten vähimmäisjakajat",
|
||||
"BasicSearch": "Perushaku",
|
||||
"CountApplicationsSelected": "{count} sovellus(ta) on valittu",
|
||||
"DeleteSelectedApplications": "Poista valitut sovellukset",
|
||||
"DeleteSelectedIndexer": "Poista valittu tietolähde",
|
||||
"DeleteSelectedIndexers": "Poista valitut tietolähteet",
|
||||
"Implementation": "Toteutus",
|
||||
"IndexerCategories": "Tietolähdekategoriat",
|
||||
"IndexerStatus": "Tietolähteen tila",
|
||||
"ManageApplications": "Hallitse sovelluksia",
|
||||
"NewznabUrl": "Newznab URL",
|
||||
"PackSeedTime": "Koosteen jakoaika",
|
||||
"PackSeedTimeHelpText": "Aika, joka koostepaketin (kuten sarjan tuotantokauden tai esittäjän diskografian) sisältävää torrentia tulee jakaa. Käytä sovelluksen oletusta jättämällä tyhjäksi.",
|
||||
"QueryType": "Kyselyn tyyppi",
|
||||
"SearchAllIndexers": "Etsi kaikista tietolähteistä",
|
||||
"SeedRatioHelpText": "Jakosuhde, joka torrentin tulee saavuttaa ennen sen pysäytystä. Käytä sovelluksen oletusta jättämällä tyhjäksi.",
|
||||
"TorznabUrl": "Torznab URL",
|
||||
"ApiKeyValidationHealthCheckMessage": "Muuta API-avaimesi ainakin {0} merkin pituiseksi. Voit tehdä tämän asetuksista tai muokkaamalla asetustiedostoa.",
|
||||
"OnHealthRestored": "Terveystilan vakautuessa",
|
||||
"OnHealthRestoredHelpText": "Terveystilan vakautuessa",
|
||||
"TotalHostQueries": "Isännän kyselyiden kokonaismäärä",
|
||||
"TotalIndexerQueries": "Tietolähteen kyselyiden kokonaismäärä",
|
||||
"GoToApplication": "Siirry sovellukseen",
|
||||
"AreYouSureYouWantToDeleteIndexer": "Haluatko varmasti poistaa tietolähteen \"{name}\" sovelluksesta {appName}?",
|
||||
"AuthQueries": "Todennuskyselyt",
|
||||
"ApplicationTagsHelpText": "Sovellukseen synkronoidaan joko tunnisteettomat tietolähteet tai vastaavilla tunnisteilla merkityt tietolähteet.",
|
||||
"ApplicationTagsHelpTextWarning": "Tunnisteita tulee käyttää harkiten, koska niillä voi olla odottamattomia vaikutuksia. Tunnisteella merkittyyn sovellukseen synkronoidaan vain samalla tunnisteella merkityt tietolähteet.",
|
||||
"AverageResponseTimesMs": "Tietolähteiden keskimääräiset vasteajat (ms)",
|
||||
"CountIndexersAvailable": "{count} tietolähde(ttä) on käytettävissä",
|
||||
"FoundCountReleases": "Löytyi {itemCount} julkaisua",
|
||||
"IndexerTagsHelpTextWarning": "Tunnisteita tulee käyttää harkiten, koska niillä voi olla odottamattomia vaikutuksia. Tunnisteella merkitty tietolähde synkronoidaan vain samalla tunnisteella merkittyyn sovellukseen.",
|
||||
"LastFailure": "Edellinen virhe",
|
||||
"SelectedCountOfCountReleases": "Valittu {selectedCount}/{itemCount} julkaisua",
|
||||
"TotalQueries": "Kyselyiden kokonaismäärä",
|
||||
"RssFeed": "RSS-syöte",
|
||||
"VipExpiration": "VIP-erääntyy",
|
||||
"DisabledUntil": "Poistettu käytöstä kunnes",
|
||||
"AddApplication": "Lisää sovellus",
|
||||
"AddCategory": "Lisää kategoria",
|
||||
"EditCategory": "Muokkaa kategoriaa",
|
||||
"IndexerId": "Tietolähteen ID",
|
||||
"ActiveIndexers": "Aktiiviset tietolähteet",
|
||||
"NoIndexerCategories": "Tietolähteelle ei löytynyt kategorioita",
|
||||
"ActiveApps": "Aktiiviset sovellukset",
|
||||
"NoIndexerHistory": "Tietolähteelle ei löytynyt historiaa",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Määrittää käytetäänkö qBittorrentista määritettyä rakennetta, torrentin alkuperäistä rakennetta vai luodaanko uusi alikansio (qBittorrent 4.3.2+).",
|
||||
"External": "Ulkoinen",
|
||||
"IndexerFailureRate": "Tietolähteen virhetaajuus",
|
||||
"IndexerHistoryLoadError": "Virhe ladattaessa tietolähteen historiaa",
|
||||
"InitialFailure": "Alkuperäinen virhe",
|
||||
"PasswordConfirmation": "Salasanan vahvistus",
|
||||
"RepeatSearch": "Toista haku",
|
||||
"SearchCountIndexers": "Etsi {count} tietolähteestä",
|
||||
"SearchQueries": "Hakukyselyt",
|
||||
"SeedTimeHelpText": "Aika, joka torrentia tulee jakaa ennen sen pysäytystä. Käytä sovelluksen oletusta jättämällä tyhjäksi.",
|
||||
"RssQueries": "RSS-kyselyt",
|
||||
"TotalUserAgentQueries": "Käyttäjäagentin kyselyiden kokonaismäärä"
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
"Enable": "Activer",
|
||||
"DownloadClientSettings": "Télécharger les paramètres client",
|
||||
"Docker": "Docker",
|
||||
"DeleteTag": "Supprimer le tag",
|
||||
"DeleteTag": "Supprimer l'étiquette",
|
||||
"DeleteNotification": "Supprimer la notification",
|
||||
"DeleteDownloadClient": "Supprimer le client de téléchargement",
|
||||
"DeleteBackup": "Supprimer la sauvegarde",
|
||||
@@ -602,5 +602,6 @@
|
||||
"PasswordConfirmation": "Confirmation du mot de passe",
|
||||
"NoIndexerCategories": "Aucune catégorie disponible pour cet indexeur",
|
||||
"InvalidUILanguage": "Votre interface utilisateur est définie sur une langue non valide, corrigez-la et enregistrez vos paramètres",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Disposition du contenu"
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Disposition du contenu",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Utiliser la disposition du contenu configurée par qBittorrent, la disposition originale du torrent ou toujours créer un sous-dossier (qBittorrent 4.3.2+)"
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"Grabbed": "Preso",
|
||||
"Clear": "Cancella",
|
||||
"AppDataLocationHealthCheckMessage": "L'aggiornamento non sarà possibile per evitare la cancellazione di AppData durante l'aggiornamento",
|
||||
"Analytics": "Analitica",
|
||||
"Analytics": "Statistiche",
|
||||
"Added": "Aggiunto",
|
||||
"About": "Info",
|
||||
"Updates": "Aggiornamenti",
|
||||
@@ -76,7 +76,7 @@
|
||||
"Date": "Data",
|
||||
"CustomFilters": "Filtri Personalizzati",
|
||||
"Connect": "Notifiche",
|
||||
"Connections": "Collegamenti",
|
||||
"Connections": "Connessioni",
|
||||
"ConnectSettingsSummary": "Notifiche e script personalizzati",
|
||||
"BackupNow": "Esegui backup ora",
|
||||
"Backup": "Backup",
|
||||
@@ -84,28 +84,28 @@
|
||||
"Actions": "Azioni",
|
||||
"Age": "Età",
|
||||
"Close": "Chiudi",
|
||||
"CloneProfile": "Clona il Profilo",
|
||||
"ClientPriority": "Priorità del Client",
|
||||
"CloneProfile": "Copia Profilo",
|
||||
"ClientPriority": "Priorità Client",
|
||||
"ChangeHasNotBeenSavedYet": "Il cambio non è stato ancora salvato",
|
||||
"CertificateValidationHelpText": "Cambia quanto è rigorosa la convalida del certificato HTTPS",
|
||||
"CertificateValidation": "Convalida del Certificato",
|
||||
"Cancel": "Annulla",
|
||||
"BypassProxyForLocalAddresses": "Evita il Proxy per gli Indirizzi Locali",
|
||||
"Branch": "Ramo",
|
||||
"BindAddressHelpText": "Indirizzo IP valido, localhost o '*' per tutte le interfacce di rete",
|
||||
"BindAddress": "Indirizzo di Bind",
|
||||
"BindAddressHelpText": "Indirizzi IP validi, localhost o '*' per tutte le interfacce",
|
||||
"BindAddress": "Indirizzo di Ascolto",
|
||||
"Backups": "Backups",
|
||||
"BackupRetentionHelpText": "I backup automatici più vecchi del periodo di conservazione verranno eliminati automaticamente",
|
||||
"BackupIntervalHelpText": "Intervallo tra i backup automatici",
|
||||
"BackupRetentionHelpText": "I backup più vecchi del periodo specificato saranno cancellati automaticamente",
|
||||
"BackupIntervalHelpText": "Intervallo fra i backup automatici",
|
||||
"BackupFolderHelpText": "I percorsi relativi saranno nella cartella AppData di {appName}",
|
||||
"Automatic": "Automatico",
|
||||
"AuthenticationMethodHelpText": "Richiedi Nome Utente e Password per accedere a {appName}",
|
||||
"AuthenticationMethodHelpText": "Inserisci Username e Password per accedere a {appName}",
|
||||
"Authentication": "Autenticazione",
|
||||
"ApplyTags": "Applica Etichette",
|
||||
"Apply": "Applica",
|
||||
"AppDataDirectory": "Cartella AppData",
|
||||
"ApiKey": "Chiave API",
|
||||
"AnalyticsEnabledHelpText": "Invia informazioni anonime sull'uso e sugli errori ai server di {appName}. Questo include informazioni sul tuo browser, quali pagine della WebUI di {appName} utilizzi, la segnalazione di errori così come il sistema operativo e la versione di runtime. Useremo queste informazioni per dare priorità alle funzionalità e alle correzioni dei bug.",
|
||||
"AnalyticsEnabledHelpText": "Inviare informazioni anonime sull'utilizzo e sugli errori ai server di {appName}. Ciò include informazioni sul tuo browser, quali pagine dell'interfaccia di {appName} usi, la segnalazione di errori così come la versione del sistema operativo e del runtime. Utilizzeremo queste informazioni per dare priorità alle nuove funzioni e alle correzioni di bug.",
|
||||
"Warn": "Attenzione",
|
||||
"Type": "Tipo",
|
||||
"Title": "Titolo",
|
||||
@@ -136,11 +136,11 @@
|
||||
"DownloadClientSettings": "Impostazioni del Client di Download",
|
||||
"Docker": "Docker",
|
||||
"DeleteTag": "Elimina Etichetta",
|
||||
"DeleteNotification": "Cancella la Notifica",
|
||||
"DeleteDownloadClient": "Cancella il Client di Download",
|
||||
"DeleteNotification": "Cancella Notifica",
|
||||
"DeleteDownloadClient": "Cancella Client di Download",
|
||||
"DeleteBackup": "Cancella Backup",
|
||||
"DBMigration": "Migrazione DB",
|
||||
"ConnectSettings": "Impostazioni di Connessione",
|
||||
"ConnectSettings": "Impostazioni Collegamento",
|
||||
"ConnectionLost": "Connessione Persa",
|
||||
"Component": "Componente",
|
||||
"Columns": "Colonne",
|
||||
@@ -222,7 +222,7 @@
|
||||
"DeleteTagMessageText": "Sei sicuro di voler eliminare l'etichetta '{0}'?",
|
||||
"DeleteNotificationMessageText": "Sei sicuro di voler eliminare la notifica '{0}'?",
|
||||
"DeleteDownloadClientMessageText": "Sei sicuro di voler eliminare il client di download '{0}'?",
|
||||
"BeforeUpdate": "Prima di aggiornare",
|
||||
"BeforeUpdate": "Prima dell'aggiornamento",
|
||||
"Usenet": "Usenet",
|
||||
"Uptime": "Tempo di attività",
|
||||
"YesCancel": "Si, Cancella",
|
||||
@@ -232,7 +232,7 @@
|
||||
"UrlBaseHelpText": "Per il supporto al reverse proxy, di default è vuoto",
|
||||
"URLBase": "Base Url",
|
||||
"UpdateScriptPathHelpText": "Percorso verso uno script personalizzato che prende un pacchetto di aggiornamento estratto e gestisce il resto del processo di aggiornamento",
|
||||
"UpdateMechanismHelpText": "Usa l'aggiornamento integrato in {appName} o uno script",
|
||||
"UpdateMechanismHelpText": "Usa il sistema di aggiornamento interno di {appName} o uno script",
|
||||
"UpdateAutomaticallyHelpText": "Scarica e installa automaticamente gli aggiornamenti. Sarai comunque in grado in installarli da Sistema: Aggiornamenti",
|
||||
"UnsavedChanges": "Modifiche non salvate",
|
||||
"UnableToLoadUISettings": "Impossibile caricare le impostazioni interfaccia",
|
||||
@@ -293,7 +293,7 @@
|
||||
"EnableIndexer": "Abilita Indicizzatore",
|
||||
"AddNewIndexer": "Aggiungi nuovo Indicizzatore",
|
||||
"IndexerAuth": "Autenticazione dell'Indicizzatore",
|
||||
"AddDownloadClient": "Aggiungi Downloader",
|
||||
"AddDownloadClient": "Aggiungi Client di Download",
|
||||
"Category": "Categoria",
|
||||
"ClearHistory": "Cancella cronologia",
|
||||
"ClearHistoryMessageText": "Sei sicuro di voler cancellare tutta la cronologia di {appName}?",
|
||||
@@ -451,8 +451,8 @@
|
||||
"Started": "Iniziato",
|
||||
"AreYouSureYouWantToDeleteCategory": "Vuoi davvero cancellare la categoria mappata?",
|
||||
"AuthenticationRequired": "Autenticazione richiesta",
|
||||
"AuthenticationRequiredHelpText": "Cambia a quali richieste l'autenticazione verrà richiesta. Non cambiare se non comprendi i rischi.",
|
||||
"AuthenticationRequiredWarning": "Per impedire accessi remoti senza autenticazione, {appName} ora richiede che l'autenticazione venga attivata. Puoi disattivare l'autenticazione per indirizzi privati.",
|
||||
"AuthenticationRequiredHelpText": "Cambia a quali richieste l'autenticazione verrà chiesta. Non cambiare se non comprendi i rischi.",
|
||||
"AuthenticationRequiredWarning": "Per prevenire accessi remoti non autorizzati, {appName} da ora richiede che l'autenticazione sia abilitata. Opzionalmente puoi disabilitare l'autenticazione per gli indirizzi di rete locali.",
|
||||
"DeleteClientCategory": "Cancella categoria del client di download",
|
||||
"DownloadClientCategory": "Categoria client di download",
|
||||
"MappedCategories": "Categorie mappate",
|
||||
@@ -498,9 +498,22 @@
|
||||
"AddConnection": "Aggiungi Connessione",
|
||||
"NotificationStatusAllClientHealthCheckMessage": "Tutte le applicazioni non sono disponibili a causa di errori",
|
||||
"NotificationStatusSingleClientHealthCheckMessage": "Applicazioni non disponibili a causa di errori: {0}",
|
||||
"AuthForm": "Moduli (Pagina di Accesso)",
|
||||
"AuthForm": "Form (Pagina di Login)",
|
||||
"DisabledForLocalAddresses": "Disabilitato per Indirizzi Locali",
|
||||
"None": "Nessuna",
|
||||
"ResetAPIKeyMessageText": "Sei sicuro di voler reimpostare la tua chiave API?",
|
||||
"AuthBasic": "Base (Popup del Browser)"
|
||||
"AuthBasic": "Base (Popup del Browser)",
|
||||
"EditSelectedDownloadClients": "Modifica i Client di Download Selezionati",
|
||||
"AppUpdated": "{appName} Aggiornato",
|
||||
"AddCustomFilter": "Aggiungi Filtro Personalizzato",
|
||||
"AddConnectionImplementation": "Aggiungi Connessione - {implementationName}",
|
||||
"AddDownloadClientImplementation": "Aggiungi un Client di Download - {implementationName}",
|
||||
"AddIndexerImplementation": "Aggiungi indicizzatore - {implementationName}",
|
||||
"AuthenticationRequiredUsernameHelpTextWarning": "Inserisci username",
|
||||
"AuthenticationMethod": "Metodo di Autenticazione",
|
||||
"AuthenticationMethodHelpTextWarning": "Selezione un metodo di autenticazione valido",
|
||||
"AuthenticationRequiredPasswordHelpTextWarning": "Inserisci la nuova password",
|
||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Conferma la nuova password",
|
||||
"Clone": "Copia",
|
||||
"DefaultNameCopiedProfile": "{name} - Copia"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Add": "Legge til",
|
||||
"Add": "Legg til",
|
||||
"AddDownloadClient": "Legg til nedlastingsklient",
|
||||
"Added": "La til",
|
||||
"AddingTag": "Legger til tag",
|
||||
|
||||
@@ -375,5 +375,7 @@
|
||||
"None": "Żaden",
|
||||
"AuthBasic": "Podstawowe (wyskakujące okienko przeglądarki)",
|
||||
"ResetAPIKeyMessageText": "Czy na pewno chcesz zresetować swój klucz API?",
|
||||
"RestartProwlarr": "Zrestartuj {appName}"
|
||||
"RestartProwlarr": "Zrestartuj {appName}",
|
||||
"AddConnectionImplementation": "Dodaj Connection - {implementationName}",
|
||||
"AddDownloadClientImplementation": "Dodaj klienta pobierania - {implementationName}"
|
||||
}
|
||||
|
||||
@@ -473,5 +473,7 @@
|
||||
"Album": "álbum",
|
||||
"Artist": "artista",
|
||||
"DefaultNameCopiedProfile": "{name} - Copiar",
|
||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirmar nova senha"
|
||||
"AuthenticationRequiredPasswordConfirmationHelpTextWarning": "Confirmar nova senha",
|
||||
"AdvancedSettingsHiddenClickToShow": "Definições avançadas ocultas, clique para mostrar",
|
||||
"AddCategory": "Adicionar Categoria"
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
"DeleteIndexerProxyMessageText": "Tem certeza de que deseja excluir o proxy do indexador '{name}'?",
|
||||
"DeleteNotification": "Excluir notificação",
|
||||
"DeleteNotificationMessageText": "Tem certeza de que deseja excluir a notificação '{name}'?",
|
||||
"DeleteTag": "Excluir tag",
|
||||
"DeleteTag": "Excluir Etiqueta",
|
||||
"DeleteTagMessageText": "Tem certeza de que deseja excluir a tag '{label}'?",
|
||||
"Description": "Descrição",
|
||||
"Details": "Detalhes",
|
||||
@@ -139,7 +139,7 @@
|
||||
"EnableInteractiveSearch": "Ativar pesquisa interativa",
|
||||
"EnableInteractiveSearchHelpText": "Será usado com a pesquisa interativa",
|
||||
"EnableRss": "Habilitar RSS",
|
||||
"EnableRssHelpText": "Habilitar feed RSS para o indexador",
|
||||
"EnableRssHelpText": "Habilitar feed RSS para indexador",
|
||||
"EnableSSL": "Habilitar SSL",
|
||||
"EnableSslHelpText": " Requer a reinicialização com a execução como administrador para fazer efeito",
|
||||
"Enabled": "Habilitado",
|
||||
@@ -603,5 +603,6 @@
|
||||
"PasswordConfirmation": "Confirmação Da Senha",
|
||||
"InvalidUILanguage": "Sua UI está definida com um idioma inválido, corrija-a e salve suas configurações",
|
||||
"DownloadClientQbittorrentSettingsContentLayoutHelpText": "Seja para usar o layout de conteúdo configurado do qBittorrent, o layout original do torrent ou sempre criar uma subpasta (qBittorrent 4.3.2+)",
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Layout de Conteúdo"
|
||||
"DownloadClientQbittorrentSettingsContentLayout": "Layout de Conteúdo",
|
||||
"IndexerId": "ID do Indexador"
|
||||
}
|
||||
|
||||
@@ -121,5 +121,9 @@
|
||||
"UnableToAddANewNotificationPleaseTryAgain": "無法加入新的條件,請重新嘗試。",
|
||||
"EditIndexerImplementation": "新增索引 - {implementationName}",
|
||||
"EditApplicationImplementation": "新增連接 - {implementationName}",
|
||||
"EditIndexerProxyImplementation": "新增索引 - {implementationName}"
|
||||
"EditIndexerProxyImplementation": "新增索引 - {implementationName}",
|
||||
"ApplyTagsHelpTextAdd": "加入:將標籤加入已存在的標籤清單",
|
||||
"AppUpdated": "{appName}已更新",
|
||||
"AppUpdatedVersion": "重新載入",
|
||||
"ApplyChanges": "應用"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user