From d27b062d6acb86832b3f564d838bd2762865aec7 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 13 May 2024 17:01:53 +0300 Subject: [PATCH 001/333] Bump version to 2.4.0 --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 948d446ec..973c6d14b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,7 +9,7 @@ variables: testsFolder: './_tests' yarnCacheFolder: $(Pipeline.Workspace)/.yarn nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages - majorVersion: '2.3.3' + majorVersion: '2.4.0' minorVersion: $[counter('minorVersion', 1076)] lidarrVersion: '$(majorVersion).$(minorVersion)' buildName: '$(Build.SourceBranchName).$(lidarrVersion)' From 563db9231eb0a8053f8dc890d44a246d48d964d6 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 14 May 2024 00:24:37 +0300 Subject: [PATCH 002/333] Update the wanted section for missing and cutoff unmet (cherry picked from commit 9b4ff657af41e67aeb5866ee3056f1a8f2a901ea) --- frontend/src/Components/SignalRConnector.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/Components/SignalRConnector.js b/frontend/src/Components/SignalRConnector.js index c970589c7..db631de6f 100644 --- a/frontend/src/Components/SignalRConnector.js +++ b/frontend/src/Components/SignalRConnector.js @@ -266,7 +266,7 @@ class SignalRConnector extends Component { handleWantedCutoff = (body) => { if (body.action === 'updated') { this.props.dispatchUpdateItem({ - section: 'cutoffUnmet', + section: 'wanted.cutoffUnmet', updateOnly: true, ...body.resource }); @@ -276,7 +276,7 @@ class SignalRConnector extends Component { handleWantedMissing = (body) => { if (body.action === 'updated') { this.props.dispatchUpdateItem({ - section: 'missing', + section: 'wanted.missing', updateOnly: true, ...body.resource }); From 6ec298ed2a9653863b8cea33e7174d50d37b5fcc Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 18 May 2024 19:05:24 +0300 Subject: [PATCH 003/333] Fixed: Trimming slashes from UrlBase when using environment variable (cherry picked from commit d7ceb11a64c3926f35aabf67c935680cf031bd0e) --- src/NzbDrone.Core/Configuration/ConfigFileProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs index 3d6a99f63..d30ef0b88 100644 --- a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs +++ b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs @@ -240,7 +240,7 @@ namespace NzbDrone.Core.Configuration { get { - var urlBase = _serverOptions.UrlBase ?? GetValue("UrlBase", "").Trim('/'); + var urlBase = (_serverOptions.UrlBase ?? GetValue("UrlBase", "")).Trim('/'); if (urlBase.IsNullOrWhiteSpace()) { From 17bf73d1ef4aa3180ad9fb7e238c3f373b75b8da Mon Sep 17 00:00:00 2001 From: Weblate Date: Sun, 2 Jun 2024 18:25:11 +0000 Subject: [PATCH 004/333] Multiple Translations updated by Weblate ignore-downstream Co-authored-by: AlbertCoolGuy Co-authored-by: Dani Talens Co-authored-by: GkhnGRBZ Co-authored-by: Havok Dan Co-authored-by: Lizandra Candido da Silva Co-authored-by: Ransack6086 Co-authored-by: Weblate Co-authored-by: Yi Cao Co-authored-by: fordas Co-authored-by: mielmonteur Co-authored-by: mm519897405 Co-authored-by: r0bertreh Co-authored-by: thegamingcat13 Co-authored-by: topnew Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ca/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/da/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/de/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/es/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/fr/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/nl/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/pt/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/pt_BR/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/tr/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/zh_CN/ Translation: Servarr/Lidarr --- src/NzbDrone.Core/Localization/Core/ca.json | 10 +-- src/NzbDrone.Core/Localization/Core/da.json | 2 +- src/NzbDrone.Core/Localization/Core/de.json | 44 +++++++--- src/NzbDrone.Core/Localization/Core/es.json | 24 ++++-- src/NzbDrone.Core/Localization/Core/fr.json | 2 +- src/NzbDrone.Core/Localization/Core/nl.json | 4 +- src/NzbDrone.Core/Localization/Core/pt.json | 63 ++++++++++++-- .../Localization/Core/pt_BR.json | 84 ++++++++++--------- src/NzbDrone.Core/Localization/Core/tr.json | 57 +++++++------ .../Localization/Core/zh_CN.json | 16 ++-- 10 files changed, 200 insertions(+), 106 deletions(-) diff --git a/src/NzbDrone.Core/Localization/Core/ca.json b/src/NzbDrone.Core/Localization/Core/ca.json index e40bd7586..20b9ae06b 100644 --- a/src/NzbDrone.Core/Localization/Core/ca.json +++ b/src/NzbDrone.Core/Localization/Core/ca.json @@ -416,8 +416,8 @@ "UnableToAddANewDownloadClientPleaseTryAgain": "No es pot afegir un nou client de descàrrega, torneu-ho a provar.", "UnableToAddANewImportListExclusionPleaseTryAgain": "No es pot afegir una nova llista d'exclusió, torneu-ho a provar.", "Uptime": "Temps de funcionament", - "20MinutesTwenty": "60 minuts: {0}", - "45MinutesFourtyFive": "60 minuts: {0}", + "20MinutesTwenty": "20 minuts: {0}", + "45MinutesFourtyFive": "45 minuts: {0}", "60MinutesSixty": "60 minuts: {0}", "ClickToChangeQuality": "Feu clic per a canviar la qualitat", "CompletedDownloadHandling": "Gestió de descàrregues completades", @@ -751,10 +751,10 @@ "Negate": "Negació", "OrganizeSelectedArtists": "Organitza les pel·lícules seleccionades", "Small": "Petita", - "AddListExclusionHelpText": "Eviteu que la pel·lícula s'afegeixi a {appName} per llistes", + "AddListExclusionHelpText": "Eviteu que s'afegeixin artistes a {appName} per llistes", "DeleteArtistFoldersHelpText": "Suprimeix la carpeta de pel·lícules i el seu contingut", "AddNewArtistSearchForMissingAlbums": "Comenceu a cercar per pel·lícula absent", - "AddImportListExclusionArtistHelpText": "Eviteu que la pel·lícula s'afegeixi a {appName} per llistes", + "AddImportListExclusionArtistHelpText": "Eviteu que els artistes s'afegeixin a {appName} per llistes", "AppUpdated": "{appName} Actualitzada", "AppUpdatedVersion": "{appName} s'ha actualitzat a la versió `{version}`, per tal d'obtenir els darrers canvis, haureu de tornar a carregar {appName}", "DownloadClientQbittorrentSettingsContentLayout": "Disseny de contingut", @@ -831,7 +831,7 @@ "DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "El client de baixada {downloadClientName} està configurat per eliminar les baixades completades. Això pot provocar que les baixades s'eliminin del vostre client abans que {1} pugui importar-les.", "EditConnectionImplementation": "Afegeix una connexió - {implementationName}", "Episode": "Episodi", - "AddImportListExclusionAlbumHelpText": "Eviteu que la pel·lícula s'afegeixi a {appName} per llistes", + "AddImportListExclusionAlbumHelpText": "Eviteu que els àlbums s'afegeixin a {appName} per llistes", "ImportLists": "llista d'importació", "ApiKeyValidationHealthCheckMessage": "Actualitzeu la vostra clau de l'API perquè tingui almenys {length} caràcters. Podeu fer-ho mitjançant la configuració o el fitxer de configuració", "BypassIfAboveCustomFormatScoreHelpText": "Habiliteu l'omissió quan la versió tingui una puntuació superior a la puntuació mínima per al format personalitzat", diff --git a/src/NzbDrone.Core/Localization/Core/da.json b/src/NzbDrone.Core/Localization/Core/da.json index 956bfe42e..56bddcdc5 100644 --- a/src/NzbDrone.Core/Localization/Core/da.json +++ b/src/NzbDrone.Core/Localization/Core/da.json @@ -550,7 +550,7 @@ "RejectionCount": "Afvisningstal", "ReleaseTitle": "Udgiv titel", "MoveFiles": "Flyt filer", - "AddImportListExclusion": "Slet udelukkelse af importliste", + "AddImportListExclusion": "Tilføj ekslusion til importeringslisten", "ImportListExclusions": "Slet udelukkelse af importliste", "DoneEditingGroups": "Udført redigering af grupper", "QualitiesHelpText": "Kvaliteter højere på listen foretrækkes. Kvaliteter inden for samme gruppe er ens. Kun kontrollerede kvaliteter er ønsket", diff --git a/src/NzbDrone.Core/Localization/Core/de.json b/src/NzbDrone.Core/Localization/Core/de.json index 080dcfb0d..46f0f68e6 100644 --- a/src/NzbDrone.Core/Localization/Core/de.json +++ b/src/NzbDrone.Core/Localization/Core/de.json @@ -2,8 +2,8 @@ "Language": "Sprache", "UiLanguage": "Oberflächen Sprache ( UI Language )", "About": "Über", - "AgeWhenGrabbed": "Alter (beim erfassen)", - "AnalyticsEnabledHelpText": "Sende anonyme Nutzungs- und Fehlerinformationen an die Server von {appName}. Dazu gehören Informationen über Browser, welche Seiten der {appName}-Weboberfläche aufgerufen wurden, Fehlerberichte sowie Betriebssystem- und Laufzeitversion. Wir werden diese Informationen verwenden, um Funktionen und Fehlerbehebungen zu priorisieren.", + "AgeWhenGrabbed": "Alter (bei Erfassung)", + "AnalyticsEnabledHelpText": "Senden Sie anonyme Nutzungs- und Fehlerinformationen an die Server von {appName}. Dazu gehören Informationen zu Ihrem Browser, welche {appName}-WebUI-Seiten Sie verwenden, Fehlerberichte sowie Betriebssystem- und Laufzeitversion. Wir werden diese Informationen verwenden, um Funktionen und Fehlerbehebungen zu priorisieren.", "AppDataDirectory": "AppData-Verzeichnis", "AuthenticationMethodHelpText": "Für den Zugriff auf {appName} sind Benutzername und Passwort erforderlich", "Automatic": "Automatisch", @@ -36,7 +36,7 @@ "EnableSSL": "SSL", "EnableSslHelpText": " Erfordert einen Neustart als Administrator", "ErrorLoadingContents": "Fehler beim laden der Inhalte", - "CutoffUnmet": "› Schwelle nicht erreicht", + "CutoffUnmet": "Schwelle nicht erreicht", "Actions": "Aktionen", "Authentication": "Authentifizierung", "BlocklistRelease": "Release sperren", @@ -86,8 +86,8 @@ "Ended": "Beendet", "AddingTag": "Tag hinzufügen", "AddListExclusion": "Listenausschluss hinzufügen", - "AlreadyInYourLibrary": "Bereits in deiner Mediathek", - "Analytics": "Analytik", + "AlreadyInYourLibrary": "Bereits in Ihrer Bibliothek", + "Analytics": "Analysen", "ApplyTags": "Tags setzen", "BackupFolderHelpText": "Relative Pfade befinden sich unter {appName}s AppData Ordner", "BackupNow": "Jetzt sichern", @@ -653,9 +653,9 @@ "AddMetadataProfile": "Metadaten Profil", "AddNew": "Neue hinzufügen", "AddQualityProfile": "Qualitäts Profil hinzufügen", - "AddRemotePathMapping": "Entfernte Pfadzuordnung hinzufügen", - "AddRootFolder": "Stammordner hinzufügen", - "AfterManualRefresh": "Nach manuellen aktualisieren", + "AddRemotePathMapping": "Remote Pfad Zuordnung hinzufügen", + "AddRootFolder": "Stammverzeichnis hinzufügen", + "AfterManualRefresh": "Nach manueller Aktualisierung", "Albums": "Alben", "All": "Alle", "AllFiles": "Alle Dateien", @@ -985,7 +985,7 @@ "ArtistProgressBarText": "{trackFileCount} / {trackCount} (Total: {totalTrackCount}, Lädt herunter: {downloadingCount})", "ApplyTagsHelpTextHowToApplyDownloadClients": "Wie Tags zu den selektierten Downloadclients hinzugefügt werden können", "ApplyTagsHelpTextHowToApplyArtists": "Wie Tags zu den selektierten Künstlern hinzugefügt werden können", - "AllResultsAreHiddenByTheAppliedFilter": "Alle Resultate werden wegen des angewandten Filters nicht angezeigt", + "AllResultsAreHiddenByTheAppliedFilter": "Alle Ergebnisse werden durch den angewendeten Filter ausgeblendet", "AddListExclusionHelpText": "Verhindert, dass Künstler über Listen zu {appName} hinzugefügt werden", "AlbumDetails": "Album Details", "AlbumCount": "Anzahl Alben", @@ -1000,5 +1000,29 @@ "AddToDownloadQueue": "Zur Download Warteschlange hinzufügen", "AddedToDownloadQueue": "Zur Download Warteschlange hinzugefügt", "ApplyTagsHelpTextHowToApplyImportLists": "Wie Tags den selektierten Importlisten hinzugefügt werden können", - "ApplyTagsHelpTextHowToApplyIndexers": "Wie Tags zu den selektierten Indexern hinzugefügt werden können" + "ApplyTagsHelpTextHowToApplyIndexers": "Wie Tags zu den selektierten Indexern hinzugefügt werden können", + "CustomFormatsSpecificationFlag": "Markierung", + "IgnoreDownloadsHint": "Hindert {appName}, diese Downloads weiter zu verarbeiten", + "BlocklistReleases": "Release sperren", + "CustomFilter": "Benutzerdefinierter Filter", + "DoNotBlocklist": "Nicht Sperren", + "DoNotBlocklistHint": "Entfernen ohne Sperren", + "DownloadClientAriaSettingsDirectoryHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden", + "DeleteFormat": "Formatierung löschen", + "AutoTaggingSpecificationTag": "Tag", + "CustomFormatsSpecificationRegularExpressionHelpText": "Benutzerdefiniertes Format RegEx ist nicht groß-/kleinschreibungssensitiv", + "ChangeCategoryHint": "Änderung des Downloads in die 'Post-Import-Kategorie' vom Download-Client", + "ChangeCategoryMultipleHint": "Änderung der Downloads in die 'Post-Import-Kategorie' vom Download-Client", + "IgnoreDownloads": "Downloads ignorieren", + "DeleteSelected": "Markierte löschen", + "CustomFormatsSpecificationRegularExpression": "Regulären Ausdruck", + "DownloadClientPriorityHelpText": "Download-Client-Priorität von 1 (Höchste) bis 50 (Niedrigste). Standard: 1. Round-Robin wird für Clients mit der gleichen Priorität verwendet.", + "IgnoreDownload": "Download ignorieren", + "IgnoreDownloadHint": "Hält {appName} von der weiteren Verarbeitung dieses Downloads ab", + "RegularExpressionsCanBeTested": "Reguläre Ausdrücke können [hier](http://regexstorm.net/tester) getestet werden.", + "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}", + "DownloadClientDelugeSettingsDirectory": "Download Verzeichnis", + "DownloadClientDelugeSettingsDirectoryCompleted": "Verschieben, wenn Verzeichnis abgeschlossen", + "IndexerDownloadClientHealthCheckMessage": "Indexer mit ungültigen Downloader: {0}." } diff --git a/src/NzbDrone.Core/Localization/Core/es.json b/src/NzbDrone.Core/Localization/Core/es.json index cad6f8872..640555a9e 100644 --- a/src/NzbDrone.Core/Localization/Core/es.json +++ b/src/NzbDrone.Core/Localization/Core/es.json @@ -23,7 +23,7 @@ "ConnectSettings": "Conectar Ajustes", "CopyUsingHardlinksHelpTextWarning": "Ocasionalmente, los archivos bloqueados impiden renombrar los archivos que están siendo sembrados. Puedes desactivar temporalmente la siembra y usar la función de renombrado de {appName} como alternativa.", "CutoffHelpText": "Una vez que se alcanze esta calidad, {appName} no descargará películas", - "CutoffUnmet": "Umbrales no alcanzados", + "CutoffUnmet": "Límite no alcanzado", "DeleteBackupMessageText": "Seguro que quieres eliminar la copia de seguridad '{name}'?", "DeleteDelayProfile": "Eliminar Perfil de Retardo", "DeleteDelayProfileMessageText": "¿Está seguro de que desea borrar este perfil de retraso?", @@ -277,7 +277,7 @@ "SetPermissionsLinuxHelpTextWarning": "Si no estás seguro qué configuraciones hacer, no las cambies.", "Settings": "Ajustes", "ShortDateFormat": "Formato de fecha breve", - "ShowCutoffUnmetIconHelpText": "Mostrar el icono para los ficheros cuando no se ha alcanzado el corte", + "ShowCutoffUnmetIconHelpText": "Muestra un icono para archivos cuando el límite no haya sido alcanzado", "ShowDateAdded": "Mostrar fecha de adición", "ShowMonitored": "Mostrar monitorizado", "ShowMonitoredHelpText": "Muestra el estado monitorizado bajo el póster", @@ -376,7 +376,7 @@ "ICalFeed": "Canal de iCal", "ICalHttpUrlHelpText": "Copia esta URL a tu gestor(es) o haz click en subscribir si tu navegador soporta webcal", "ICalLink": "Enlace de iCal", - "IconForCutoffUnmet": "Icono para Umbrales no alcanzados", + "IconForCutoffUnmet": "Icono de límite no alcanzado", "IgnoredAddresses": "Ignorar direcciones", "IgnoredPlaceHolder": "Añadir nueva restricción", "ImportedTo": "Importar a", @@ -385,14 +385,14 @@ "ImportFailedInterp": "Importación fallida: {0}", "Importing": "Importando", "IncludeUnknownArtistItemsHelpText": "Mostrar items sin ninguna película en la cola, esto incluye películas renombradas o cualquier otra cosa en la categoría de {appName}", - "IncludeUnmonitored": "Incluir sin monitorizar", + "IncludeUnmonitored": "Incluir no monitorizadas", "Indexer": "Indexador", "IndexerPriority": "Prioridad del indexador", "Indexers": "Indexadores", "IndexerSettings": "Opciones del indexador", "InteractiveSearch": "Búsqueda Interactiva", "Interval": "Intervalo", - "IsCutoffCutoff": "Corte", + "IsCutoffCutoff": "Límite", "IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Actualizar hasta que se alcance o supere esta calidad", "IsTagUsedCannotBeDeletedWhileInUse": "No se puede eliminar estando en uso", "LaunchBrowserHelpText": " Abrir un navegador web e ir a la página de inicio de {appName} al arrancar la app.", @@ -873,7 +873,7 @@ "Unlimited": "Ilimitado", "AddImportListExclusionAlbumHelpText": "Evitar que las series sean agregadas a {appName} por las listas", "StatusEndedContinuing": "Continua", - "NoCutoffUnmetItems": "Sin objetos sin condiciones de corte incumplidas", + "NoCutoffUnmetItems": "Ningún elemento con límite no alcanzado", "ExtraFileExtensionsHelpText": "Lista de archivos adicionales separados por coma para importar (.nfo será importado como .nfo-orig)", "ExtraFileExtensionsHelpTextsExamples": "Ejemplos: '.sub, .nfo' o 'sub,nfo'", "TBA": "Por determinar", @@ -963,7 +963,7 @@ "IndexersSettingsSummary": "Indexadores y opciones de indexación", "Dash": "Guion", "DefaultCase": "Caso predeterminado", - "DeleteEmptyFoldersHelpText": "Eliminar carpetas vacías de series y temporadas durante el escaneo del disco y cuando se eliminen archivos correspondientes a episodios", + "DeleteEmptyFoldersHelpText": "Elimina carpetas vacías de artistas y álbumes durante el escaneo del disco y cuando se eliminen archivos de pistas", "DeleteSelectedArtists": "Borrar artista seleccionado", "EnableAutomaticAddHelpText": "Añade series de esta lista a {appName} cuando las sincronizaciones se llevan a cabo vía interfaz de usuario o por {appName}", "FileNameTokens": "Tokens de nombre de archivos", @@ -994,7 +994,7 @@ "ArtistIndexFooterDownloading": "Descargando", "AutomaticSearch": "Búsqueda Automática", "Donate": "Donar", - "MassSearchCancelWarning": "Esto no puede ser cancelado una vez empiece sin reiniciar {appName} o deshabilitar todos tus indexadores.", + "MassSearchCancelWarning": "No puede ser cancelado una vez comience sin reiniciar {appName} o deshabilitar todos tus indexadores.", "MediaManagementSettingsSummary": "Nombrado, opciones de gestión de archivos y carpetas raíz", "CustomFilter": "Filtro personalizado", "LabelIsRequired": "Se requiere etiqueta", @@ -1283,5 +1283,11 @@ "ReleasesHelpText": "Cambia el lanzamiento para este álbum", "SelectedCountArtistsSelectedInterp": "{selectedCount} artista(s) seleccionado(s)", "NoneMonitoringOptionHelpText": "No monitoriza artistas o álbumes", - "SkipRedownloadHelpText": "Evita que {appName} intente descargar lanzamientos alternativos para los elementos eliminados" + "SkipRedownloadHelpText": "Evita que {appName} intente descargar lanzamientos alternativos para los elementos eliminados", + "IndexerSettingsSeedRatio": "Ratio de sembrado", + "IndexerSettingsSeedRatioHelpText": "El ratio que un torrent debería alcanzar antes de parar, vacío usa el predeterminado del cliente de descarga. El ratio debería ser al menos 1.0 y seguir las reglas de los indexadores", + "IndexerSettingsSeedTime": "Tiempo de sembrado", + "IndexerSettingsSeedTimeHelpText": "El tiempo que un torrent debería ser sembrado antes de parar, vacío usa el predeterminado del cliente de descarga", + "InteractiveSearchModalHeader": "Búsqueda interactiva", + "InteractiveSearchModalHeaderTitle": "Búsqueda interactiva - {title}" } diff --git a/src/NzbDrone.Core/Localization/Core/fr.json b/src/NzbDrone.Core/Localization/Core/fr.json index 91df8f492..b2e545c0a 100644 --- a/src/NzbDrone.Core/Localization/Core/fr.json +++ b/src/NzbDrone.Core/Localization/Core/fr.json @@ -226,7 +226,7 @@ "Permissions": "Autorisations", "Port": "Port", "PortNumber": "Numéro de port", - "PosterSize": "Poster taille", + "PosterSize": "Taille des affiches", "PreviewRename": "Aperçu Renommer", "Profiles": "Profils", "Proper": "Approprié", diff --git a/src/NzbDrone.Core/Localization/Core/nl.json b/src/NzbDrone.Core/Localization/Core/nl.json index 2f8fc4916..21e716fe9 100644 --- a/src/NzbDrone.Core/Localization/Core/nl.json +++ b/src/NzbDrone.Core/Localization/Core/nl.json @@ -844,5 +844,7 @@ "ChangeCategory": "Verander categorie", "RegularExpressionsCanBeTested": "Reguliere expressies kunnen [hier] worden getest (http:://regexstorm.net/tester).", "AutomaticUpdatesDisabledDocker": "Automatische updates zijn niet ondersteund wanneer je het docker update mechanisme gebruikt. Je dient de container image up te daten buiten {appName} om of een script te gebruiken", - "ChownGroup": "chown groep" + "ChownGroup": "chown groep", + "AddAlbumWithTitle": "Toevoegen", + "AutoTaggingSpecificationTag": "Tag" } diff --git a/src/NzbDrone.Core/Localization/Core/pt.json b/src/NzbDrone.Core/Localization/Core/pt.json index f3b3a133d..8dce25e2d 100644 --- a/src/NzbDrone.Core/Localization/Core/pt.json +++ b/src/NzbDrone.Core/Localization/Core/pt.json @@ -1,7 +1,7 @@ { "Language": "Idioma", "UiLanguage": "Idioma da IU", - "CopyUsingHardlinksHelpText": "Usar ligações fixas (Hardlinks) ao tentar copiar ficheiros de torrents que ainda estão em modo de semeio", + "CopyUsingHardlinksHelpText": "Os hardlinks permitem que o {appName} importe torrents em propagação para a pasta do artista, sem ocupar espaço adicional em disco ou copiar todo o conteúdo do arquivo. Hardlinks só funcionarão se a origem e o destino estiverem no mesmo volume", "DownloadClients": "Clientes de transferências", "DownloadClientSettings": "Definições do cliente de transferências", "DownloadWarningCheckDownloadClientForMoreDetails": "Alerta de transferência: verifique o cliente de transferências para obter mais detalhes", @@ -256,7 +256,7 @@ "CutoffHelpText": "Quando esta qualidade for alcançada, o {appName} não transferirá mais filmes", "CutoffUnmet": "Limite não-correspondido", "Dates": "Datas", - "DefaultTagsHelpText": "Há um perfil de qualidade padrão para autores nesta pasta", + "DefaultTagsHelpText": "Há etiquetas padrão do {appName} para artistas nesta pasta", "DelayProfile": "Perfil de atraso", "DelayProfiles": "Perfis de atraso", "DeleteBackup": "Eliminar cópia de segurança", @@ -751,7 +751,7 @@ "BlocklistReleases": "Bloquear versão", "ApplyChanges": "Aplicar alterações", "AutomaticAdd": "Adicionar automaticamente", - "DeleteConditionMessageText": "Tem a certeza que quer eliminar a etiqueta \"{0}\"?", + "DeleteConditionMessageText": "Tem a certeza que quer eliminar a condição \"{name}\"?", "DeleteSelectedDownloadClients": "Eliminar cliente de transferências", "DeleteSelectedImportLists": "Eliminar lista de importação", "DeleteSelectedIndexers": "Eliminar indexador", @@ -779,7 +779,7 @@ "SuggestTranslationChange": "Sugerir mudança na tradução", "UpdateSelected": "Atualizar selecionado(s)", "ApplyTagsHelpTextHowToApplyDownloadClients": "Como aplicar etiquetas aos clientes de download selecionados", - "CountArtistsSelected": "{0} autor(es) selecionado(s)", + "CountArtistsSelected": "{count} artista(s) selecionado(s)", "AllResultsAreHiddenByTheAppliedFilter": "Todos os resultados foram ocultados pelo filtro aplicado", "NoResultsFound": "Nenhum resultado encontrado", "Priority": "Prioridade", @@ -921,11 +921,11 @@ "AllArtistAlbums": "Todos os Álbuns de Artistas", "AllExpandedExpandAll": "Expandir Tudo", "AllowFingerprintingHelpText": "Use impressões digitais para melhorar a precisão da correspondência de faixas", - "AnyReleaseOkHelpText": "{appName} mudará automaticamente para a faixa baixada com melhor correspondência", + "AnyReleaseOkHelpText": "O {appName} mudará automaticamente para a versão que melhor corresponde às faixas baixadas", "ArtistClickToChangeAlbum": "Clique para mudar de álbum", "AlbumType": "Tipo de Álbum", "AlbumTitle": "Título do álbum", - "AreYouSure": "Você tem certeza?", + "AreYouSure": "Tem a certeza?", "AllowFingerprinting": "Permitir impressão digital", "AddAlbumWithTitle": "Adicionar", "AddArtistWithName": "Adicionar", @@ -936,7 +936,7 @@ "AlbumStudio": "Estúdio do Álbum", "AlbumStudioTracksDownloaded": "{trackFileCount}/{totalTrackCount} trilhas baixadas", "AllAlbums": "Todos os Álbuns", - "AnchorTooltip": "Este arquivo já está na sua biblioteca para uma versão que você está importando no momento", + "AnchorTooltip": "Este ficheiro já está na sua biblioteca para uma versão que você está a importar actualmente", "ArtistFolderFormat": "Formato da pasta do artista", "AlbumIsDownloading": "O álbum está sendo baixado", "AlbumStudioTruncated": "Apenas os últimos 20 álbuns são mostrados, acesse os detalhes para ver todos os álbuns", @@ -952,5 +952,52 @@ "AddToDownloadQueue": "Adicionar à fila de download", "AddedToDownloadQueue": "Adicionado à fila de download", "UseSsl": "Usar SSL", - "MonitorNoAlbums": "Nenhum" + "MonitorNoAlbums": "Nenhum", + "DefaultMonitorOptionHelpText": "Quais álbuns devem ser monitorados na adição inicial para artistas detectados nesta pasta", + "AutomaticallySwitchRelease": "Trocar automaticamente de versão", + "Clone": "Clonar", + "ContinuingMoreAlbumsAreExpected": "Espera-se mais álbuns", + "ArtistMonitoring": "Monitoramento de artista", + "DashOrSpaceDashDependingOnName": "Traço ou Espaço e Traço, dependendo do nome", + "DefaultLidarrTags": "Etiquetas padrão do {appName}", + "AutoTaggingSpecificationTag": "Etiqueta", + "BannerOptions": "Opções do banner", + "Banners": "Banners", + "ChangeCategory": "Alterar categoria", + "ChownGroup": "Fazer chown em grupo", + "ClearBlocklist": "Limpar lista de bloqueio", + "ClickToChangeIndexerFlags": "Clique para alterar os sinalizadores do indexador", + "ClearBlocklistMessageText": "Tem a certeza de que deseja limpar todos os itens da lista de bloqueio?", + "CollapseMultipleAlbums": "Recolher vários álbuns", + "CombineWithExistingFiles": "Combinar a arquivos existentes", + "ContinuingNoAdditionalAlbumsAreExpected": "Não espera-se mais livros", + "ContinuingOnly": "Continuando apenas", + "CustomFormatsSpecificationFlag": "Sinalizar", + "CustomFormatsSpecificationRegularExpression": "Expressão regular (regex)", + "CustomFormatsSpecificationRegularExpressionHelpText": "O regex do formato personalizado não diferencia maiúsculas e minúsculas", + "Dash": "Traço", + "DateAdded": "Data da adição", + "DeleteArtistFolderCountWithFilesConfirmation": "Tem a certeza de que deseja eliminar {count} artistas selecionados e todo o conteúdo?", + "DeleteArtist": "Eliminar artista selecionado", + "DeleteArtistFolders": "Eliminar pastas de artistas", + "CountIndexersSelected": "{selectedCount} indexador(es) selecionado(s)", + "Country": "País", + "ArtistProgressBarText": "{trackFileCount}/{trackCount} (total: {totalTrackCount}, baixando: {downloadingCount})", + "CountAlbums": "{albumCount} álbuns", + "CountImportListsSelected": "{selectedCount} lista(s) de importação selecionada(s)", + "ArtistEditor": "Editor de artistas", + "ChangeCategoryHint": "Altera o download para a \"Categoria pós-importação\" do cliente de download", + "ChangeCategoryMultipleHint": "Altera os downloads para a \"Categoria pós-importação' do cliente de download", + "ArtistName": "Nome do artista", + "ArtistType": "Tipo de artista", + "ArtistsEditRootFolderHelpText": "Use Mover artistas para a mesma pasta raiz para renomear pastas de artistas para corresponder ao nome atualizado ou ao formato de nomenclatura", + "BlocklistAndSearch": "Adicionar à lista de bloqueio e pesquisar", + "BlocklistAndSearchHint": "Iniciar uma pesquisa por um substituto após adicionar à lista de bloqueio", + "CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a uma versão ou ficheiro quando corresponder a pelo menos um dos diferentes tipos de condição escolhidos.", + "DeleteArtistFolder": "Eliminar pasta do artista", + "BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar à lista de bloqueio", + "BlocklistMultipleOnlyHint": "Adicionar à lista de bloqueio sem procurar por substitutos", + "BlocklistOnly": "Apenas adicionar à lista de bloqueio", + "BlocklistOnlyHint": "Adicionar à lista de bloqueio sem procurar por um substituto", + "ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}" } diff --git a/src/NzbDrone.Core/Localization/Core/pt_BR.json b/src/NzbDrone.Core/Localization/Core/pt_BR.json index e5342a840..e38dd937c 100644 --- a/src/NzbDrone.Core/Localization/Core/pt_BR.json +++ b/src/NzbDrone.Core/Localization/Core/pt_BR.json @@ -58,7 +58,7 @@ "BackupFolderHelpText": "Os caminhos relativos estarão no diretório AppData do {appName}", "BackupIntervalHelpText": "Intervalo para fazer backup do banco de dados e configurações do {appName}", "Automatic": "Automático", - "AutomaticallySwitchRelease": "Trocar Automaticamente de Lançamento", + "AutomaticallySwitchRelease": "Trocar automaticamente de lançamento", "BackupNow": "Fazer backup agora", "RemotePathHelpText": "Caminho raiz para o diretório que o cliente de download acessa", "CertificateValidationHelpText": "Altere a rigidez da validação da certificação HTTPS. Não mude a menos que você entenda os riscos.", @@ -144,7 +144,7 @@ "Year": "Ano", "ChmodFolderHelpText": "Octal, aplicado durante a importação/renomeação de pastas e arquivos de mídia (sem bits de execução)", "ChmodFolderHelpTextWarning": "Isso só funciona se o usuário que executa {appName} for o proprietário do arquivo. É melhor garantir que o cliente de download defina as permissões corretamente.", - "ChownGroup": "chown Grupo", + "ChownGroup": "Fazer chown em grupo", "ChownGroupHelpText": "Nome do grupo ou gid. Use gid para sistemas de arquivos remotos.", "ChownGroupHelpTextWarning": "Isso só funciona se o usuário que executa {appName} for o proprietário do arquivo. É melhor garantir que o cliente de download use o mesmo grupo que {appName}.", "Clear": "Limpar", @@ -159,20 +159,20 @@ "ConnectSettings": "Configurações de conexão", "Continuing": "Continuando", "ContinuingAllTracksDownloaded": "Continuação (todos os livros baixados)", - "ContinuingNoAdditionalAlbumsAreExpected": "Não espera-se mais livros", - "CopyUsingHardlinksHelpText": "Os hardlinks permitem que o {appName} importe torrents de propagação para a pasta do artista sem ocupar espaço extra em disco ou copiar todo o conteúdo do arquivo. Hardlinks só funcionarão se a origem e o destino estiverem no mesmo volume", + "ContinuingNoAdditionalAlbumsAreExpected": "Não espera-se mais álbuns", + "CopyUsingHardlinksHelpText": "Os hardlinks permitem que o {appName} importe torrents em propagação para a pasta do artista, sem ocupar espaço extra em disco ou copiar todo o conteúdo do arquivo. Hardlinks só funcionarão se a origem e o destino estiverem no mesmo volume", "CopyUsingHardlinksHelpTextWarning": "Ocasionalmente, os bloqueios de arquivo podem impedir a renomeação de arquivos que estão sendo semeados. Você pode desabilitar temporariamente a semeadura e usar a função de renomeação do {appName} como uma solução alternativa.", "Country": "País", "CreateEmptyArtistFolders": "Criar pastas de autor vazias", "CreateEmptyArtistFoldersHelpText": "Criar pastas de autor ausente durante a verificação do disco", "CreateGroup": "Criar grupo", "CutoffHelpText": "Assim que esta qualidade for alcançada, o {appName} não baixará mais filmes", - "CutoffUnmet": "Corte não atendido", + "CutoffUnmet": "Limite não alcançado", "DatabaseMigration": "Migração de banco de dados", - "DefaultLidarrTags": "Tags padrão do {appName}", + "DefaultLidarrTags": "Etiquetas padrão do {appName}", "DefaultMetadataProfileIdHelpText": "Há um perfil de metadados padrão para autores nesta pasta", "DefaultQualityProfileIdHelpText": "Há um perfil de qualidade padrão para autores nesta pasta", - "DefaultTagsHelpText": "Há tags padrão do {appName} para autores nesta pasta", + "DefaultTagsHelpText": "Há etiquetas padrão do {appName} para artistas nesta pasta", "DelayProfile": "Perfil de atraso", "DelayProfiles": "Perfis de atraso", "Delete": "Excluir", @@ -335,7 +335,7 @@ "MetadataProfileIdHelpText": "Adicionar itens da lista do Perfil de metadados com", "MetadataProfiles": "Perfis de metadados", "MetadataSettings": "Configurações de metadados", - "MIA": "Desaparecidos", + "MIA": "Ausentes", "MinimumAge": "Idade miníma", "MinimumAgeHelpText": "Somente Usenet: idade mínima, em minutos, dos NZBs antes de serem baixados. Use isso para dar aos novos lançamentos tempo para se propagar para seu provedor de Usenet.", "MinimumFreeSpace": "Mínimo de espaço livre", @@ -573,8 +573,8 @@ "Type": "Tipo", "Ungroup": "Desagrupar", "DefaultMonitorOptionHelpText": "Quais álbuns devem ser monitorados na adição inicial para artistas detectados nesta pasta", - "CollapseMultipleAlbums": "Agrupar Múltiplos Álbuns", - "ContinuingMoreAlbumsAreExpected": "Mais álbuns são esperados", + "CollapseMultipleAlbums": "Recolher vários álbuns", + "ContinuingMoreAlbumsAreExpected": "Espera-se mais álbuns", "RemoveCompleted": "Remoção Concluída", "RemoveDownloadsAlert": "As configurações de remoção foram movidas para as configurações individuais do cliente de download na tabela acima.", "RemoveFailed": "Falha na remoção", @@ -639,7 +639,7 @@ "OnTrackRetag": "Ao Retag Faixa", "OnUpgrade": "Ao Atualizar", "OnDownloadFailure": "Na Falha do Download", - "OnGrab": "Ao Baixar", + "OnGrab": "Ao obter", "OnReleaseImport": "Ao Importar Lançamento", "OnImportFailure": "Ao Falhar na Importação", "OnHealthIssue": "Ao Problema de Saúde", @@ -781,12 +781,12 @@ "AlbumTitle": "Título do Álbum", "AlbumType": "Tipo do Álbum", "AreYouSure": "Tem certeza?", - "ArtistName": "Nome do Artista", - "ArtistType": "Tipo do Artista", - "CombineWithExistingFiles": "Combinar com Arquivos Existentes", + "ArtistName": "Nome do artista", + "ArtistType": "Tipo de artista", + "CombineWithExistingFiles": "Combinar com arquivos existentes", "MonitorNewItems": "Monitorar Novos Álbuns", - "DateAdded": "Data da Adição", - "DeleteArtist": "Excluir Artista Selecionado", + "DateAdded": "Data da adição", + "DeleteArtist": "Excluir artista selecionado", "Discography": "Discografia", "DownloadImported": "Download Importado", "EditMetadata": "Editar metadados", @@ -914,7 +914,7 @@ "RemotePathMappingCheckFilesGenericPermissions": "Baixe os arquivos relatados do cliente {0} em {1}, mas o {appName} não pode ver este diretório. Pode ser necessário ajustar as permissões da pasta.", "RemotePathMappingCheckFilesLocalWrongOSPath": "O cliente de download local {0} relatou arquivos em {1}, mas este não é um caminho {2} válido. Revise as configurações do cliente de download.", "RemotePathMappingCheckFolderPermissions": "{appName} pode ver, mas não acessar o diretório de download {0}. Provável erro de permissão.", - "RemotePathMappingCheckGenericPermissions": "O cliente de download {0} coloca os downloads em {1}, mas {appName} não pode ver este diretório. Pode ser necessário ajustar as permissões da pasta.", + "RemotePathMappingCheckGenericPermissions": "O cliente de download {0} coloca os downloads em {1}, mas o {appName} não pode ver este diretório. Pode ser necessário ajustar as permissões da pasta.", "RemotePathMappingCheckImportFailed": "{appName} falhou ao importar um filme. Verifique seus logs para obter detalhes.", "RemotePathMappingCheckLocalWrongOSPath": "O cliente de download local {0} coloca os downloads em {1}, mas este não é um caminho {2} válido. Revise as configurações do cliente de download.", "RemotePathMappingCheckRemoteDownloadClient": "O cliente de download remoto {0} relatou arquivos em {1}, mas este diretório parece não existir. Provavelmente faltando mapeamento de caminho remoto.", @@ -963,7 +963,7 @@ "BlocklistReleaseHelpText": "Impede que o {appName} obtenha automaticamente esses arquivos novamente", "FailedToLoadQueue": "Falha ao carregar a fila", "QueueIsEmpty": "A fila está vazia", - "NoCutoffUnmetItems": "Nenhum item com limite não atendido", + "NoCutoffUnmetItems": "Nenhum item com limite não atingido", "NoEventsFound": "Não foram encontrados eventos", "NoMissingItems": "Nenhum item ausente", "DownloadClientSortingCheckMessage": "O cliente de download {0} tem classificação {1} habilitada para a categoria de {appName}. Você deve desativar a classificação em seu cliente de download para evitar problemas de importação.", @@ -1078,9 +1078,9 @@ "OverviewOptions": "Opções da visão geral", "PosterOptions": "Opções do pôster", "Posters": "Pôsteres", - "ArtistProgressBarText": "{trackFileCount} / {trackCount} (Total: {totalTrackCount}, Baixando: {downloadingCount})", + "ArtistProgressBarText": "{trackFileCount}/{trackCount} (total: {totalTrackCount}, baixando: {downloadingCount})", "Table": "Tabela", - "ArtistMonitoring": "Monitorando Artista", + "ArtistMonitoring": "Monitoramento de artista", "AddListExclusionHelpText": "Impedir que artistas sejam adicionados ao {appName} por listas", "AlbumDetails": "Detalhes do Álbum", "AlbumStudioTracksDownloaded": "{trackFileCount}/{totalTrackCount} faixas baixadas", @@ -1088,11 +1088,11 @@ "AlbumsLoadError": "Não foi possível carregar os álbuns", "ArtistIsUnmonitored": "Artista não é monitorado", "Deceased": "Falecido", - "DeleteArtistFolder": "Excluir Pasta do Artista", + "DeleteArtistFolder": "Excluir pasta do artista", "DeleteArtistFolderCountConfirmation": "Tem certeza de que deseja excluir {count} artistas selecionados?", "DeleteArtistFolderCountWithFilesConfirmation": "Tem certeza de que deseja excluir {count} artistas selecionados e todo o conteúdo?", "DeleteArtistFolderHelpText": "Exclua a pasta do artista e seu conteúdo", - "DeleteArtistFolders": "Excluir Pastas de Artistas", + "DeleteArtistFolders": "Excluir pastas de artistas", "DeleteSelectedArtists": "Excluir Artistas Selecionados", "Large": "Grande", "MonitorArtists": "Monitorar Artistas", @@ -1102,7 +1102,7 @@ "Small": "Pequeno", "UpdateMonitoring": "Atualizar Monitoramento", "ArtistIsMonitored": "Artista é monitorado", - "ArtistsEditRootFolderHelpText": "Mover artistas para a mesma pasta raiz pode ser usado para renomear pastas de artistas para corresponder ao nome atualizado ou formato de nomenclatura", + "ArtistsEditRootFolderHelpText": "Use Mover artistas para a mesma pasta raiz para renomear pastas de artistas para corresponder ao nome atualizado ou ao formato de nomenclatura", "DeleteArtistFoldersHelpText": "Exclua as pastas dos artistas e todo o seu conteúdo", "EditSelectedArtists": "Editar Artistas Selecionados", "OrganizeSelectedArtists": "Organizar Artistas Selecionados", @@ -1160,11 +1160,11 @@ "TrackFileRenamedTooltip": "Arquivo da faixa renomeado", "TrackFileTagsUpdatedTooltip": "Arquivo da faixa com etiquetas atualizadas", "DownloadClientPriorityHelpText": "Prioridade do Cliente de Download de 1 (mais alta) a 50 (mais baixa). Padrão: 1. Round-Robin é usado para clientes com a mesma prioridade.", - "BlocklistAndSearch": "Lista de Bloqueio e Pesquisa", - "BlocklistAndSearchHint": "Inicie uma busca por um substituto após adicionar a lista de bloqueio", - "ChangeCategory": "Alterar Categoria", - "ChangeCategoryHint": "Altera o download para a 'Categoria Pós-Importação' do Cliente de Download", - "CustomFormatsSpecificationRegularExpressionHelpText": "RegEx do Formato Personalizado Não Diferencia Maiúsculas de Minúsculas", + "BlocklistAndSearch": "Adicionar à lista de bloqueio e pesquisar", + "BlocklistAndSearchHint": "Iniciar uma pesquisa por um substituto após adicionar à lista de bloqueio", + "ChangeCategory": "Alterar categoria", + "ChangeCategoryHint": "Altera o download para a \"Categoria pós-importação\" do cliente de download", + "CustomFormatsSpecificationRegularExpressionHelpText": "O regex do formato personalizado não diferencia maiúsculas e minúsculas", "RemoveQueueItemConfirmation": "Tem certeza de que deseja remover '{sourceTitle}' da fila?", "RemoveQueueItemsRemovalMethodHelpTextWarning": "'Remover do Cliente de Download' removerá os downloads e os arquivos do cliente de download.", "DoNotBlocklistHint": "Remover sem colocar na lista de bloqueio", @@ -1172,14 +1172,14 @@ "IgnoreDownloadHint": "Impede que {appName} processe ainda mais este download", "IgnoreDownloads": "Ignorar Downloads", "IgnoreDownloadsHint": "Impede que {appName} processe ainda mais esses downloads", - "BlocklistOnlyHint": "Adiciona a Lista de bloqueio sem procurar um substituto", + "BlocklistOnlyHint": "Adicionar à lista de bloqueio sem procurar por um substituto", "DoNotBlocklist": "Não coloque na lista de bloqueio", "RemoveFromDownloadClientHint": "Remove download e arquivo(s) do cliente de download", - "BlocklistOnly": "Apenas Adicionar a Lista de Bloqueio", - "BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar a lista de bloqueio", - "BlocklistMultipleOnlyHint": "Adiciona a Lista de bloqueio sem procurar substitutos", - "ChangeCategoryMultipleHint": "Altera os downloads para a 'Categoria Pós-Importação' do Cliente de Download", - "CustomFormatsSpecificationRegularExpression": "Expressão Regular", + "BlocklistOnly": "Apenas adicionar à lista de bloqueio", + "BlocklistAndSearchMultipleHint": "Iniciar pesquisas por substitutos após adicionar à lista de bloqueio", + "BlocklistMultipleOnlyHint": "Adicionar à lista de bloqueio sem procurar por substitutos", + "ChangeCategoryMultipleHint": "Altera os downloads para a \"Categoria pós-importação' do cliente de download", + "CustomFormatsSpecificationRegularExpression": "Expressão regular (regex)", "RemoveMultipleFromDownloadClientHint": "Remove downloads e arquivos do cliente de download", "RemoveQueueItem": "Remover - {sourceTitle}", "RemoveQueueItemRemovalMethod": "Método de Remoção", @@ -1265,7 +1265,7 @@ "NotificationsSettingsUpdateMapPathsToHelpText": "Caminho {serviceName}, usado para modificar caminhos de série quando {serviceName} vê a localização do caminho da biblioteca de forma diferente de {appName} (requer 'Atualizar Biblioteca')", "NotificationsSettingsUseSslHelpText": "Conecte-se a {serviceName} por HTTPS em vez de HTTP", "UseSsl": "Usar SSL", - "ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo a URL {connectionName}, como {url}", + "ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}", "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Local opcional para mover os downloads concluídos, deixe em branco para usar o local padrão do Deluge", "NotificationsEmbySettingsUpdateLibraryHelpText": "Atualizar Biblioteca ao Importar, Renomear ou Excluir?", "NotificationsKodiSettingsDisplayTimeHelpText": "Por quanto tempo a notificação será exibida (em segundos)", @@ -1273,15 +1273,21 @@ "AddToDownloadQueue": "Adicionar à fila de download", "AddedToDownloadQueue": "Adicionado à fila de download", "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} não conseguiu determinar a qual artista e álbum se destinava este lançamento. {appName} pode não conseguir importar esta versão automaticamente. Você quer pegar '{title}'?", - "ClickToChangeIndexerFlags": "Clique para alterar sinalizadores do indexador", - "CustomFormatsSpecificationFlag": "Sinalizador", + "ClickToChangeIndexerFlags": "Clique para alterar os sinalizadores do indexador", + "CustomFormatsSpecificationFlag": "Sinalizar", "IndexerFlags": "Sinalizadores do Indexador", "Rejections": "Rejeições", "SelectIndexerFlags": "Selecionar Sinalizadores do Indexador", "SetIndexerFlags": "Definir Sinalizadores de Indexador", - "CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a um lançamento ou arquivo quando corresponder a pelo menos um de cada um dos diferentes tipos de condição escolhidos.", + "CustomFormatsSettingsTriggerInfo": "Um formato personalizado será aplicado a um lançamento ou arquivo quando corresponder a pelo menos um dos diferentes tipos de condição escolhidos.", "IndexerPriorityHelpText": "Prioridade do indexador de 1 (mais alta) a 50 (mais baixa). Padrão: 25. Usado ao capturar lançamentos como desempate para lançamentos iguais, {appName} ainda usará todos os indexadores habilitados para sincronização e pesquisa de RSS", "AutoTaggingSpecificationTag": "Etiqueta", "NotificationsTelegramSettingsIncludeAppName": "Incluir {appName} no Título", - "NotificationsTelegramSettingsIncludeAppNameHelpText": "Opcionalmente, prefixe o título da mensagem com {appName} para diferenciar notificações de diferentes aplicativos" + "NotificationsTelegramSettingsIncludeAppNameHelpText": "Opcionalmente, prefixe o título da mensagem com {appName} para diferenciar notificações de diferentes aplicativos", + "IndexerSettingsSeedRatio": "Proporção de semeação", + "IndexerSettingsSeedRatioHelpText": "A proporção que um torrent deve atingir antes de parar, vazio usa o padrão do cliente de download. A proporção deve ser de pelo menos 1,0 e seguir as regras dos indexadores", + "IndexerSettingsSeedTime": "Tempo de semeação", + "IndexerSettingsSeedTimeHelpText": "O tempo que um torrent deve ser semeado antes de parar, vazio usa o padrão do cliente de download", + "InteractiveSearchModalHeader": "Pesquisa Interativa", + "InteractiveSearchModalHeaderTitle": "Pesquisa Interativa - {title}" } diff --git a/src/NzbDrone.Core/Localization/Core/tr.json b/src/NzbDrone.Core/Localization/Core/tr.json index f3e22548f..ad7d626f9 100644 --- a/src/NzbDrone.Core/Localization/Core/tr.json +++ b/src/NzbDrone.Core/Localization/Core/tr.json @@ -1,13 +1,13 @@ { "Language": "Dil", - "UiLanguage": "UI Dili", + "UiLanguage": "Arayüz Dili", "UnableToLoadRootFolders": "Kök klasörler yüklenemiyor", "UnableToLoadTheCalendar": "Takvim yüklenemiyor", "UnableToLoadUISettings": "UI ayarları yüklenemiyor", - "Unmonitored": "İzlenmeyen", + "Unmonitored": "Takip Edilmiyor", "UnmonitoredHelpText": "İCal akışına izlenmeyen filmleri dahil et", "UpdateAll": "Tümünü Güncelle", - "UpdateAutomaticallyHelpText": "Güncellemeleri otomatik olarak indirin ve yükleyin. Yine de Sistem'den yükleyebileceksiniz: Güncellemeler", + "UpdateAutomaticallyHelpText": "Güncelleştirmeleri otomatik olarak indirip yükleyin. Sistem: Güncellemeler'den yükleme yapmaya devam edebileceksiniz", "UpdateMechanismHelpText": "{appName}'ın yerleşik güncelleyicisini veya bir komut dosyasını kullanın", "UpdateScriptPathHelpText": "Çıkarılan bir güncelleme paketini alan ve güncelleme işleminin geri kalanını işleyen özel bir komut dosyasına giden yol", "UpgradeAllowedHelpText": "Devre dışı bırakılırsa nitelikler yükseltilmez", @@ -57,8 +57,8 @@ "ShortDateFormat": "Kısa Tarih Formatı", "ShowCutoffUnmetIconHelpText": "Sınıra ulaşılmadığında dosyalar için simge göster", "ShowDateAdded": "Eklenme Tarihi Göster", - "ShowMonitored": "İzlenenleri Göster", - "ShowMonitoredHelpText": "Posterin altında izlenen durumu göster", + "ShowMonitored": "Takip Edilenleri Göster", + "ShowMonitoredHelpText": "Posterin altında takip durumu göster", "Size": " Ölçü", "SkipFreeSpaceCheck": "Boş Alan Kontrolünü Atla", "SkipFreeSpaceCheckWhenImportingHelpText": "{appName} film kök klasörünüzden boş alan algılayamadığında kullanın", @@ -111,7 +111,7 @@ "CreateEmptyArtistFoldersHelpText": "Disk taraması sırasında eksik film klasörleri oluşturun", "CreateGroup": "Grup oluştur", "CutoffHelpText": "Bu kaliteye ulaşıldığında {appName} artık film indirmeyecektir", - "CutoffUnmet": "Kesme Karşılanmadı", + "CutoffUnmet": "Kesinti Karşılanmayan", "DatabaseMigration": "DB Geçişi", "DelayProfile": "Gecikme Profilleri", "DelayProfiles": "Gecikme Profilleri", @@ -207,7 +207,7 @@ "ImportFailedInterp": "İçe aktarma başarısız oldu: {0}", "Importing": "İçe aktarılıyor", "IncludeUnknownArtistItemsHelpText": "Kuyrukta film olmayan öğeleri gösterin. Bu, kaldırılan filmleri veya {appName}'ın kategorisindeki herhangi bir şeyi içerebilir", - "IncludeUnmonitored": "İzlenmeyenleri Dahil Et", + "IncludeUnmonitored": "Takip Edilmeyenleri Dahil Et", "Indexer": "Dizinleyici", "IndexerPriority": "Dizinleyici Önceliği", "Indexers": "Dizinleyiciler", @@ -237,7 +237,7 @@ "MaximumLimits": "Maksimum Sınırlar", "MaximumSize": "En büyük boy", "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": "Mekanizma", + "Mechanism": "İşleyiş", "MediaInfo": "Medya bilgisi", "MediaManagementSettings": "Medya Yönetimi Ayarları", "Medium": "Orta", @@ -251,7 +251,7 @@ "MinimumLimits": "Minimum Limitler", "Missing": "Eksik", "Mode": "Mod", - "Monitored": "İzlendi", + "Monitored": "Takip Ediliyor", "MoreInfo": "Daha fazla bilgi", "MustContain": "İçermeli", "MustNotContain": "İçermemeli", @@ -270,7 +270,7 @@ "PackageVersion": "Paket Versiyonu", "PageSize": "Sayfa boyutu", "PageSizeHelpText": "Her sayfada gösterilecek öğe sayısı", - "Password": "Parola", + "Password": "Şifre", "Path": "Yol", "Permissions": "İzinler", "Port": "Liman", @@ -396,14 +396,14 @@ "TotalFileSize": "Toplam Dosya Boyutu", "Track": "İzleme", "Type": "Tür", - "UiSettings": "UI Ayarları", + "UiSettings": "Arayüz Ayarları", "UnableToAddANewDownloadClientPleaseTryAgain": "Yeni bir indirme istemcisi eklenemiyor, lütfen tekrar deneyin.", "UnableToLoadTags": "Etiketler yüklenemiyor", "Ungroup": "Grubu çöz", "ApplyTags": "Etiketleri Uygula", "Remove": "Kaldır", "SearchAll": "Tümünü ara", - "UiLanguageHelpText": "{appName}'ın UI için kullanacağı dil", + "UiLanguageHelpText": "{appName}'ın arayüz için kullanacağı dil", "UiLanguageHelpTextWarning": "Tarayıcının Yeniden Yüklenmesi Gerekiyor", "UnableToAddANewImportListExclusionPleaseTryAgain": "Yeni bir liste dışlaması eklenemiyor, lütfen tekrar deneyin.", "UnableToAddANewIndexerPleaseTryAgain": "Yeni bir dizinleyici eklenemiyor, lütfen tekrar deneyin.", @@ -466,7 +466,7 @@ "TotalSpace": "Toplam alan", "UnmonitoredOnly": "Sadece İzlenenler", "UpgradesAllowed": "Yükseltmelere İzin Verildi", - "Wanted": "İstenenler", + "Wanted": "Arananlar", "Warn": "Uyar", "Connect": "Bildirimler", "Added": "Eklendi", @@ -493,7 +493,7 @@ "DoNotUpgradeAutomatically": "Otomatik Olarak Yükseltme", "DownloadFailed": "Yükleme başarısız", "EditDelayProfile": "Gecikme Profilini Düzenle", - "EditImportListExclusion": "İçe Aktarma Listesi Hariç Tutmasını Sil", + "EditImportListExclusion": "Hariç Tutulanlar Listesini Düzenle", "EditQualityProfile": "Kalite Profilini Düzenle", "EditRemotePathMapping": "Uzak Yol Eşlemeyi Düzenle", "EditRootFolder": "Kök Klasör Ekle", @@ -514,7 +514,7 @@ "Manual": "Manuel", "MediaManagement": "Medya işletme", "Metadata": "Meta veri", - "MonitoredOnly": "Sadece İzlenenler", + "MonitoredOnly": "Sadece Takip Edilen", "MoveAutomatically": "Otomatik Olarak Taşı", "MoveFiles": "Dosyaları Taşı", "NextExecution": "Sonraki Yürütme", @@ -549,9 +549,9 @@ "Progress": "İlerleme", "Queued": "Kuyruğa alındı", "Rating": "Puan", - "Ui": "UI", + "Ui": "Arayüz", "AddImportListExclusion": "İçe Aktarma Listesi Hariç Tutmasını Sil", - "ImportListExclusions": "İçe Aktarma Listesi Hariç Tutmasını Sil", + "ImportListExclusions": "İçe Aktarma Listesinden Hariç Bırakılan(lar)", "DoneEditingGroups": "Grupları Düzenleme Bitti", "QualitiesHelpText": "Listede üst sıralarda yer alan nitelikler işaretlenmese bile en çok tercih edilendir. Aynı grup içindeki nitelikler eşittir. Yalnızca kontrol edilen nitelikler aranır", "EditGroups": "Grupları Düzenle", @@ -578,7 +578,7 @@ "IncludeCustomFormatWhenRenamingHelpText": "{Özel Biçimler} yeniden adlandırma biçimine dahil et", "ItsEasyToAddANewArtistJustStartTypingTheNameOfTheArtistYouWantToAdd": "Yeni bir film eklemek kolaydır, eklemek istediğiniz filmin adını yazmaya başlayın", "MinFormatScoreHelpText": "İndirmeye izin verilen minimum özel biçim puanı", - "Monitor": "monitor", + "Monitor": "Takip", "NegateHelpText": "İşaretlenirse, bu {0} koşulu eşleşirse özel biçim uygulanmaz.", "PreferTorrent": "Torrent'i tercih et", "PreferUsenet": "Usenet'i tercih et", @@ -640,7 +640,7 @@ "NoEventsFound": "Etkinlik bulunamadı", "QueueIsEmpty": "Kuyruk boş", "Negated": "Reddedildi", - "Required": "gereklidir", + "Required": "Gerekli", "ExistingTag": "Mevcut etiket", "No": "Hayır", "NoChange": "Değişiklik yok", @@ -683,7 +683,7 @@ "DeleteArtistFolderHelpText": "Film klasörünü ve içeriğini silin", "DeleteAutoTagHelpText": "'{name}' etiketini otomatik silmek istediğinizden emin misiniz?", "DeleteSpecification": "Spesifikasyonu Sil", - "DisabledForLocalAddresses": "Yerel Adresler için Devre Dışı Bırakıldı", + "DisabledForLocalAddresses": "Yerel Adreslerde Devre Dışı Bırak", "EditConnectionImplementation": "Koşul Ekle - {implementationName}", "Negate": "Reddet", "OverviewOptions": "Genel Bakış Seçenekler", @@ -728,7 +728,7 @@ "DefaultCase": "Varsayılan Durum", "FileNameTokens": "Dosya Adı Belirteçleri", "KeyboardShortcuts": "Klavye kısayolları", - "MonitoredStatus": "İzlendi / Durum", + "MonitoredStatus": "Takip Edilen/Durum", "Lowercase": "Küçük Harf", "EditDownloadClientImplementation": "İndirme İstemcisini Düzenle - {implementationName}", "EditImportListImplementation": "İçe Aktarma Listesini Düzenle - {implementationName}", @@ -753,7 +753,7 @@ "CustomFilter": "Özel Filtre", "CustomFormatsSpecificationRegularExpression": "Düzenli ifade", "CustomFormatsSpecificationRegularExpressionHelpText": "Özel Format RegEx Büyük/Küçük Harfe Duyarsızdır", - "AutomaticUpdatesDisabledDocker": "Docker güncelleme mekanizması kullanıldığında otomatik güncellemeler doğrudan desteklenmez. Kapsayıcı 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", "ApplicationURL": "Uygulama URL'si", "ApplicationUrlHelpText": "Bu uygulamanın http(s)://, bağlantı noktası ve URL tabanını içeren harici URL'si", "AuthenticationRequiredPasswordHelpTextWarning": "Yeni şifre girin", @@ -767,7 +767,7 @@ "AutoTaggingLoadError": "Otomatik etiketleme yüklenemiyor", "AuthenticationMethod": "Kimlik Doğrulama Yöntemi", "AuthenticationMethodHelpTextWarning": "Lütfen geçerli bir kimlik doğrulama yöntemi seçin", - "AuthenticationRequired": "Kimlik Doğrulama Gerekli", + "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.", "AutoRedownloadFailedFromInteractiveSearch": "Etkileşimli Aramadan Yeniden İndirme Başarısız Oldu", "AutoRedownloadFailedFromInteractiveSearchHelpText": "Başarısız indirmeler, etkileşimli aramada bulunduğunda otomatik olarak farklı bir versiyonu arayın ve indirmeyi deneyin", @@ -901,7 +901,7 @@ "NotificationsSettingsUpdateMapPathsTo": "Harita Yolları", "NotificationsSettingsUseSslHelpText": "{serviceName} hizmetine HTTP yerine HTTPS üzerinden bağlanın", "NotificationsSettingsUpdateMapPathsToHelpText": "{serviceName}, kitaplık yolu konumunu {appName}'den farklı gördüğünde seri yollarını değiştirmek için kullanılan {serviceName} yolu ('Kütüphaneyi Güncelle' gerektirir)", - "PasswordConfirmation": "Şifre onayı", + "PasswordConfirmation": "Şifre Tekrarı", "Rejections": "Reddedilenler", "ReleaseProfiles": "Yayımlama Profilleri", "SelectIndexerFlags": "Dizinleyici Bayraklarını Seçin", @@ -949,5 +949,12 @@ "SelectReleaseGroup": "Yayımlama Grubunu Seçin", "QueueFilterHasNoItems": "Seçilen kuyruk filtresinde hiç öğe yok", "NotificationsSettingsUpdateMapPathsFrom": "Harita Yolları", - "PreferProtocol": "{preferredProtocol}'u tercih edin" + "PreferProtocol": "{preferredProtocol}'u tercih edin", + "IndexerSettingsSeedTime": "Seed Süresi", + "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", + "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", + "External": "Harici", + "InteractiveSearchModalHeaderTitle": "İnteraktif Arama - {title}", + "MassSearchCancelWarning": "Bu işlem, {appName} yeniden başlatılmadan veya tüm dizin oluşturucularınız devre dışı bırakılmadan başlatılır ise iptal edilemez." } diff --git a/src/NzbDrone.Core/Localization/Core/zh_CN.json b/src/NzbDrone.Core/Localization/Core/zh_CN.json index d05193a61..e78b70b36 100644 --- a/src/NzbDrone.Core/Localization/Core/zh_CN.json +++ b/src/NzbDrone.Core/Localization/Core/zh_CN.json @@ -200,7 +200,7 @@ "UpdateMechanismHelpText": "使用 {appName} 内置的更新程序或脚本", "AlternateTitleslength1Title": "标题", "AlternateTitleslength1Titles": "标题", - "AnalyticsEnabledHelpText": "向 {appName} 的服务器发送匿名使用和错误信息。 这包括有关您的浏览器、您使用的 {appName} WebUI 页面、错误报告以及操作系统和运行时版本的信息。 我们将使用此信息来确定功能和错误修复的优先级。", + "AnalyticsEnabledHelpText": "将匿名使用情况和错误信息发送到{appName}的服务器。这包括有关您的浏览器的信息、您使用的{appName} WebUI页面、错误报告以及操作系统和运行时版本。我们将使用此信息来确定功能和错误修复的优先级。", "AnalyticsEnabledHelpTextWarning": "需要重启才能生效", "AnchorTooltip": "此文件已在您的库中,用于您当前正在导入的版本", "RemotePath": "远程路径", @@ -219,7 +219,7 @@ "ArtistAlbumClickToChangeTrack": "单击以修改曲目", "ArtistClickToChangeAlbum": "单击以修改专辑", "AutoRedownloadFailedHelpText": "自动搜索并尝试下载不同的版本", - "BackupFolderHelpText": "{appName} 的 AppData 目录下的相对路径", + "BackupFolderHelpText": "相对路径将在 {appName} 的 AppData 目录下", "BindAddressHelpTextWarning": "需重启以生效", "Blocklist": "黑名单", "BlocklistRelease": "黑名单版本", @@ -417,7 +417,7 @@ "ICalFeed": "iCal订阅地址", "ICalHttpUrlHelpText": "将此URL复制到您的客户端,如果您的浏览器支持webcal,请直接点击右侧订阅按钮", "ICalLink": "iCal链接", - "IconForCutoffUnmet": "未满足停止监控的图标", + "IconForCutoffUnmet": "未达设定标准的图标", "IgnoredHelpText": "如版本包含一个或多个条件则丢弃(无视大小写)", "ImportedTo": "导入到", "ImportExtraFiles": "导入额外文件", @@ -463,7 +463,7 @@ "ShortDateFormat": "短日期格式", "ShowCutoffUnmetIconHelpText": "终止监控条件未满足前为文件显示图标", "UiLanguageHelpText": "{appName}使用的UI界面语言", - "CutoffUnmet": "终止未满足", + "CutoffUnmet": "未达设定标准", "AgeWhenGrabbed": "发布时长", "AnyReleaseOkHelpText": "{appName} 将会自动切换到与已下载文件最匹配的版本", "DelayingDownloadUntil": "延时下载直到 {1} 在 {0} 之前 Delaying download until {0} at {1}", @@ -688,7 +688,7 @@ "UnmappedFilesOnly": "仅限未映射的文件", "UnmonitoredOnly": "监控中", "UpgradesAllowed": "允许升级", - "Wanted": "已追踪", + "Wanted": "待获取", "Warn": "警告", "WouldYouLikeToRestoreBackup": "是否要还原备份“{name}”?", "WriteMetadataTags": "编写元数据标签", @@ -1017,7 +1017,7 @@ "BypassIfHighestQualityHelpText": "当发布版本在使用首选协议的质量配置文件中具有最高启用质量时,跳过延迟", "PreferProtocol": "首选 {preferredProtocol}", "SkipRedownloadHelpText": "阻止 {appName} 尝试下载已删除项目的替代版本", - "AppUpdatedVersion": "{appName}已更新为版本` {version}`,为了获得最新的更改,您需要重新加载{appName}", + "AppUpdatedVersion": "{appName} 已经更新到 {version} 版本,重新加载 {appName} 使更新生效", "DeleteFormat": "删除格式", "CloneCondition": "克隆条件", "DashOrSpaceDashDependingOnName": "破折号或空格破折号取决于名字", @@ -1264,5 +1264,7 @@ "UseSsl": "使用 SSL", "CustomFormatsSpecificationFlag": "标记", "AutoTaggingSpecificationTag": "标签", - "AddAutoTagError": "无法添加新的自动标签,请重试。" + "AddAutoTagError": "无法添加新的自动标签,请重试。", + "ClickToChangeIndexerFlags": "点击修改索引器标志", + "CustomFormatsSettingsTriggerInfo": "当一个发布版本或文件至少匹配其中一个条件时,自定义格式将会被应用到这个版本或文件上。" } From 4752b54e26978c6eadbd1ea05c950941c8f3c2b9 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 6 Jun 2024 12:09:39 +0300 Subject: [PATCH 005/333] Fixed: Ignore case for name validation in providers (cherry picked from commit 0edc5ba99a15c5f80305b387a053f35fc3f6e51b) --- src/Lidarr.Api.V1/ProviderControllerBase.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Lidarr.Api.V1/ProviderControllerBase.cs b/src/Lidarr.Api.V1/ProviderControllerBase.cs index 74887f4cd..078276e06 100644 --- a/src/Lidarr.Api.V1/ProviderControllerBase.cs +++ b/src/Lidarr.Api.V1/ProviderControllerBase.cs @@ -5,6 +5,7 @@ using FluentValidation.Results; using Lidarr.Http.REST; using Lidarr.Http.REST.Attributes; using Microsoft.AspNetCore.Mvc; +using NzbDrone.Common.Extensions; using NzbDrone.Common.Serializer; using NzbDrone.Core.ThingiProvider; using NzbDrone.Core.Validation; @@ -32,7 +33,7 @@ namespace Lidarr.Api.V1 _bulkResourceMapper = bulkResourceMapper; SharedValidator.RuleFor(c => c.Name).NotEmpty(); - SharedValidator.RuleFor(c => c.Name).Must((v, c) => !_providerFactory.All().Any(p => p.Name == c && p.Id != v.Id)).WithMessage("Should be unique"); + SharedValidator.RuleFor(c => c.Name).Must((v, c) => !_providerFactory.All().Any(p => p.Name.EqualsIgnoreCase(c) && p.Id != v.Id)).WithMessage("Should be unique"); SharedValidator.RuleFor(c => c.Implementation).NotEmpty(); SharedValidator.RuleFor(c => c.ConfigContract).NotEmpty(); From 7d46360c34ab7c9897cacb9cbd23f47ab54f68ef Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 6 Jun 2024 12:10:08 +0300 Subject: [PATCH 006/333] Fixed: Ignore case when resolving indexer by name in release push (cherry picked from commit a90ab1a8fd50126d7f60eaa684eac1e0cd98e2b7) --- src/Lidarr.Api.V1/Indexers/ReleasePushController.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Lidarr.Api.V1/Indexers/ReleasePushController.cs b/src/Lidarr.Api.V1/Indexers/ReleasePushController.cs index 38ae6cb1d..21b4fb473 100644 --- a/src/Lidarr.Api.V1/Indexers/ReleasePushController.cs +++ b/src/Lidarr.Api.V1/Indexers/ReleasePushController.cs @@ -86,7 +86,8 @@ namespace Lidarr.Api.V1.Indexers { if (release.IndexerId == 0 && release.Indexer.IsNotNullOrWhiteSpace()) { - var indexer = _indexerFactory.All().FirstOrDefault(v => v.Name == release.Indexer); + var indexer = _indexerFactory.All().FirstOrDefault(v => v.Name.EqualsIgnoreCase(release.Indexer)); + if (indexer != null) { release.IndexerId = indexer.Id; From 448d29f1352cc5b05df4735cf8c33bbec5d3e1a8 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Fri, 7 Jun 2024 15:43:06 -0700 Subject: [PATCH 007/333] Fixed: Improve error messaging if config file isn't formatted correctly (cherry picked from commit 52b72925f9d42c896144dde3099dc19c397327b0) --- .../Configuration/ConfigFileProvider.cs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs index d30ef0b88..62a189379 100644 --- a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs +++ b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs @@ -403,13 +403,21 @@ namespace NzbDrone.Core.Configuration throw new InvalidConfigFileException($"{_configFile} is corrupt. Please delete the config file and Lidarr will recreate it."); } - return XDocument.Parse(_diskProvider.ReadAllText(_configFile)); + var xDoc = XDocument.Parse(_diskProvider.ReadAllText(_configFile)); + var config = xDoc.Descendants(CONFIG_ELEMENT_NAME).ToList(); + + if (config.Count != 1) + { + throw new InvalidConfigFileException($"{_configFile} is invalid. Please delete the config file and Sonarr will recreate it."); + } + + return xDoc; } - var xDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); - xDoc.Add(new XElement(CONFIG_ELEMENT_NAME)); + var newXDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); + newXDoc.Add(new XElement(CONFIG_ELEMENT_NAME)); - return xDoc; + return newXDoc; } } catch (XmlException ex) From 4832860cce89cb019fb05d79b6bf2226e97ae8d0 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 11 Jun 2024 07:41:54 +0300 Subject: [PATCH 008/333] Rename Sonarr to Lidarr --- src/NzbDrone.Core/Configuration/ConfigFileProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs index 62a189379..69cc0575a 100644 --- a/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs +++ b/src/NzbDrone.Core/Configuration/ConfigFileProvider.cs @@ -408,7 +408,7 @@ namespace NzbDrone.Core.Configuration if (config.Count != 1) { - throw new InvalidConfigFileException($"{_configFile} is invalid. Please delete the config file and Sonarr will recreate it."); + throw new InvalidConfigFileException($"{_configFile} is invalid. Please delete the config file and Lidarr will recreate it."); } return xDoc; From 9eda077c03ad7933974811fb573beb420a57a939 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 10 Jun 2024 11:23:33 +0300 Subject: [PATCH 009/333] Ignore `Grabbed` from API docs Run application in docs.sh specific to platform (cherry picked from commit c331c8bd119fa9f85a53e96db04f541b2d90bbd3) Closes #4847 --- docs.sh | 10 ++++++++-- src/Lidarr.Api.V1/Albums/AlbumResource.cs | 2 ++ src/Lidarr.Api.V1/Lidarr.Api.V1.csproj | 1 + src/Lidarr.Api.V1/Tracks/TrackResource.cs | 2 ++ src/NzbDrone.Host/Lidarr.Host.csproj | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/docs.sh b/docs.sh index 9cbb02756..a84de5fc0 100644 --- a/docs.sh +++ b/docs.sh @@ -21,15 +21,21 @@ slnFile=src/Lidarr.sln platform=Posix +if [ "$PLATFORM" = "Windows" ]; then + application=Lidarr.Console.dll +else + application=Lidarr.dll +fi + dotnet clean $slnFile -c Debug dotnet clean $slnFile -c Release dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids dotnet new tool-manifest -dotnet tool install --version 6.5.0 Swashbuckle.AspNetCore.Cli +dotnet tool install --version 6.6.2 Swashbuckle.AspNetCore.Cli -dotnet tool run swagger tofile --output ./src/Lidarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/lidarr.console.dll" v1 & +dotnet tool run swagger tofile --output ./src/Lidarr.Api.V1/openapi.json "$outputFolder/net6.0/$RUNTIME/$application" v1 & sleep 45 diff --git a/src/Lidarr.Api.V1/Albums/AlbumResource.cs b/src/Lidarr.Api.V1/Albums/AlbumResource.cs index 06548e334..7a3d2a561 100644 --- a/src/Lidarr.Api.V1/Albums/AlbumResource.cs +++ b/src/Lidarr.Api.V1/Albums/AlbumResource.cs @@ -6,6 +6,7 @@ using Lidarr.Http.REST; using Newtonsoft.Json; using NzbDrone.Core.MediaCover; using NzbDrone.Core.Music; +using Swashbuckle.AspNetCore.Annotations; namespace Lidarr.Api.V1.Albums { @@ -49,6 +50,7 @@ namespace Lidarr.Api.V1.Albums // Hiding this so people don't think its usable (only used to set the initial state) [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + [SwaggerIgnore] public bool Grabbed { get; set; } } diff --git a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj index 7fe0a2d5a..da4390af4 100644 --- a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj +++ b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj @@ -9,6 +9,7 @@ + diff --git a/src/Lidarr.Api.V1/Tracks/TrackResource.cs b/src/Lidarr.Api.V1/Tracks/TrackResource.cs index 47f58811d..6e66e7922 100644 --- a/src/Lidarr.Api.V1/Tracks/TrackResource.cs +++ b/src/Lidarr.Api.V1/Tracks/TrackResource.cs @@ -5,6 +5,7 @@ using Lidarr.Api.V1.TrackFiles; using Lidarr.Http.REST; using Newtonsoft.Json; using NzbDrone.Core.Music; +using Swashbuckle.AspNetCore.Annotations; namespace Lidarr.Api.V1.Tracks { @@ -29,6 +30,7 @@ namespace Lidarr.Api.V1.Tracks // Hiding this so people don't think its usable (only used to set the initial state) [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + [SwaggerIgnore] public bool Grabbed { get; set; } } diff --git a/src/NzbDrone.Host/Lidarr.Host.csproj b/src/NzbDrone.Host/Lidarr.Host.csproj index 9c3f91115..2209c0b6a 100644 --- a/src/NzbDrone.Host/Lidarr.Host.csproj +++ b/src/NzbDrone.Host/Lidarr.Host.csproj @@ -6,7 +6,7 @@ - + From 3b0f9500a882f6e1d30b2a36f56e026246cd195a Mon Sep 17 00:00:00 2001 From: Weblate Date: Sun, 9 Jun 2024 16:25:32 +0000 Subject: [PATCH 010/333] Multiple Translations updated by Weblate ignore-downstream Co-authored-by: Anonymous Co-authored-by: Weblate Co-authored-by: XRedShark Co-authored-by: deepserket Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ar/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/bg/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ca/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/cs/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/da/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/de/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/el/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/fi/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/fr/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/he/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/hi/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/hr/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/hu/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/id/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/is/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/it/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ja/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ko/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/lv/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/nb_NO/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/nl/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/pl/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/pt/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/ro/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/sk/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/sv/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/th/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/tr/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/uk/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/zh_CN/ Translate-URL: https://translate.servarr.com/projects/servarr/lidarr/zh_TW/ Translation: Servarr/Lidarr --- src/NzbDrone.Core/Localization/Core/ar.json | 4 +- src/NzbDrone.Core/Localization/Core/bg.json | 4 +- src/NzbDrone.Core/Localization/Core/ca.json | 5 +- src/NzbDrone.Core/Localization/Core/cs.json | 6 +- src/NzbDrone.Core/Localization/Core/da.json | 6 +- src/NzbDrone.Core/Localization/Core/de.json | 154 +++++++++- src/NzbDrone.Core/Localization/Core/el.json | 6 +- src/NzbDrone.Core/Localization/Core/fi.json | 132 +++++++- src/NzbDrone.Core/Localization/Core/fr.json | 12 +- src/NzbDrone.Core/Localization/Core/he.json | 19 +- src/NzbDrone.Core/Localization/Core/hi.json | 39 ++- src/NzbDrone.Core/Localization/Core/hr.json | 97 +++++- src/NzbDrone.Core/Localization/Core/hu.json | 90 +++++- src/NzbDrone.Core/Localization/Core/id.json | 26 +- src/NzbDrone.Core/Localization/Core/is.json | 86 +++++- src/NzbDrone.Core/Localization/Core/it.json | 26 +- src/NzbDrone.Core/Localization/Core/ja.json | 14 +- src/NzbDrone.Core/Localization/Core/ko.json | 33 +- src/NzbDrone.Core/Localization/Core/lv.json | 9 +- .../Localization/Core/nb_NO.json | 19 +- src/NzbDrone.Core/Localization/Core/nl.json | 20 +- src/NzbDrone.Core/Localization/Core/pl.json | 4 +- src/NzbDrone.Core/Localization/Core/pt.json | 7 +- src/NzbDrone.Core/Localization/Core/ro.json | 97 +++++- src/NzbDrone.Core/Localization/Core/sk.json | 44 ++- src/NzbDrone.Core/Localization/Core/sv.json | 119 +++++++- src/NzbDrone.Core/Localization/Core/th.json | 109 ++++++- src/NzbDrone.Core/Localization/Core/tr.json | 48 ++- src/NzbDrone.Core/Localization/Core/uk.json | 287 +++++++++++++++++- .../Localization/Core/zh_CN.json | 9 +- .../Localization/Core/zh_TW.json | 145 ++++++++- 31 files changed, 1643 insertions(+), 33 deletions(-) diff --git a/src/NzbDrone.Core/Localization/Core/ar.json b/src/NzbDrone.Core/Localization/Core/ar.json index 26ed9e7b0..0d406af2c 100644 --- a/src/NzbDrone.Core/Localization/Core/ar.json +++ b/src/NzbDrone.Core/Localization/Core/ar.json @@ -736,5 +736,7 @@ "Tomorrow": "غدا", "GrabReleaseUnknownArtistOrAlbumMessageText": "لم يتمكن Radarr من تحديد الفيلم الذي كان هذا الإصدار من أجله. قد يتعذر على Radarr استيراد هذا الإصدار تلقائيًا. هل تريد انتزاع \"{0}\"؟", "AddToDownloadQueue": "إضافة إلى قائمة انتظار التنزيل", - "AddedToDownloadQueue": "تمت الإضافة إلى قائمة انتظار التنزيلات" + "AddedToDownloadQueue": "تمت الإضافة إلى قائمة انتظار التنزيلات", + "InteractiveSearchModalHeader": "بحث تفاعلي", + "IndexerPriorityHelpText": "أولوية المفهرس من 1 (الأعلى) إلى 50 (الأدنى). الافتراضي: 25." } diff --git a/src/NzbDrone.Core/Localization/Core/bg.json b/src/NzbDrone.Core/Localization/Core/bg.json index 3e2643765..91e7f017a 100644 --- a/src/NzbDrone.Core/Localization/Core/bg.json +++ b/src/NzbDrone.Core/Localization/Core/bg.json @@ -736,5 +736,7 @@ "MonitorNoAlbums": "Нито един", "Tomorrow": "Утре", "Yesterday": "Вчера", - "IndexerFlags": "Индексиращи знамена" + "IndexerFlags": "Индексиращи знамена", + "InteractiveSearchModalHeader": "Интерактивно търсене", + "IndexerPriorityHelpText": "Приоритет на индексатора от 1 (най-висок) до 50 (най-нисък). По подразбиране: 25." } diff --git a/src/NzbDrone.Core/Localization/Core/ca.json b/src/NzbDrone.Core/Localization/Core/ca.json index 20b9ae06b..c3e423a88 100644 --- a/src/NzbDrone.Core/Localization/Core/ca.json +++ b/src/NzbDrone.Core/Localization/Core/ca.json @@ -939,5 +939,8 @@ "FormatAgeMinute": "minut", "FormatAgeMinutes": "Minuts", "AutoTaggingSpecificationTag": "Etiqueta", - "Logout": "Tanca la sessió" + "Logout": "Tanca la sessió", + "InteractiveSearchModalHeader": "Cerca interactiva", + "Menu": "Menú", + "IndexerPriorityHelpText": "Prioritat de l'indexador d'1 (la més alta) a 50 (la més baixa). Per defecte: 25. S'utilitza quan es capturen llançaments com a desempat per a versions iguals, {appName} encara utilitzarà tots els indexadors habilitats per a la sincronització i la cerca RSS" } diff --git a/src/NzbDrone.Core/Localization/Core/cs.json b/src/NzbDrone.Core/Localization/Core/cs.json index f76dc2dc3..05ef62900 100644 --- a/src/NzbDrone.Core/Localization/Core/cs.json +++ b/src/NzbDrone.Core/Localization/Core/cs.json @@ -857,5 +857,9 @@ "FormatDateTime": "{formattedDate} {formattedTime}", "Yesterday": "Včera", "AddToDownloadQueue": "Přidat stahování do fronty", - "AddedToDownloadQueue": "Stahování přidáno do fronty" + "AddedToDownloadQueue": "Stahování přidáno do fronty", + "InteractiveSearchModalHeader": "Interaktivní vyhledávání", + "Release": " Uvolněno", + "AutoTaggingSpecificationTag": "Značka", + "IndexerPriorityHelpText": "Priorita indexovacího modulu od 1 (nejvyšší) do 50 (nejnižší). Výchozí: 25. Používá se při získávání verzí jako rozhodující prvek pro jinak stejné verze, {appName} bude stále používat všechny povolené indexovací moduly pro Synchronizaci RSS a vyhledávání" } diff --git a/src/NzbDrone.Core/Localization/Core/da.json b/src/NzbDrone.Core/Localization/Core/da.json index 56bddcdc5..4d0879b91 100644 --- a/src/NzbDrone.Core/Localization/Core/da.json +++ b/src/NzbDrone.Core/Localization/Core/da.json @@ -761,5 +761,9 @@ "Tomorrow": "I morgen", "Yesterday": "I går", "Albums": "album", - "IndexerFlags": "Indexer Flag" + "IndexerFlags": "Indexer Flag", + "Release": " udgivelse", + "InteractiveSearchModalHeader": "Interaktiv søgning", + "FormatAgeHour": "Timer", + "IndexerPriorityHelpText": "Indekseringsprioritet fra 1 (højest) til 50 (lavest). Standard: 25." } diff --git a/src/NzbDrone.Core/Localization/Core/de.json b/src/NzbDrone.Core/Localization/Core/de.json index 46f0f68e6..94ee8c652 100644 --- a/src/NzbDrone.Core/Localization/Core/de.json +++ b/src/NzbDrone.Core/Localization/Core/de.json @@ -1024,5 +1024,157 @@ "ConnectionSettingsUrlBaseHelpText": "Fügt ein Präfix zur {connectionName} URL hinzu, z. B. {url}", "DownloadClientDelugeSettingsDirectory": "Download Verzeichnis", "DownloadClientDelugeSettingsDirectoryCompleted": "Verschieben, wenn Verzeichnis abgeschlossen", - "IndexerDownloadClientHealthCheckMessage": "Indexer mit ungültigen Downloader: {0}." + "IndexerDownloadClientHealthCheckMessage": "Indexer mit ungültigen Downloader: {0}.", + "Dash": "Bindestrich", + "Lowercase": "Kleingeschrieben", + "GrabReleaseUnknownArtistOrAlbumMessageText": "Das Release konnte keinem Film zugeordnet werden. Ein automatischer Import wird nicht möglich sein. Trotzdem '{0}' erfassen?", + "NotificationStatusSingleClientHealthCheckMessage": "Applikationen wegen folgender Fehler nicht verfügbar: {0}", + "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.", + "EditDownloadClientImplementation": "Download-Client hinzufügen - {implementationName}", + "ImportList": "Liste", + "ImportListRootFolderMultipleMissingRootsHealthCheckMessage": "Mehrere Stammverzeichnisse fehlen für Importlist: {0}", + "MonitorExistingAlbums": "Vorhandene Alben", + "Negate": "Negieren", + "NoChange": "Keine Änderung", + "NoMinimumForAnyDuration": "Kein Minimum für Laufzeiten", + "PreferredSize": "Bevorzugte Größe", + "ShowNextAlbum": "Zeige neuestes Album", + "FailedToLoadQueue": "Warteschlange konnte nicht geladen werden", + "InteractiveSearchModalHeader": "Interaktive Suche", + "MonitorFirstAlbum": "Erstes Album", + "MonitorFutureAlbums": "Zukünftige Alben", + "Negated": "Negiert", + "OverviewOptions": "Übersichts Optionen", + "RegularExpressionsTutorialLink": "Weitere Details zu regulären Ausdrücken finden Sie [hier](https://www.regular-expressions.info/tutorial.html).", + "UseSsl": "SSL verwenden", + "DownloadClientsSettingsSummary": "Download Clients, Downloadverarbeitung und Remote-Pfadzuordnungen", + "EditConditionImplementation": "Verbindung hinzufügen - {implementationName}", + "Enabled": "Aktiviert", + "KeyboardShortcuts": "Tastenkürzel", + "MonitorArtists": "Beobachte Künstler", + "MonitorLastestAlbum": "Neuestes Album", + "MonitorNoAlbums": "Keine", + "PosterOptions": "Poster Optionen", + "Posters": "Plakate", + "RemoveSelectedItemQueueMessageText": "Bist du sicher, dass du ein Eintrag aus der Warteschlange entfernen willst?", + "RemovingTag": "Tag entfernen", + "Yesterday": "Gestern", + "RemoveSelectedItems": "Markierte Einträge löschen", + "Total": "Gesamt", + "AutoAdd": "Automatisch hinzufügen", + "BlocklistReleaseHelpText": "Dieses Release nicht automatisch erneut erfassen", + "CloneCondition": "Bedingung klonen", + "CountIndexersSelected": "{selectedCount} Künstler ausgewählt", + "MonitorNewAlbums": "Neues Album", + "EditConnectionImplementation": "Verbindung hinzufügen - {implementationName}", + "No": "Nein", + "Priority": "Priorität", + "NoEventsFound": "Keine Events gefunden", + "ResetQualityDefinitions": "Qualitätsdefinitionen zurücksetzen", + "DeleteConditionMessageText": "Bist du sicher, dass du die Bedingung '{name}' löschen willst?", + "Links": "Links", + "Space": "Platz", + "Unlimited": "Unlimitiert", + "DownloadClientTagHelpText": "Benutze den Indexer nur für Filme mit mindesens einen zutreffenden Tag. Leer lassen für alle Filme.", + "ExtraFileExtensionsHelpText": "Kommaseparierte Liste von Dateiendungen die als Extra Dateien importiert werden sollen ( .nfo wird in .nfo-orig umbenannt )", + "ExtraFileExtensionsHelpTextsExamples": "Vorschläge: sub, nfo, srt, jpg", + "NotificationStatusAllClientHealthCheckMessage": "Wegen Fehlern sind keine Applikationen verfügbar", + "BypassIfAboveCustomFormatScore": "Umgehen, wenn über dem Wert des benutzerdefinierten Formats liegt", + "Donate": "Spenden", + "MonitorMissingAlbums": "Fehlende Alben", + "RemoveTagsAutomaticallyHelpText": "Entfernen Sie Tags automatisch, wenn die Bedingungen nicht erfüllt sind", + "Table": "Tabelle", + "RemoveCompletedDownloads": "Entferne abgeschlossene Downloads", + "SomeResultsAreHiddenByTheAppliedFilter": "Einige Ergebnisse werden durch den angewendeten Filter ausgeblendet", + "SearchForAllCutoffUnmetAlbumsConfirmationCount": "Bist du dir sicher, dass du nach allen '{0}' fehlenden Alben suchen willst?", + "MonitoredStatus": "Beobachtet/Status", + "DownloadClientSortingCheckMessage": "Im Download-Client {downloadClientName} ist die Sortierung {sortingMode} für die Kategorie von {appName} aktiviert. Sie sollten die Sortierung in Ihrem Download-Client deaktivieren, um Importprobleme zu vermeiden.", + "ImportListsSettingsSummary": "Listen importieren, Listenausschlüsse", + "MetadataSettingsArtistSummary": "Metadaten-Dateien erstellen, wenn Bücher importiert oder Autoren aktualisiert werden", + "QualitySettingsSummary": "Qualitätsgrößen und Namensgebung", + "UiSettingsSummary": "Kalender-, Datums- und Farboptionen", + "Uppercase": "Großschrift", + "DefaultCase": "Standardfall", + "IndexerFlags": "Indexer-Flags", + "Rejections": "Ablehnungen", + "ReleaseProfile": "Veröffentlichungsprofile", + "MinimumCustomFormatScoreHelpText": "Mindestwert für benutzerdefiniertes Format, der erforderlich ist, um Verzögerungen für das bevorzugte Protokoll zu umgehen", + "NoLimitForAnyDuration": "Keine Begrenzung der Laufzeiten", + "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", + "GeneralSettingsSummary": "Port, SSL, Benutzername/Passwort, Proxy, Analytik und Updates", + "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", + "ConnectSettingsSummary": "Benachrichtigungen, Verbindungen zu Medienservern/-playern und benutzerdefinierte Skripte", + "DisabledForLocalAddresses": "Für lokale Adressen deaktiviert", + "FileNameTokens": "Dateinamen Teile", + "ImportListRootFolderMissingRootHealthCheckMessage": "Fehlendes Stammverzeichnis für Importlist(en): {0}", + "ProfilesSettingsArtistSummary": "Qualität, Metadaten, Verzögerung und Release Profile", + "EditImportListImplementation": "Importliste hinzufügen - {implementationName}", + "EditIndexerImplementation": "Indexer hinzufügen - {implementationName}", + "SetTags": "Tags festlegen", + "NoResultsFound": "Keine Ergebnisse gefunden", + "GrabId": "Erfass ID", + "Large": "Groß", + "RenameFiles": "Dateien umbenennen", + "Small": "Klein", + "CountDownloadClientsSelected": "{count} Download-Client(s) ausgewählt", + "Loading": "Lade", + "RemoveSelectedItemsQueueMessageText": "Bist du sicher, dass du {0} Einträge aus der Warteschlange entfernen willst?", + "ErrorLoadingContent": "Beim Laden des Eintrags ist ein Fehler aufgetreten", + "AuthBasic": "Basis (Browser-Popup)", + "AuthForm": "Formulare (Anmeldeseite)", + "AuthenticationMethod": "Authentifizierungsmethode", + "Auto": "Automatisch", + "ConnectionLost": "Verbindung unterbrochen", + "CountImportListsSelected": "{selectedCount} Künstler ausgewählt", + "ExistingTag": "Vorhandener Tag", + "FormatAgeDays": "Tage", + "FormatAgeHour": "Stunden", + "FormatAgeHours": "Stunden", + "FormatAgeMinute": "Minuten", + "FormatAgeMinutes": "Minuten", + "MediaManagementSettingsSummary": "Namensgebung, Dateimanagement-Einstellungen und Root-Ordner", + "MonitorAllAlbums": "Alle Alben", + "OrganizeSelectedArtists": "Ausgewählte Filme organisieren", + "Overview": "Übersicht", + "TagsSettingsSummary": "Sehen Sie sich alle Tags und deren Verwendung an. Nicht verwendete Tags können entfernt werden", + "Tomorrow": "Morgen", + "ClearBlocklistMessageText": "Sind Sie sicher, dass Sie alle Elemente aus der Sperrliste löschen möchten?", + "Deceased": "Verstorben", + "DeleteArtistFolderCountConfirmation": "Sind Sie sicher, dass Sie {count} ausgewählte Serien löschen möchten?", + "DeleteArtistFolderCountWithFilesConfirmation": "Sind Sie sicher, dass Sie {count} ausgewählte Serien und alle Inhalte löschen möchten?", + "DeleteArtistFolderHelpText": "Löschen Sie den Serienordner und seinen Inhalt", + "DeleteAutoTagHelpText": "Sind Sie sicher, dass Sie das automatische Tag „{name}“ löschen möchten?", + "DeleteSelectedDownloadClientsMessageText": "Sind Sie sicher, dass Sie {count} ausgewählte Download-Clients löschen möchten?", + "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.", + "IncludeHealthWarnings": "Zustandswarnung", + "Required": "Erforderlich", + "ResetTitlesHelpText": "Definitionstitel und -werte zurücksetzen", + "UpdateFiltered": "Gefilterte updaten", + "Yes": "Ja", + "RemoveQueueItemConfirmation": "Bist du sicher, dass du {0} Einträge aus der Warteschlange entfernen willst?", + "RemoveSelectedItem": "Entferne ausgewählten Eintrag", + "AutoTaggingLoadError": "Automatisches Tagging konnte nicht geladen werden", + "RemoveTagsAutomatically": "Tags automatisch entfernen", + "BypassIfHighestQualityHelpText": "Umgehungs-Verzögerung, wenn die Freigabe die höchste aktivierte Qualität im Qualitätsprofil mit dem bevorzugten Protokoll hat", + "CountArtistsSelected": "{count} Importliste(n) ausgewählt", + "Connection": "Verbindung", + "DeleteSelectedImportListsMessageText": "Sind Sie sicher, dass Sie {count} ausgewählte Importliste(n) löschen möchten?", + "DeleteAutoTag": "Auto-Tag löschen", + "SuggestTranslationChange": "Schlage eine Übersetzung vor", + "AutoRedownloadFailed": "Download fehlgeschlagen", + "AutoRedownloadFailedFromInteractiveSearch": "Erneuter Download aus Interaktiver Suche fehlgeschlagen", + "AutoRedownloadFailedFromInteractiveSearchHelpText": "Suchen Sie automatisch nach einer anderen Version und versuchen Sie, sie herunterzuladen, wenn eine fehlerhafte Version aus der interaktiven Suche ausgewählt wurde", + "ConditionUsingRegularExpressions": "Diese Bedingung entspricht der Verwendung regulärer Ausdrücke. Beachten Sie, dass die Zeichen „\\^$.|?*+()[{“ eine besondere Bedeutung haben und mit einem „\\“ maskiert werden müssen", + "DeleteSelectedArtists": "Lösche ausgewählten Künstler", + "AutomaticSearch": "Automatische Suche", + "AutoTagging": "Automatisches Tagging", + "DeleteSelectedIndexersMessageText": "Sind Sie sicher, dass Sie {count} ausgewählte(n) Indexer löschen möchten?", + "DeleteSpecification": "Spezifikation löschen", + "IndexerPriorityHelpText": "Indexer Priorität von 1 (höchste) bis 50 (niedrigste). Standard: 25. Wird beim Erfassen von Releases als Entscheidungskriterium für andernfalls gleiche Releases verwendet, {appName} wird trotzdem alle aktivierten Indexer für RSS-Sync und Suche verwenden", + "DeleteArtistFoldersHelpText": "Löschen Sie die Serienordner und ihren gesamten Inhalt", + "DeleteSpecificationHelpText": "Sind Sie sicher, dass Sie die Spezifikation „{name}“ löschen möchten?", + "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden", + "DownloadClientDelugeSettingsDirectoryHelpText": "Optionaler Speicherort für Downloads. Lassen Sie das Feld leer, um den standardmäßigen rTorrent-Speicherort zu verwenden", + "WhatsNew": "Was ist neu?" } diff --git a/src/NzbDrone.Core/Localization/Core/el.json b/src/NzbDrone.Core/Localization/Core/el.json index b3ad4559f..0527f18a3 100644 --- a/src/NzbDrone.Core/Localization/Core/el.json +++ b/src/NzbDrone.Core/Localization/Core/el.json @@ -1101,5 +1101,9 @@ "MonitorNoAlbums": "Κανένας", "AddToDownloadQueue": "Προστέθηκε για λήψη ουράς", "AddedToDownloadQueue": "Προστέθηκε στην ουρά λήψης", - "UseSsl": "Χρησιμοποιήστε SSL" + "UseSsl": "Χρησιμοποιήστε SSL", + "InteractiveSearchModalHeader": "Διαδραστική αναζήτηση", + "AutoTaggingSpecificationTag": "Ετικέτα", + "FormatAgeHour": "Ωρες", + "IndexerPriorityHelpText": "Προτεραιότητα δείκτη από 1 (υψηλότερη) έως 50 (χαμηλότερη). Προεπιλογή: 25. Χρησιμοποιείται κατά την κατάκτηση εκδόσεων ως ισοπαλία για ίσες εκδόσεις, το {appName} θα εξακολουθεί να χρησιμοποιεί όλα τα ενεργοποιημένα ευρετήρια για RSS Sync και Search" } diff --git a/src/NzbDrone.Core/Localization/Core/fi.json b/src/NzbDrone.Core/Localization/Core/fi.json index d867d639f..51a68bab1 100644 --- a/src/NzbDrone.Core/Localization/Core/fi.json +++ b/src/NzbDrone.Core/Localization/Core/fi.json @@ -1108,5 +1108,135 @@ "SelectIndexerFlags": "Valitse tietolähteen liput", "SetIndexerFlags": "Aseta tietolähteen liput", "CustomFilter": "Oma suodatin", - "LabelIsRequired": "Nimi on pakollinen" + "LabelIsRequired": "Nimi on pakollinen", + "ImportList": "Lista", + "CountImportListsSelected": "{selectedCount} esittäjä(ä) on valittu", + "DeleteArtistFolder": "Poista esittäjäkansiot", + "FormatAgeMinutes": "minuuttia", + "IndexerFlags": "Tietolähteen liput", + "Logout": "Kirjaudu ulos", + "NotificationsEmbySettingsSendNotifications": "Lähetä ilmoitukset", + "NotificationsEmbySettingsSendNotificationsHelpText": "Ohjeista palvelinta välittämään ilmoitukset sen määritettyihin kohteisiin.", + "NotificationsKodiSettingAlwaysUpdateHelpText": "Määrittää päivitetäänkö kirjasto myös videotoiston aikana.", + "NotificationsKodiSettingsGuiNotification": "Ilmoita käyttöliittymässä", + "NotificationsPlexSettingsAuthToken": "Todennustunniste", + "NotificationsSettingsUpdateLibrary": "Päivitä kirjasto", + "NotificationsSettingsUpdateMapPathsFrom": "Kohdista sijainnit lähteeseen", + "NotificationsSettingsUpdateMapPathsTo": "Kohdista sijainnit kohteeseen", + "Rejections": "Hylkäykset", + "RemoveQueueItem": "Poistetaan - {sourceTitle}", + "Uppercase": "Isot kirjaimet", + "PreferUsenet": "Mieluummin Usenet", + "AppUpdated": "{appName} on päivitetty", + "InteractiveSearchModalHeader": "Manuaalihaku", + "Lowercase": "Pienet kirjaimet", + "NotificationsKodiSettingsDisplayTimeHelpText": "Määrittää ilmoituksen näyttöajan sekunteina.", + "TagsSettingsSummary": "Täältä näet kaikki tunnisteet käyttökohteineen ja voit poistaa käyttämättömät tunnisteet.", + "Tomorrow": "Huomenna", + "DefaultCase": "Oletusarvoinen kirjainkoko", + "DeleteArtistFolderHelpText": "Poista elokuvakansio ja sen sisältö", + "MonitorAllAlbums": "Kaikki albumit", + "MonitorNewAlbums": "Uudet albumit", + "MonitorExistingAlbums": "Olemassa olevat albumit", + "NoLimitForAnyDuration": "Ei toistoajan rajoitusta", + "SuggestTranslationChange": "Ehdota käännösmuutosta", + "Loading": "Ladataan", + "ApplyTagsHelpTextHowToApplyArtists": "Tunnisteisiin kohdistettavat toimenpiteet:", + "CouldntFindAnyResultsForTerm": "Haku '{0}' ei tuottanut tuloksia.", + "ImportListStatusCheckAllClientMessage": "Mitkään listat eivät ole virheiden vuoksi käytettävissä", + "ItsEasyToAddANewArtistJustStartTypingTheNameOfTheArtistYouWantToAdd": "Uuden elokuvan lisäys on helppoa. Aloita vain haluamasi elokuvan nimen kirjoitus.", + "IndexerLongTermStatusCheckAllClientMessage": "Tietolähteet eivät ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi", + "NoMinimumForAnyDuration": "Ei toistoajan vähimmäiskestoa", + "RemoveQueueItemConfirmation": "Haluatko varmasti poistaa kohteen \"{sourceTitle}\" jonosta?", + "IndexerStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä virheiden vuoksi: {0}", + "AutoTaggingSpecificationTag": "Tunniste", + "DashOrSpaceDashDependingOnName": "Yhdysmerkki tai välilyönti nimen perusteella", + "DownloadClientsSettingsSummary": "Lataustyökalut, latausten käsittely ja etäsijaintien kohdistukset.", + "IndexerSearchCheckNoAvailableIndexersMessage": "Haussa käytettävät tietolähteet eivät ole käytettävissä hiljattaisten virheiden vuoksi", + "NotificationsEmbySettingsUpdateLibraryHelpText": "Määrittää päivitetäänkö palvelimen kirjasto tuonnin, uudelleennimeämisen tai poiston yhteydessä.", + "NotificationsKodiSettingAlwaysUpdate": "Päivitä aina", + "OrganizeSelectedArtists": "Järjestele valittu sarja", + "MonitoredStatus": "Valvottu/tila", + "FileNameTokens": "Tiedostonimen muuttujat", + "FormatDateTime": "{formattedDate} {formattedTime}", + "FormatRuntimeHours": "{hours} t", + "FormatRuntimeMinutes": "{minutes} m", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} ei tunnista mihin sarjalle ja jaksolle julkaisu kuuluu, eikä sen automaattinen tuonti onnistu. Haluatko kaapata julkaisun \"{title}\"?", + "NotificationsSettingsUpdateMapPathsToHelpText": "{serviceName}-sijainti, jonka mukaisesti sarjasijainteja muutetaan kun {serviceName} näkee kirjastosijainnin eri tavalla kuin {appName} (vaatii \"Päivitä kirjasto\" -asetuksen).", + "NotificationsKodiSettingsCleanLibraryHelpText": "Siivoa kirjasto päivityksen jälkeen.", + "NotificationsKodiSettingsDisplayTime": "Näytä aika", + "NotificationsKodiSettingsUpdateLibraryHelpText": "Määrittää päivitetäänkö Kodin kirjasto tuonnin tai uudelleennimeämisen yhteydessä.", + "NotificationsPlexSettingsAuthenticateWithPlexTv": "Plex.tv-tunnistautuminen", + "NotificationsSettingsUpdateMapPathsFromHelpText": "{appName}-sijainti, jonka mukaisesti sarjasijainteja muutetaan kun {serviceName} näkee kirjastosijainnin eri tavalla kuin {appName} (vaatii \"Päivitä kirjasto\" -asetuksen).", + "QualitiesHelpText": "Listalla ylempänä olevia laatuja painotetaan enemmän vaikkei niitä ole valittu. Samoissa ryhmissä olevat laadut ovat tasaveroisia. Valitse vain halutut laadut.", + "FormatDateTimeRelative": "{relativeDay}, {formattedDate} {formattedTime}", + "UrlBaseHelpText": "Lisää {appName}in URL-osoitteeseen jälkiliitteen, esim. \"http://[osoite]:[portti]/[URL-perusta]\". Oletusarvo on tyhjä.", + "ImportListStatusCheckSingleClientMessage": "Listat eivät ole virheiden vuoksi käytettävissä: {0}", + "IndexerRssHealthCheckNoAvailableIndexers": "RSS-syötteissä käytettävät tietolähteet eivät ole käytettävissä hiljattaisten virheiden vuoksi", + "IndexerLongTermStatusCheckSingleClientMessage": "Tietolähteet eivät ole käytettävissä yli 6 tuntia kestäneiden virheiden vuoksi: {0}", + "MassSearchCancelWarning": "Tätä ei ole mahdollista pysäyttää kuin käynnistämällä {appName}ia uudelleen tai poistamalla kaikki tietolähteet käytöstä.", + "SearchForAllCutoffUnmetAlbumsConfirmationCount": "Haluatko varmasti etsiä kaikkia {totalRecords} katkaisutasoa saavuttamattomia jaksoja?", + "MonitorNoAlbums": "Ei mitään", + "IndexerSettingsSeedRatioHelpText": "Suhde, joka torrentin tulee saavuttaa ennen sen pysäytystä. Käytä lataustyökalun oletusta jättämällä tyhjäksi. Suhteen tulisi olla ainakin 1.0 ja noudattaa tietolähteen sääntöjä.", + "IndexerSettingsSeedTimeHelpText": "Aika, joka torrentia tulee jakaa ennen sen pysäytystä. Käytä lataustyökalun oletusta jättämällä tyhjäksi.", + "NotificationsKodiSettingsCleanLibrary": "Siivoa kirjasto", + "AddNewArtistSearchForMissingAlbums": "Käynnistä puuttuvan elokuvan haku", + "ConnectSettingsSummary": "Ilmoitukset, kuten viestintä mediapalvelimille ja soittimille, sekä omat komentosarjat.", + "CustomFormatsSettings": "Mukautettujen muotojen asetukset", + "CustomFormatsSettingsSummary": "Mukautetut muodot ja niiden asetukset.", + "Donate": "Lahjoita", + "GeneralSettingsSummary": "Portti, SSL-salaus, käyttäjätunnus ja salasana, välityspalvelin, analytiikka ja päivitykset.", + "QualitySettingsSummary": "Laatukoot ja nimeäminen", + "PreferTorrent": "Mieluummin Torrent", + "CountArtistsSelected": "{count} tuotilistaa on valittu", + "AuthenticationRequiredWarning": "Etäkäytön estämiseksi ilman tunnistautumista {appName} vaatii nyt todennuksen käyttöönoton. Todennus voidaan poistaa käytöstä paikallisille osoitteille.", + "Auto": "Automaattinen", + "CustomFormatRequiredHelpText": "Tämän \"{0}\" -ehdon on täsmättävä mukautetun muodon käyttämiseksi. Muutoin riittää yksi \"{0}\" -vastaavuus.", + "DeleteArtistFolderCountConfirmation": "Haluatko varmasti poistaa {count} valittua sarjaa?", + "DeleteArtistFolderCountWithFilesConfirmation": "Haluatko varmasti poistaa {count} valittua sarjaa ja niiden kaiken sisällön?", + "ReleaseProfile": "Julkaisuprofiilit", + "IncludeHealthWarnings": "Sisällytä kuntovaroitukset", + "LidarrSupportsMultipleListsForImportingAlbumsAndArtistsIntoTheDatabase": "{appName} tukee useita listoja, joilta sarjoja voidaan tuoda tietokantaan.", + "Priority": "Painotus", + "AlbumsLoadError": "Varmuuskopioiden lataus epäonnistui", + "ArtistIsUnmonitored": "Kirjailijaa ei valvota", + "FormatAgeDay": "päivä", + "FormatAgeDays": "päivää", + "FormatAgeHour": "tunti", + "FormatAgeHours": "tuntia", + "FormatAgeMinute": "minuutti", + "FormatShortTimeSpanHours": "{hours} tunti(a)", + "FormatShortTimeSpanMinutes": "{minutes} minuutti(a)", + "FormatShortTimeSpanSeconds": "{seconds} sekunti(a)", + "FormatTimeSpanDays": "{days} pv {time}", + "IndexersSettingsSummary": "Tietolähteet ja niiden asetukset.", + "ImportListsSettingsSummary": "Sisällön tuonti muista {appName}-instansseista tai Trakt-listoilta, ja listapoikkeusten hallinta.", + "ImportMechanismHealthCheckMessage": "Käytä valmiiden latausten käsittelyä", + "KeyboardShortcuts": "Pikanäppäimet", + "MediaManagementSettingsSummary": "Tiedostojen nimeämisen, hallinnan ja juurikansioiden asetukset.", + "MetadataSettingsArtistSummary": "Luo metatietotiedostot kun kirjoja tuodaan tai kirjailijoiden tietoja päivitetään.", + "MonitorFirstAlbum": "Ensimmäinen albumi", + "MonitorFutureAlbums": "Tulevat albumit", + "MonitorLastestAlbum": "Uusin albumi", + "MonitorMissingAlbums": "Puuttuvat albumit", + "ProfilesSettingsArtistSummary": "Laatu-, metatieto-, viive- ja julkaisuprofiilit.", + "UiSettingsSummary": "Kalenterin, päiväyksen ja kellonajan, sekä kielen ja heikentyneelle värinäölle sopivan tilan asetukset.", + "Yesterday": "Eilen", + "AddToDownloadQueue": "Lisää latausjonoon", + "AddedToDownloadQueue": "Lisätty latausjonoon", + "ShowNextAlbum": "Näytä viimeinen albumi", + "Unlimited": "Rajoittamaton", + "ArtistIndexFooterDownloading": "Ladataan", + "UseSsl": "Käytä SSL-salausta", + "DeleteSelectedArtists": "Poista valittu esittäjä", + "Links": "Linkit", + "IndexerJackettAll": "Jackettin ei-tuettua 'all'-päätettä käyttävät tietolähteet: {0}", + "AutomaticSearch": "Automaattihaku", + "ProxyCheckResolveIpMessage": "Määritetyn välityspalvelimen \"{0}\" IP-osoitteen selvitys epäonnistui.", + "IndexerPriorityHelpText": "Tietolähteen painotus, 1– 50 (korkein-alin). Oletusarvo on 25. Käytetään muutoin tasaveroisten julkaisujen kaappauspäätökseen. Kaikkia käytössä olevia tietolähteitä käytetään edelleen RSS-synkronointiin ja hakuun.", + "ConnectionSettingsUrlBaseHelpText": "Lisää etuliite lataustuökalun {clientName} URL-osoitteeseen, kuten {url}.", + "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Valinnainen latuasten tallennussijainti. Käytä Aria2-oletusta jättämällä tyhjäksi.", + "DownloadClientDelugeSettingsDirectoryHelpText": "Valinnainen latuasten tallennussijainti. Käytä Aria2-oletusta jättämällä tyhjäksi.", + "IndexerSettingsSeedRatio": "Jakosuhde", + "IndexerSettingsSeedTime": "Jakoaika" } diff --git a/src/NzbDrone.Core/Localization/Core/fr.json b/src/NzbDrone.Core/Localization/Core/fr.json index b2e545c0a..40f0337c5 100644 --- a/src/NzbDrone.Core/Localization/Core/fr.json +++ b/src/NzbDrone.Core/Localization/Core/fr.json @@ -1278,5 +1278,15 @@ "Yesterday": "Hier", "OnArtistAdd": "Lors de l'ajout de l'artiste", "IndexerPriorityHelpText": "Priorité de l'indexeur de 1 (la plus élevée) à 50 (la plus basse). Par défaut : 25. Utilisé lors de la récupération de versions pour départager des versions égales, {appName} utilisera toujours tous les indexeurs activés pour la synchronisation et la recherche RSS", - "NotificationsKodiSettingAlwaysUpdate": "Toujours mettre à jour" + "NotificationsKodiSettingAlwaysUpdate": "Toujours mettre à jour", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} n'a pas pu déterminer à quelle série et à quel épisode cette version était destinée. Il est possible que {appName} ne parvienne pas à importer automatiquement cette version. Voulez-vous récupérer « {title} » ?", + "InteractiveSearchModalHeader": "Recherche interactive", + "InteractiveSearchModalHeaderTitle": "Recherche interactive - {title}", + "SearchForAllCutoffUnmetAlbumsConfirmationCount": "Êtes-vous sûr de vouloir rechercher tous les épisodes {totalRecords} Cutoff Unmet ?", + "IndexerSettingsSeedRatioHelpText": "Le ratio qu'un torrent doit atteindre avant de s'arrêter, vide utilise la valeur par défaut du client de téléchargement. Le ratio doit être d'au moins 1.0 et suivre les règles des indexeurs", + "IndexerSettingsSeedTimeHelpText": "Durée pendant laquelle un torrent doit être envoyé avant de s'arrêter, vide utilise la valeur par défaut du client de téléchargement", + "UiSettingsSummary": "Calendrier, date et les options d'altération des couleurs", + "MonitorFutureAlbums": "Futurs albums", + "IndexerSettingsSeedRatio": "Ratio d'envoie", + "IndexerSettingsSeedTime": "Temps d'envoie" } diff --git a/src/NzbDrone.Core/Localization/Core/he.json b/src/NzbDrone.Core/Localization/Core/he.json index 8d34eccbc..b398b8936 100644 --- a/src/NzbDrone.Core/Localization/Core/he.json +++ b/src/NzbDrone.Core/Localization/Core/he.json @@ -757,5 +757,22 @@ "RemoveQueueItemConfirmation": "האם אתה בטוח שברצונך להסיר את {0} פריט {1} מהתור?", "ArtistIndexFooterDownloading": "מוריד", "AutoRedownloadFailed": "הורדה נכשלה", - "AutomaticSearch": "חיפוש אוטומטי" + "AutomaticSearch": "חיפוש אוטומטי", + "IndexerFlags": "אינדקס דגלים", + "RemotePathMappingCheckFilesLocalWrongOSPath": "אתה משתמש בדוקר; קליינט ההורדות {downloadClientName} שם הורדות ב-{path} אבל הנתיב לא תקין {osName}. בחן מחדש את ניתוב התיקיות והגדרות קליינט ההורדות.", + "InteractiveSearchModalHeader": "חיפוש אינטראקטיבי", + "Tomorrow": "מָחָר", + "AddImportListExclusionArtistHelpText": "מנע מלהוסיף סרט לרדאר על ידי רשימות", + "CustomFilter": "מסננים מותאמים אישית", + "MonitorNoAlbums": "אף אחד", + "Yesterday": "אתמול", + "AutoTaggingSpecificationTag": "טאג", + "GrabReleaseUnknownArtistOrAlbumMessageText": "רדאר לא הצליח לקבוע לאיזה סרט הסרט הזה נועד. ייתכן ש- {appName} לא תוכל לייבא גרסה זו באופן אוטומטי. האם אתה רוצה לתפוס את '{0}'?", + "RemotePathMappingCheckLocalWrongOSPath": "אתה משתמש בדוקר; קליינט ההורדות {downloadClientName} שם הורדות ב-{path} אבל הנתיב לא תקין {osName}. בחן מחדש את ניתוב התיקיות והגדרות קליינט ההורדות.", + "IndexerPriorityHelpText": "עדיפות אינדקס מ -1 (הגבוה ביותר) ל -50 (הנמוך ביותר). ברירת מחדל: 25.", + "AddListExclusionHelpText": "מנע מלהוסיף סרט לרדאר על ידי רשימות", + "FormatAgeHour": "שעה (ות", + "FormatAgeHours": "שעה (ות", + "FormatAgeMinute": "דקות", + "FormatAgeMinutes": "דקות" } diff --git a/src/NzbDrone.Core/Localization/Core/hi.json b/src/NzbDrone.Core/Localization/Core/hi.json index 985a103cb..2e04d4e37 100644 --- a/src/NzbDrone.Core/Localization/Core/hi.json +++ b/src/NzbDrone.Core/Localization/Core/hi.json @@ -694,5 +694,42 @@ "Release": " रिहा", "DeleteArtistFoldersHelpText": "फिल्म फ़ोल्डर और उसकी सामग्री को हटा दें", "DeleteSpecificationHelpText": "क्या आप वाकई गुणवत्ता प्रोफ़ाइल {0} को हटाना चाहते हैं", - "AutoTaggingNegateHelpText": "यदि जाँच की जाती है, तो कस्टम प्रारूप लागू नहीं होगा यदि यह {0} स्थिति से मेल खाता है।" + "AutoTaggingNegateHelpText": "यदि जाँच की जाती है, तो कस्टम प्रारूप लागू नहीं होगा यदि यह {0} स्थिति से मेल खाता है।", + "ImportLists": "सूचियों", + "IndexerFlags": "इंडेक्स फ्लैग", + "DefaultCase": "डिफ़ॉल्ट मामला", + "UiSettingsSummary": "कैलेंडर, दिनांक और रंग बिगड़ा हुआ विकल्प", + "InteractiveSearchModalHeader": "इंटरएक्टिव खोज", + "Uppercase": "अपरकेस", + "ImportList": "सूचियों", + "CustomFilter": "कस्टम फ़िल्टर", + "Links": "लिंक", + "Lowercase": "लोअर केस", + "FormatAgeHour": "घंटे", + "MonitorNoAlbums": "कोई नहीं", + "GrabReleaseUnknownArtistOrAlbumMessageText": "रेडर यह निर्धारित करने में असमर्थ था कि यह फिल्म किस फिल्म के लिए है। {appName} इस रिलीज़ को स्वचालित रूप से आयात करने में असमर्थ हो सकता है। क्या आप '{0}' को हथियाना चाहते हैं?", + "AddImportListExclusionArtistHelpText": "मूवी को रेडर से सूचियों में जोड़े जाने से रोकें", + "DownloadClientsSettingsSummary": "क्लाइंट डाउनलोड करें, हैंडलिंग और दूरस्थ पथ मैपिंग डाउनलोड करें", + "ImportListsSettingsSummary": "सूची आयात करें, सूची बहिष्करण करें", + "IndexerPriorityHelpText": "इंडेक्सर प्राथमिकता 1 (उच्चतम) से 50 (सबसे कम)। डिफ़ॉल्ट: 25", + "KeyboardShortcuts": "कुंजीपटल अल्प मार्ग", + "CustomFormatsSettings": "कस्टम प्रारूप सेटिंग्स", + "MonitoredStatus": "नजर रखी / स्थिति", + "ConnectSettingsSummary": "मीडिया सर्वर / खिलाड़ियों और कस्टम स्क्रिप्ट के लिए सूचनाएं, कनेक्शन", + "CustomFormatsSettingsSummary": "कस्टम प्रारूप और सेटिंग्स", + "FileNameTokens": "फ़ाइल नाम टोकन", + "GeneralSettingsSummary": "पोर्ट, एसएसएल, उपयोगकर्ता नाम / पासवर्ड, प्रॉक्सी, एनालिटिक्स और अपडेट", + "QualitySettingsSummary": "गुणवत्ता आकार और नामकरण", + "TagsSettingsSummary": "सभी टैग देखें और उनका उपयोग कैसे किया जाता है। अप्रयुक्त टैग को हटाया जा सकता है", + "AddListExclusionHelpText": "मूवी को रेडर से सूचियों में जोड़े जाने से रोकें", + "Tomorrow": "आने वाला कल", + "FormatAgeHours": "घंटे", + "FormatAgeMinute": "मिनट", + "FormatAgeMinutes": "मिनट", + "Yesterday": "बिता कल", + "IncludeHealthWarnings": "स्वास्थ्य चेतावनी शामिल करें", + "RemoveQueueItemConfirmation": "क्या आप वाकई {0} आइटम {1} को कतार से हटाना चाहते हैं?", + "ArtistIndexFooterDownloading": "डाउनलोड", + "AutoRedownloadFailed": "डाउनलोड विफल", + "AutomaticSearch": "स्वचालित खोज" } diff --git a/src/NzbDrone.Core/Localization/Core/hr.json b/src/NzbDrone.Core/Localization/Core/hr.json index 832e04781..644fb0820 100644 --- a/src/NzbDrone.Core/Localization/Core/hr.json +++ b/src/NzbDrone.Core/Localization/Core/hr.json @@ -157,5 +157,100 @@ "Save": "Spremi", "System": "Sustav", "UseProxy": "Koristi proxy", - "RestartNow": "Resetiraj sad" + "RestartNow": "Resetiraj sad", + "DeleteDownloadClientMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "RestartLidarr": "Resetiraj {appName}", + "UsingExternalUpdateMechanismBranchToUseToUpdateLidarr": "Grana korištena za ažuriranje {appName}a", + "ImportList": "Lista", + "ApplyTagsHelpTextAdd": "Dodaj: Dodaj oznake u postojeću listu oznaka", + "ChownGroupHelpText": "Naziv grupe ili gid. Koristite gid za udaljene sustave datoteka.", + "ApplyTagsHelpTextRemove": "Ukloni: Ukloni unešene oznake", + "ShowQualityProfile": "Dodaj Profil Kvalitete", + "CustomFormats": "Prilagođeni format", + "DeleteIndexerMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteRemotePathMapping": "Daljinsko Mapiranje Portova", + "Tomorrow": "Sutra", + "ApplyTagsHelpTextHowToApplyArtists": "Kako primjeniti oznake za odabrane filmove", + "ApplyTagsHelpTextHowToApplyDownloadClients": "Kako primjeniti oznake za odabrane filmove", + "UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "Grana korištena od strane vanjskog mehanizma za ažuriranje", + "AppDataLocationHealthCheckMessage": "Ažuriranje ne može spriječiti brisanje AppData pri ažuriranju", + "Customformat": "Prilagođeni format", + "Genres": "Žanr", + "HasPendingChangesSaveChanges": "Spremi izmjene", + "BeforeUpdate": "Prije ažuriranja", + "BlocklistReleases": "Verzije Blok Liste", + "Disabled": "onemogućeno", + "ImportListExclusions": "Dodaj na Listu Isključenja", + "Priority": "Prioritet", + "Size": " Veličina", + "SomeResultsAreHiddenByTheAppliedFilter": "Svi rezultati su skriveni zbog primjenjenog filtera", + "AutoTaggingSpecificationTag": "Oznaka", + "CloneCustomFormat": "Kloniraj Prilagođeni Format", + "ColonReplacement": "Zamjena Zareza", + "CustomFormat": "Prilagođeni format", + "DeleteMetadataProfileMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "Enabled": "Omogući", + "RemoveSelectedItemQueueMessageText": "Jeste li sigurni da želite izbrisati stavku {0} iz reda?", + "AddImportListExclusionArtistHelpText": "Spriječi dodavanje ovog filma na {appName} preko listi", + "ApplyTagsHelpTextReplace": "Zamijeni: Zamijeni oznake sa unešenim oznakama (ostavi prazno kako bi poništio oznake)", + "Auto": "Automatski", + "DeleteConditionMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteCustomFormat": "Kloniraj Prilagođeni Format", + "DisabledForLocalAddresses": "Onemogućeno za Lokalne Adrese", + "ApplyTagsHelpTextHowToApplyIndexers": "Kako primjeniti oznake za odabrane filmove", + "ChmodFolderHelpTextWarning": "Ovo jedino radi ako je korisnik koji je pokrenuo Radarr vlasnik datoteke. Bolje je osigurati da klijent za preuzimanje postavi dozvolu ispravno.", + "ChownGroupHelpTextWarning": "Ovo jedino radi ako je korisnik koji je pokrenuo Radarr vlasnik datoteke. Bolje je osigurati da klijent za preuzimanje koristi istu grupu kao Radarr.", + "DeleteReleaseProfileMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteRootFolderMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteTagMessageText": "Jeste li sigurni da želite obrisati oznaku formata {0}?", + "EditImportListExclusion": "Dodaj na Listu Isključenja", + "EditQualityProfile": "Dodaj Profil Kvalitete", + "RemoveSelectedItemsQueueMessageText": "Jeste li sigurni da želite izbrisati stavku {0} iz reda?", + "ImportLists": "Lista", + "AddImportListExclusion": "Dodaj na Listu Isključenja", + "AllResultsAreHiddenByTheAppliedFilter": "Svi rezultati su skriveni zbog primjenjenog filtera", + "DeleteNotificationMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "AddListExclusionHelpText": "Spriječi dodavanje ovog filma na {appName} preko listi", + "EditDelayProfile": "Dodaj Profil Odgode", + "AnalyticsEnabledHelpText": "Pošalji anonimnu informaciju o uporabi i pogreškama {appName} serverima. Ovo uključuje informacije o Vašem pregledniku, koje {appName} WebUI stranice koristite, prijave o greškama kao i o OS i runtime verziji. Ove podatke koristimo kako bismo dali prioritet značajkama i popravili greške.", + "FormatAgeDays": "dani", + "FormatAgeMinute": "minute", + "FormatAgeMinutes": "minute", + "BypassIfHighestQualityHelpText": "Zaobiđi odgodu ako verzija ima omogućen najviši kvalitet u profilu kvalitete za vanjske protokole", + "CancelMessageText": "Jeste li sigurni da želite otkazati ovaj zadatak na čekanju?", + "DeleteQualityProfileMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "Yesterday": "Jučer", + "ExportCustomFormat": "Dodaj Prilagođeni Format", + "Required": "Zahtjevaj", + "BackupFolderHelpText": "Relativne putanje će biti unutar Radarrovog AppData direktorija", + "AlternateTitles": "Alternativni Naslov", + "ApplyTagsHelpTextHowToApplyImportLists": "Kako primjeniti oznake za odabrane filmove", + "ArtistAlbumClickToChangeTrack": "Klikni za promjenu filma", + "DeleteSpecificationHelpText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "Formats": "Format", + "AuthBasic": "Osnovno (Skočni prozor preglednika)", + "AuthForm": "Forme (Login Stranica)", + "Release": " verzija", + "ReleaseProfile": "profil verzije", + "ResetAPIKeyMessageText": "Jeste li sigurni da želite resetirati vaš API Ključ?", + "BlocklistReleaseHelpText": "Spriječi Radarr da automatski dohvaća ovu verziju ponovno", + "DeleteFormatMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "AuthenticationMethodHelpText": "Zahtjevaj korisničko ime i lozinku za pristup {appName}u", + "BypassIfHighestQuality": "Zaobiđi ako je Najviši Kvalitet", + "ChooseImportMethod": "Odaberite Način Uvoza", + "Connection": "Veze", + "Posters": "Naslovnice", + "RemoveQueueItemConfirmation": "Jeste li sigurni da želite izbrisati stavku {0} iz reda?", + "DeleteAutoTagHelpText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteBackupMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteDelayProfileMessageText": "Jeste li sigurni da želite obrisati ovaj profil odgode?", + "DeleteImportListExclusionMessageText": "Jeste li sigurni da želite izbrisati ovu uvoznu listu isključenja?", + "DeleteImportListMessageText": "Jeste li sigurni da želite obrisati oznaku formata {0}?", + "AutomaticSearch": "Automatska Pretraga", + "DeleteCustomFormatMessageText": "Jeste li sigurni da želite obrisati oznaku formata {name}?", + "DeleteImportListExclusion": "Dodaj na Listu Isključenja", + "ItsEasyToAddANewArtistJustStartTypingTheNameOfTheArtistYouWantToAdd": "Lako je dodati nove filmove, samo kreni upisivati ime filma kojeg želiš dodati", + "AddToDownloadQueue": "Dodano u red za preuzimanje", + "AddedToDownloadQueue": "Dodano u red za preuzimanje", + "EditRootFolder": "asdf" } diff --git a/src/NzbDrone.Core/Localization/Core/hu.json b/src/NzbDrone.Core/Localization/Core/hu.json index 9b0100c2e..6f3d416fb 100644 --- a/src/NzbDrone.Core/Localization/Core/hu.json +++ b/src/NzbDrone.Core/Localization/Core/hu.json @@ -1114,5 +1114,93 @@ "RemoveTagsAutomatically": "Címkék automatikus eltávolítása", "RemoveTagsAutomaticallyHelpText": "Ha a feltételek nem teljesülnek, automatikusan távolítsa el a címkéket", "PasswordConfirmation": "Jelszó megerősítése", - "FormatRuntimeMinutes": "{minutes} p" + "FormatRuntimeMinutes": "{minutes} p", + "IndexerFlags": "Indexer Zászló", + "Rejections": "Elutasítások", + "DefaultCase": "Alapértelmezett eset", + "Lowercase": "Kisbetű", + "Uppercase": "Nagybetű", + "InteractiveSearchModalHeader": "Interaktív Keresés", + "Period": "Időszak", + "MonitorArtists": "Előadó monitorozása", + "OrganizeSelectedArtists": "A kiválasztott filmek rendszerezése", + "CustomFilter": "Egyedi Szűrők", + "FileNameTokens": "Fájlnév-tokenek", + "KeyboardShortcuts": "Gyorsbillentyűket", + "Links": "Linkek", + "NoMinimumForAnyDuration": "Nincs minimális futásidő", + "CloneCondition": "Feltétel klónozása", + "NotificationStatusSingleClientHealthCheckMessage": "Az alkalmazás nem áll rendelkezésre az alábbi hibák miatt: {0}", + "Priority": "Elsőbbség", + "Clone": "Klón", + "SuggestTranslationChange": "Javasolj fordítási változtatást", + "AutoTaggingSpecificationTag": "Címke", + "CustomFormatsSettingsSummary": "Egyéni formátumok és beállítások", + "DashOrSpaceDashDependingOnName": "Dash vagy Space Dash névtől függően", + "DeleteArtistFolderCountWithFilesConfirmation": "Biztos benne, hogy törölni szeretne {count} kiválasztott sorozatot és az összes tartalmat?", + "ExtraFileExtensionsHelpText": "Az importálandó extra fájlok vesszővel lesznek elválasztva (.nfo .nfo-orig néven lesz importálva)", + "IndexerPriorityHelpText": "Indexer prioritása 1-től (legmagasabb) 50-ig (legalacsonyabb). Alapértelmezett: 25. Amikor a kiadásokat megragadja az egyébként egyenlő kiadások megszakításaként, a {appName} továbbra is az összes engedélyezett indexelőt használja az RSS-szinkronizáláshoz és a kereséshez", + "MetadataSettingsArtistSummary": "Hozzon létre metaadatfájlokat a könyvek importálásakor vagy a szerző frissítésekor", + "MonitorNewAlbums": "Új albumok", + "NoLimitForAnyDuration": "Nincs korlátozás semmilyen futási időre", + "Overview": "Áttekintés", + "OverviewOptions": "Áttekintési opciók", + "RemotePathMappingsInfo": "Nagyon ritkán van szükség távoli útvonal-leképezésre, ha az {app} és a letöltési kliens ugyanazon a rendszeren van, jobb, ha megfeleltetjük az útvonalakat. További információért lásd: [wiki]({wikiLink}).", + "UseSsl": "SSL használata", + "MonitoredStatus": "Felügyelt/állapot", + "Logout": "Kijelentkezés", + "ImportListRootFolderMultipleMissingRootsHealthCheckMessage": "Több gyökérmappa hiányzik a/az {0} importálási listához", + "MassSearchCancelWarning": "Ezt a(z) {appName} újraindítása vagy az összes indexelő letiltása nélkül nem lehet visszavonni.", + "SearchForAllCutoffUnmetAlbumsConfirmationCount": "Biztosan megkeresi az összes {totalRecords} hiányzó epizódot?", + "TagsSettingsSummary": "Tekintse meg az összes címkét és azok felhasználási módját. A fel nem használt címkék eltávolíthatók", + "Unlimited": "korlátlan", + "ConditionUsingRegularExpressions": "Ez a feltétel megfelel a Reguláris kifejezések használatának. Ne feledje, hogy a karakterek {0} különleges jelentéssel bírnak, és el kell kerülniük egy {1} karakterrel", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} nem tudta meghatározni, hogy melyik filmhez készült ez a kiadás. Lehet, hogy a {appName} nem tudja automatikusan importálni ezt a kiadást. Meg szeretnéd ragadni a (z) „{0}”-t?", + "AddToDownloadQueue": "Hozzáadás a letöltési sorhoz", + "AddedToDownloadQueue": "Hozzáadva a letöltési sorhoz", + "ArtistIsUnmonitored": "A művészt figyelve", + "ArtistsEditRootFolderHelpText": "A sorozatok ugyanabba a gyökérmappába való áthelyezése használható a sorozatmappák átnevezésére, hogy megfeleljenek a frissített címnek vagy elnevezési formátumnak", + "MonitorFutureAlbums": "Jövőbeni albumok", + "ConnectSettingsSummary": "Értesítések, csatlakozások médiaszerverekhez", + "CustomFormatsSettings": "Egyéni formátumok beállításai", + "DownloadClientsSettingsSummary": "Kliensek letöltése, letöltéskezelés és távoli útvonalleképezések", + "ImportListsSettingsSummary": "Lista Importálása, Kizárások listázása", + "ProfilesSettingsArtistSummary": "Minőség, Nyelv, és Késleltetési profil", + "UiSettingsSummary": "A naptár, a dátum és a színtévesztő mód beállításai", + "CountArtistsSelected": "{count} importlista kiválasztva", + "UpdateSelected": "Kiválasztottak frissítése", + "GrabId": "Megfogás ID", + "Deceased": "Elhunyt", + "Large": "Óriási", + "FormatAgeDay": "nap", + "FormatAgeDays": "napok", + "FormatAgeHour": "óra", + "FormatAgeHours": "órák", + "FormatAgeMinute": "perc", + "FormatAgeMinutes": "percek", + "MediaManagementSettingsSummary": "Elnevezések, fájlkezelési beállítások és gyökérmappák", + "MonitorAllAlbums": "Összes album", + "MonitorLastestAlbum": "Legújabb album", + "MonitorMissingAlbums": "Hiányzó Albumok", + "MonitorNoAlbums": "Egyik sem", + "Tomorrow": "Holnap", + "Auto": "Automata", + "DeleteArtistFoldersHelpText": "Törölje a sorozat mappáit és azok teljes tartalmát", + "IncludeHealthWarnings": "Tartalmazza a Állapot Figyelmeztetéseket", + "ClearBlocklist": "Letiltási lista törlése", + "DeleteArtistFolderCountConfirmation": "Biztosan törölni szeretne {count} kiválasztott sorozatot?", + "DeleteArtistFolderHelpText": "Törölje a film mappáját és annak tartalmát", + "DeleteSelectedArtists": "A kiválasztott előadó(k) törlése", + "MonitorExistingAlbums": "Meglévő albumok", + "BypassIfHighestQualityHelpText": "Bypass késleltetés, ha a kiadásnak a legmagasabb engedélyezett minősége van az előnyben részesített protokollal rendelkező minőségi profilban", + "Implementation": "Végrehajtás", + "ImportListRootFolderMissingRootHealthCheckMessage": "Hiányzó gyökérmappa az importálási listá(k)hoz: {0}", + "WhatsNew": "Mi az újdonság?", + "AutomaticSearch": "Automatikus keresés", + "Donate": "Adományoz", + "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "Választható hely a letöltések elhelyezéséhez, hagyja üresen az alapértelmezett Aria2 hely használatához", + "DownloadClientDelugeSettingsDirectoryHelpText": "Választható hely a letöltések elhelyezéséhez, hagyja üresen az alapértelmezett Aria2 hely használatához", + "Enabled": "Engedélyezés", + "MonitorFirstAlbum": "Első album", + "Yesterday": "Tegnap" } diff --git a/src/NzbDrone.Core/Localization/Core/id.json b/src/NzbDrone.Core/Localization/Core/id.json index 4f23b9a2d..a5e264c6c 100644 --- a/src/NzbDrone.Core/Localization/Core/id.json +++ b/src/NzbDrone.Core/Localization/Core/id.json @@ -104,5 +104,29 @@ "AuthenticationRequiredWarning": "Untuk mencegah akses jarak jauh tanpa autentikasi, {appName} kini mewajibkan pengaktifkan autentikasi. Kamu dapat menonaktifkan autentikasi dari jaringan lokal.", "Files": "File", "TotalFileSize": "Jumlah Ukuran File", - "20MinutesTwenty": "Indonesia" + "20MinutesTwenty": "Indonesia", + "StatusEndedContinuing": "Berlanjut", + "UnableToLoadTheCalendar": "Tidak dapat memuat kalender", + "Yesterday": "Kemarin", + "FormatAgeMinute": "menit", + "FormatAgeMinutes": "menit", + "FormatRuntimeMinutes": "{minutes}mnt", + "FormatShortTimeSpanMinutes": "{minutes} menit", + "FormatTimeSpanDays": "{days}h {time}", + "FormatDateTimeRelative": "{relativeDay}, {formattedDate} {formattedTime}", + "SomeResultsAreHiddenByTheAppliedFilter": "Seluruh hasil disembunyikan karena penyaringan yang diterapkan", + "ConnectSettingsSummary": "Notifikasi, koneksi ke server/pemutar media, dan script khusus", + "DownloadFailed": "Pengunduhan Ulang Gagal", + "AllResultsAreHiddenByTheAppliedFilter": "Seluruh hasil disembunyikan karena penyaringan yang diterapkan", + "FormatAgeDay": "hari", + "FormatAgeDays": "hari", + "Links": "Tautan", + "Auto": "Otomatis", + "Enabled": "Aktif", + "AutoRedownloadFailed": "Pengunduhan Ulang Gagal", + "CouldntFindAnyResultsForTerm": "Tidak ditemukan hasil untuk '{term}'", + "Priority": "Prioritas", + "AutomaticSearch": "Penelusuran Otomatis", + "AddToDownloadQueue": "Tambahkan ke antrean pengunduhan", + "AddedToDownloadQueue": "Ditambahkan ke antrean pengunduhan" } diff --git a/src/NzbDrone.Core/Localization/Core/is.json b/src/NzbDrone.Core/Localization/Core/is.json index c7eba0106..b9496adf0 100644 --- a/src/NzbDrone.Core/Localization/Core/is.json +++ b/src/NzbDrone.Core/Localization/Core/is.json @@ -647,5 +647,89 @@ "SetTags": "Settu merki", "ApplyTagsHelpTextHowToApplyArtists": "Hvernig á að setja merki á völdu kvikmyndirnar", "ApplyTagsHelpTextHowToApplyImportLists": "Hvernig á að setja merki á völdu kvikmyndirnar", - "ApplyTagsHelpTextHowToApplyIndexers": "Hvernig á að setja merki á völdu kvikmyndirnar" + "ApplyTagsHelpTextHowToApplyIndexers": "Hvernig á að setja merki á völdu kvikmyndirnar", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} gat ekki ákvarðað fyrir hvaða kvikmynd þessi útgáfa var gerð. {appName} gæti hugsanlega ekki flutt þessa útgáfu sjálfkrafa inn. Viltu grípa '{0}'?", + "InteractiveSearchModalHeader": "Gagnvirk leit", + "MonitorNoAlbums": "Enginn", + "SomeResultsAreHiddenByTheAppliedFilter": "Sumar niðurstöður eru faldar af beittu síunni", + "OverviewOptions": "Yfirlit valkostir", + "WhatsNew": "Hvað er nýtt?", + "AddImportListExclusionArtistHelpText": "Koma í veg fyrir að kvikmyndum verði bætt við {appName} af listum", + "CustomFilter": "Sérsniðin síur", + "DeleteAutoTagHelpText": "Ertu viss um að þú viljir eyða gæðasniðinu {0}", + "Enabled": "Virkt", + "Lowercase": "Lágstafir", + "Negate": "Negate", + "NotificationStatusAllClientHealthCheckMessage": "Allir listar eru ekki tiltækir vegna bilana", + "PreferredSize": "Æskileg stærð", + "Unlimited": "Ótakmarkað", + "Uppercase": "Hástafi", + "Yesterday": "Í gær", + "ConnectionLost": "Tenging rofin", + "ApplyTagsHelpTextHowToApplyDownloadClients": "Hvernig á að setja merki á völdu kvikmyndirnar", + "KeyboardShortcuts": "Flýtilyklar", + "AuthBasic": "Grunn (sprettiglugga vafra)", + "DisabledForLocalAddresses": "Óvirkt vegna heimilisfanga", + "ImportLists": "Listar", + "ConditionUsingRegularExpressions": "Þetta ástand samsvarar notkun venjulegra segða. Athugaðu að stafirnir {0} hafa sérstaka merkingu og þurfa að flýja með {1}", + "ConnectionLostReconnect": "Radarr mun reyna að tengjast sjálfkrafa eða þú getur smellt á endurhlaða hér að neðan.", + "ExtraFileExtensionsHelpText": "Komma aðskilinn listi yfir auka skrár til að flytja inn (.nfo verður fluttur inn sem .nfo-orig)", + "GeneralSettingsSummary": "Gátt, SSL, notandanafn / lykilorð, umboð, greining og uppfærslur", + "ImportList": "Listar", + "IndexerFlags": "Indexer fánar", + "IndexerPriorityHelpText": "Forgangur flokkara frá 1 (Hæstur) til 50 (Lægstur). Sjálfgefið: 25.", + "Large": "Stór", + "Links": "Krækjur", + "NoLimitForAnyDuration": "Engin takmörk fyrir neina keyrslutíma", + "Posters": "Veggspjöld", + "MonitoredStatus": "Fylgst með / Staða", + "ExtraFileExtensionsHelpTextsExamples": "Dæmi: '.sub, .nfo' eða 'sub, nfo'", + "FormatAgeHour": "Klukkutímar", + "FormatAgeHours": "Klukkutímar", + "FormatAgeMinute": "Fundargerð", + "FormatAgeMinutes": "Fundargerð", + "NoMinimumForAnyDuration": "Ekkert lágmark fyrir neina keyrslutíma", + "RecentChanges": "Nýlegar breytingar", + "CustomFormatsSettingsSummary": "Sérsniðin snið og stillingar", + "AddNewArtistSearchForMissingAlbums": "Byrjaðu að leita að kvikmynd sem vantar", + "ConnectSettingsSummary": "Tilkynningar, tengingar við netþjóna / spilara og sérsniðnar forskriftir", + "CustomFormatsSettings": "Stillingar sérsniðinna sniða", + "DownloadClientsSettingsSummary": "Sæktu viðskiptavini, hlaðið niður meðhöndlun og fjarlægðar slóðakortanir", + "FileNameTokens": "Auðkenni skráarheita", + "ImportListsSettingsSummary": "Flytja inn lista, útiloka lista", + "TagsSettingsSummary": "Sjáðu öll merkin og hvernig þau eru notuð. Hægt er að fjarlægja ónotuð merki", + "DeleteSpecificationHelpText": "Ertu viss um að þú viljir eyða gæðasniðinu {0}", + "AllResultsAreHiddenByTheAppliedFilter": "Allar niðurstöður eru faldar af beittu síunni", + "NoResultsFound": "Engar niðurstöður fundust", + "Priority": "Forgangsröð", + "Overview": "Yfirlit", + "SuggestTranslationChange": "Legg til þýðingabreytingu", + "GrabId": "Grípa skilríki", + "AddListExclusionHelpText": "Koma í veg fyrir að kvikmyndum verði bætt við {appName} af listum", + "AlbumsLoadError": "Ekki er hægt að hlaða afrit", + "OrganizeSelectedArtists": "Skipuleggðu valdar kvikmyndir", + "PosterOptions": "Valkostir veggspjalda", + "Small": "Lítil", + "AddNewArtistRootFolderHelpText": "„{0}“ undirmöppan verður búin til sjálfkrafa", + "QualitySettingsSummary": "Gæðastærðir og nafngiftir", + "RenameFiles": "Endurnefna skrár", + "Table": "Tafla", + "Tomorrow": "Á morgun", + "UiSettingsSummary": "Dagatal, dagsetning og litaskertir valkostir", + "NotificationStatusSingleClientHealthCheckMessage": "Listar ekki tiltækir vegna bilana: {0}", + "UpdateSelected": "Uppfærsla valin", + "RemoveQueueItemConfirmation": "Ertu viss um að þú viljir fjarlægja {0} hlut {1} úr biðröðinni?", + "AddAutoTagError": "Ekki er hægt að bæta við nýjum lista. Reyndu aftur.", + "AddConditionError": "Ekki er hægt að bæta við nýju skilyrði, reyndu aftur.", + "DeleteSpecification": "Eyða tilkynningu", + "IncludeHealthWarnings": "Láttu heilsuviðvaranir fylgja með", + "AutoRedownloadFailed": "Niðurhal mistókst", + "Connection": "Tenging", + "AutoTaggingNegateHelpText": "Ef þetta er hakað við mun sérsniðna sniðið ekki eiga við ef þetta {0} skilyrði samsvarar.", + "ArtistIndexFooterDownloading": "Sækir", + "AuthForm": "Eyðublöð (Innskráningarsíða)", + "DefaultCase": "Sjálfgefið mál", + "DeleteArtistFolderHelpText": "Eyddu kvikmyndamöppunni og innihaldi hennar", + "AutomaticSearch": "Sjálfvirk leit", + "Release": " Sleppt" } diff --git a/src/NzbDrone.Core/Localization/Core/it.json b/src/NzbDrone.Core/Localization/Core/it.json index 050932637..0ecda209d 100644 --- a/src/NzbDrone.Core/Localization/Core/it.json +++ b/src/NzbDrone.Core/Localization/Core/it.json @@ -493,7 +493,7 @@ "Activity": "Attività", "AddDelayProfile": "Aggiungi Profilo di Ritardo", "Added": "Aggiunto", - "AddIndexer": "Aggiungi Indicizzatore", + "AddIndexer": "Aggiungi Indexer", "AddMetadataProfile": "profilo metadati", "AddNew": "Aggiungi Nuovo", "AddQualityProfile": "Aggiungi un Profilo Qualità", @@ -642,7 +642,7 @@ "EndedOnly": "Solo Finito", "Episode": "Episodio", "ExistingAlbums": "Albums esistente", - "AnchorTooltip": "Questo file è già nella tua raccolta per una versione che stai attualmente importando", + "AnchorTooltip": "Questo documento si trova già nella tua libreria per un rilascio che stai attualmente importando", "Started": "Iniziato", "EditReleaseProfile": "Aggiungi Profilo di Pubblicazione", "ThemeHelpText": "Cambia il Tema dell'interfaccia dell’applicazione, il Tema 'Auto' userà il suo Tema di Sistema per impostare la modalità Chiara o Scura. Ispirato da {0}", @@ -884,5 +884,25 @@ "KeyboardShortcuts": "Scorciatoie Tastiera", "Links": "Collegamenti", "RegularExpressionsCanBeTested": "Le espressioni regolari possono essere testate [qui](http://regexstorm.net/tester).", - "AddListExclusion": "Aggiungi elenco esclusioni" + "AddListExclusion": "Aggiungi elenco esclusioni", + "AddToDownloadQueue": "Aggiungi alla coda di download", + "AddedToDownloadQueue": "Aggiunto alla coda di download", + "IndexerFlags": "Flags dell'Indicizzatore", + "InteractiveSearchModalHeader": "Ricerca interattiva", + "CustomFilter": "Filtri Personalizzati", + "FormatAgeMinute": "Minuti", + "FormatAgeMinutes": "Minuti", + "AutoTaggingSpecificationTag": "Etichetta", + "RemotePathMappingCheckLocalWrongOSPath": "Stai utilizzando docker; Il client di download {downloadClientName} mette i download in {path} ma questo non è un percorso valido {osName}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download.", + "FormatAgeHour": "Ore", + "FormatAgeHours": "Ore", + "IndexerPriorityHelpText": "Priorità dell'indexer da 1 (più alto) a 50 (più basso). Default: 25.", + "Release": " release", + "MonitorExistingAlbums": "Albums esistente", + "MonitorAllAlbums": "Tutti gli album", + "MonitorNoAlbums": "Nessuna", + "Tomorrow": "Domani", + "Yesterday": "Ieri", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} non è stato in grado di determinare a quale film si riferisce questa release. {appName} potrebbe non essere in grado di importarla automaticamente. Vuoi catturare '{0}'?", + "RemotePathMappingCheckFilesLocalWrongOSPath": "Stai utilizzando docker; Il client di download {downloadClientName} riporta files in {path} ma questo non è un percorso valido {osName}. Controlla la mappa dei percorsi remoti e le impostazioni del client di download." } diff --git a/src/NzbDrone.Core/Localization/Core/ja.json b/src/NzbDrone.Core/Localization/Core/ja.json index 59a022882..e8787d7d0 100644 --- a/src/NzbDrone.Core/Localization/Core/ja.json +++ b/src/NzbDrone.Core/Localization/Core/ja.json @@ -720,5 +720,17 @@ "IncludeHealthWarnings": "健康上の警告を含める", "ArtistIndexFooterDownloading": "ダウンロード", "AutomaticSearch": "自動検索", - "KeyboardShortcuts": "キーボードショートカット" + "KeyboardShortcuts": "キーボードショートカット", + "Tomorrow": "明日", + "IndexerFlags": "インデクサフラグ", + "InteractiveSearchModalHeader": "インタラクティブ検索", + "CustomFilter": "カスタムフィルター", + "FormatAgeMinute": "議事録", + "FormatAgeHour": "時間", + "FormatAgeHours": "時間", + "IndexerPriorityHelpText": "インデクサーの優先度は1(最高)から50(最低)です。デフォルト:25。", + "GrabReleaseUnknownArtistOrAlbumMessageText": "Radarrは、このリリースの対象となる映画を特定できませんでした。 Radarrは、このリリースを自動的にインポートできない場合があります。 '{0}'を取得しますか?", + "FormatAgeMinutes": "議事録", + "MonitorNoAlbums": "なし", + "Yesterday": "昨日" } diff --git a/src/NzbDrone.Core/Localization/Core/ko.json b/src/NzbDrone.Core/Localization/Core/ko.json index 92101ec25..57bde4bc5 100644 --- a/src/NzbDrone.Core/Localization/Core/ko.json +++ b/src/NzbDrone.Core/Localization/Core/ko.json @@ -676,5 +676,36 @@ "ExtraFileExtensionsHelpTextsExamples": "예 : '.sub, .nfo'또는 'sub, nfo'", "NoLimitForAnyDuration": "런타임 제한 없음", "NoMinimumForAnyDuration": "런타임에 대한 최소값 없음", - "DeleteArtistFoldersHelpText": "동영상 폴더 및 내용 삭제" + "DeleteArtistFoldersHelpText": "동영상 폴더 및 내용 삭제", + "CustomFilter": "사용자 지정 필터", + "IncludeHealthWarnings": "건강 경고 포함", + "Lowercase": "소문자", + "Uppercase": "대문자", + "InteractiveSearchModalHeader": "대화형 검색", + "QualitySettingsSummary": "품질 크기 및 이름 지정", + "IndexerFlags": "인덱서 플래그", + "Links": "연결", + "RemoveQueueItemConfirmation": "대기열에서 {0} 항목 {1}을 제거하시겠습니까?", + "UiSettingsSummary": "달력, 날짜 및 색상 장애 옵션", + "ImportList": "기울기", + "ImportLists": "기울기", + "KeyboardShortcuts": "키보드 단축키", + "DefaultCase": "기본 케이스", + "IndexerPriorityHelpText": "인덱서 우선 순위는 1 (가장 높음)에서 50 (가장 낮음)까지입니다. 기본값 : 25.", + "DownloadClientsSettingsSummary": "클라이언트 다운로드, 다운로드 처리 및 원격 경로 매핑", + "CustomFormatsSettingsSummary": "사용자 정의 형식 및 설정", + "AutoRedownloadFailed": "다운로드 실패함", + "ConnectSettingsSummary": "알림, 미디어 서버 / 플레이어에 대한 연결 및 사용자 지정 스크립트", + "CustomFormatsSettings": "사용자 정의 형식 설정", + "GeneralSettingsSummary": "포트, SSL, 사용자 이름 / 암호, 프록시, 분석 및 업데이트", + "MonitorNoAlbums": "없음", + "TagsSettingsSummary": "모든 태그와 사용 방법을 확인하십시오. 사용하지 않는 태그는 제거 할 수 있습니다.", + "Tomorrow": "내일", + "Yesterday": "어제", + "ArtistIndexFooterDownloading": "다운로드 중", + "AutomaticSearch": "자동 검색", + "ImportListsSettingsSummary": "가져오기 목록, 목록 제외", + "AddToDownloadQueue": "다운로드 대기열에 추가됨", + "AddedToDownloadQueue": "다운로드 대기열에 추가됨", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName}는 이 출시의 영화를 확인할 수 없습니다. {appName}는 이 출시를 자동으로 가져오지 못할 수 있습니다. '{0}'을(를) 잡으시겠습니까?" } diff --git a/src/NzbDrone.Core/Localization/Core/lv.json b/src/NzbDrone.Core/Localization/Core/lv.json index ccb0acbe1..add63ab68 100644 --- a/src/NzbDrone.Core/Localization/Core/lv.json +++ b/src/NzbDrone.Core/Localization/Core/lv.json @@ -8,5 +8,12 @@ "Add": "Pievienot", "AddAutoTag": "Pievienot Automātisko Tagu", "AddCondition": "Pievienot Nosacījumu", - "AddConnection": "Pievienot Savienojumu" + "AddConnection": "Pievienot Savienojumu", + "New": "Jauns", + "EditConditionImplementation": "Pievienot Nosacījumu - {implementationName}", + "EditIndexerImplementation": "Pievienot Nosacījumu - {implementationName}", + "ExportCustomFormat": "Pievienot Pielāgotu Formātu", + "AddIndexerImplementation": "Pievienot Nosacījumu - {implementationName}", + "EditConnectionImplementation": "Pievienot Savienojumu - {implementationName}", + "EditDelayProfile": "Pievienot Aizkaves Profilu" } diff --git a/src/NzbDrone.Core/Localization/Core/nb_NO.json b/src/NzbDrone.Core/Localization/Core/nb_NO.json index 33de8f218..47943dbcf 100644 --- a/src/NzbDrone.Core/Localization/Core/nb_NO.json +++ b/src/NzbDrone.Core/Localization/Core/nb_NO.json @@ -249,5 +249,22 @@ "DeleteAutoTagHelpText": "Er du sikker på at du vil slette formattaggen {0}?", "AddConditionImplementation": "Legg til betingelse - {implementationName}", "AddAutoTagError": "Ikke mulig å legge til ny automatisk tagg, vennligst prøv igjen", - "AddConditionError": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen" + "AddConditionError": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen", + "UnableToAddANewIndexerPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen", + "UnableToAddANewListPleaseTryAgain": "Ikke mulig å legge til ny automatisk tagg, vennligst prøv igjen", + "Docker": "Docker", + "AutomaticSearch": "Automatisk Søk", + "AutoTaggingSpecificationTag": "Merke", + "ConnectSettingsSummary": "Varslinger, tilkoblinger til mediaservere/avspillere, og tilpassede scripts", + "EditConnectionImplementation": "Legg til betingelse - {implementationName}", + "EditIndexerImplementation": "Legg til betingelse - {implementationName}", + "UnableToAddANewDownloadClientPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen", + "UnableToAddANewNotificationPleaseTryAgain": "Ikke mulig å legge til ny betingelse, vennligst prøv igjen", + "UnableToAddANewRootFolderPleaseTryAgain": "Ikke mulig å legge til ny automatisk tagg, vennligst prøv igjen", + "AddConnectionImplementation": "Legg til betingelse - {implementationName}", + "AddImportListExclusionAlbumHelpText": "Forhindre at filmen legges til i {appName} av lister", + "EditConditionImplementation": "Legg til betingelse - {implementationName}", + "AddToDownloadQueue": "Legg til i nedlastingskø", + "AddedToDownloadQueue": "Lagt til i nedlastingskø", + "AddIndexerImplementation": "Legg til betingelse - {implementationName}" } diff --git a/src/NzbDrone.Core/Localization/Core/nl.json b/src/NzbDrone.Core/Localization/Core/nl.json index 21e716fe9..ee6c2b56a 100644 --- a/src/NzbDrone.Core/Localization/Core/nl.json +++ b/src/NzbDrone.Core/Localization/Core/nl.json @@ -846,5 +846,23 @@ "AutomaticUpdatesDisabledDocker": "Automatische updates zijn niet ondersteund wanneer je het docker update mechanisme gebruikt. Je dient de container image up te daten buiten {appName} om of een script te gebruiken", "ChownGroup": "chown groep", "AddAlbumWithTitle": "Toevoegen", - "AutoTaggingSpecificationTag": "Tag" + "AutoTaggingSpecificationTag": "Tag", + "IndexerFlags": "Indexeerder Flags", + "InteractiveSearchModalHeader": "Interactief Zoeken", + "CatalogNumber": "catalogusnummer", + "Artist": "artiest", + "CustomFilter": "Aangepaste Filters", + "Discography": "discografie", + "FormatAgeHour": "Uren", + "FormatAgeHours": "Uren", + "FormatAgeMinute": "minuten", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} was niet in staat om deze uitgave aan een film te koppelen. {appName} zal waarschijnlijk deze uitgave niet automatisch kunnen importeren. Wilt u '{0}' ophalen?", + "IndexerPriorityHelpText": "Indexeerder Prioriteit van 1 (Hoogste) tot 50 (Laagste). Standaard: 25. Wordt gebruikt als tiebreaker voor anderszins gelijke uitgaves, {appName} zal nog steeds alle ingeschakelde indexeerderders gebruiken voor RSS synchronisate en zoekopdrachten", + "MonitorNoAlbums": "Geen", + "Release": " Uitgebracht", + "Yesterday": "Gisteren", + "AddToDownloadQueue": "Toevoegen aan download wachtrij", + "AddedToDownloadQueue": "Toegevoegd aan download wachtrij", + "Artists": "artiest", + "Tomorrow": "Morgen" } diff --git a/src/NzbDrone.Core/Localization/Core/pl.json b/src/NzbDrone.Core/Localization/Core/pl.json index 4e4c85ad0..97bff9584 100644 --- a/src/NzbDrone.Core/Localization/Core/pl.json +++ b/src/NzbDrone.Core/Localization/Core/pl.json @@ -798,5 +798,7 @@ "GrabReleaseUnknownArtistOrAlbumMessageText": "Radarr nie był w stanie określić, dla którego filmu jest to wydanie. Radarr może nie być w stanie automatycznie zaimportować tej wersji. Czy chcesz złapać „{0}”?", "Tomorrow": "Jutro", "FormatAgeMinute": "Minuty", - "FormatAgeMinutes": "Minuty" + "FormatAgeMinutes": "Minuty", + "InteractiveSearchModalHeader": "Wyszukiwanie interaktywne", + "IndexerPriorityHelpText": "Priorytet indeksera od 1 (najwyższy) do 50 (najniższy). Domyślnie: 25. Używany podczas pobierania wydań przy wystąpieniu równoważnych wydań. Przy synchronizacji RSS i wyszukiwaniu, Radarr wciąż będzie korzystał ze wszystkich indekserów" } diff --git a/src/NzbDrone.Core/Localization/Core/pt.json b/src/NzbDrone.Core/Localization/Core/pt.json index 8dce25e2d..3a5a801f2 100644 --- a/src/NzbDrone.Core/Localization/Core/pt.json +++ b/src/NzbDrone.Core/Localization/Core/pt.json @@ -999,5 +999,10 @@ "BlocklistMultipleOnlyHint": "Adicionar à lista de bloqueio sem procurar por substitutos", "BlocklistOnly": "Apenas adicionar à lista de bloqueio", "BlocklistOnlyHint": "Adicionar à lista de bloqueio sem procurar por um substituto", - "ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}" + "ConnectionSettingsUrlBaseHelpText": "Adiciona um prefixo ao URL {connectionName}, como {url}", + "InteractiveSearchModalHeader": "Pesquisa interativa", + "IndexerPriorityHelpText": "Prioridade do Indexador de 1 (Mais Alta) a 50 (Mais Baixa). Padrão: 25. Usado para obter versões como critério de desempate para versões iguais, o {appName} ainda usará todos os indexadores habilitados para sincronização e pesquisa de RSS", + "Release": " lançamento", + "FormatAgeHour": "Horas", + "DeleteSelectedArtists": "Eliminar artista selecionado" } diff --git a/src/NzbDrone.Core/Localization/Core/ro.json b/src/NzbDrone.Core/Localization/Core/ro.json index e02e1cdf4..0ad0176f0 100644 --- a/src/NzbDrone.Core/Localization/Core/ro.json +++ b/src/NzbDrone.Core/Localization/Core/ro.json @@ -673,5 +673,100 @@ "Album": "Album", "AddConnection": "Adăugați conexiune", "AppUpdated": "{appName} actualizat", - "CustomFilter": "Filtru personalizat" + "CustomFilter": "Filtru personalizat", + "MonitoredStatus": "Monitorizat / Stare", + "Albums": "Album", + "Release": " Eliberată", + "DefaultCase": "Caz implicit", + "DeleteSpecificationHelpText": "Sigur doriți să ștergeți aplicația '{name}'?", + "DownloadClientStatusCheckSingleClientMessage": "Clienții de descărcare indisponibili datorită erorilor: {0}", + "ExpandAlbumByDefaultHelpText": "Album", + "ExtraFileExtensionsHelpText": "Lista separată prin virgulă a fișierelor suplimentare de importat (.nfo va fi importat ca .nfo-orig)", + "FileNameTokens": "Jetoane cu nume de fișier", + "IncludeHealthWarnings": "Includeți avertismente de sănătate", + "Lowercase": "Minuscule", + "NoResultsFound": "Nici un rezultat gasit", + "OrganizeSelectedArtists": "Organizați filme selectate", + "Uppercase": "Majuscule", + "SuggestTranslationChange": "Sugerează modificarea traducerii", + "ExtraFileExtensionsHelpTextsExamples": "Exemple: „.sub, .nfo” sau „sub, nfo”", + "DisabledForLocalAddresses": "Dezactivat pentru adresele locale", + "QualitySettingsSummary": "Calitate - mărimi și denumiri", + "Yesterday": "Ieri", + "EditDownloadClientImplementation": "Adăugați client de descărcare - {implementationName}", + "CloneCondition": "Clonați condiție", + "Enabled": "Activat", + "AddNewArtistRootFolderHelpText": "Subfolderul „{0}” va fi creat automat", + "ImportList": "Liste", + "Priority": "Prioritate", + "Unlimited": "Nelimitat", + "InteractiveSearchModalHeader": "Căutare interactivă", + "AutoTaggingNegateHelpText": "Dacă este bifat, formatul personalizat nu se va aplica dacă această {0} condiție se potrivește.", + "DeleteAutoTagHelpText": "Sigur doriți să ștergeți eticheta '{label}'?", + "EditIndexerImplementation": "Adăugați Indexator - {implementationName}", + "Large": "Mare", + "KeyboardShortcuts": "Scurtături din tastatură", + "Links": "Link-uri", + "Overview": "Prezentare generală", + "RemoveQueueItemConfirmation": "Sigur doriți să eliminați {0} elementul {1} din coadă?", + "DeleteSpecification": "Ștergeți notificarea", + "Negate": "Nega", + "OverviewOptions": "Opțiuni de prezentare generală", + "CustomFormatsSettings": "Setări de formate personalizate", + "DeleteArtistFoldersHelpText": "Ștergeți folderul filmului și conținutul acestuia", + "AuthBasic": "Basic (fereastră pop-up browser)", + "AuthForm": "Formulare (Pagina de autentificare)", + "AuthenticationRequired": "Autentificare necesara", + "ConnectSettingsSummary": "Notificări, conexiuni la servere și aplicații media, scripturi personale", + "CustomFormatsSettingsSummary": "Formate personalizate și setări", + "DownloadClientsSettingsSummary": "Clienți de descărcare, abordarea descărcărilor și configurarea căilor externe de stocare", + "EditConnectionImplementation": "Adăugați conexiune - {implementationName}", + "AddConditionImplementation": "Adăugați conexiune - {implementationName}", + "EditConditionImplementation": "Adăugați conexiune - {implementationName}", + "BlocklistReleaseHelpText": "Împiedică Radarr să apuce automat această versiune din nou", + "GeneralSettingsSummary": "Port, SSL, utilizator/parolă, proxy, statistici și actualizări", + "ImportLists": "Liste", + "NoLimitForAnyDuration": "Fără limită pentru orice timp de rulare", + "NoMinimumForAnyDuration": "Niciun minim pentru orice timp de rulare", + "RenameFiles": "Redenumește Fișierele", + "ResetQualityDefinitions": "Resetare definitii de calitate", + "Table": "Tabel", + "UiSettingsSummary": "Calendar, dată și setări pentru probleme de vedere", + "ChooseImportMethod": "Alege modul de import", + "DeleteArtistFolderCountConfirmation": "Sigur doriți să ștergeți {count} indexatori selectați?", + "DeleteArtistFolderHelpText": "Ștergeți folderul filmului și conținutul acestuia", + "Small": "Mic", + "ConditionUsingRegularExpressions": "Această condiție se potrivește folosind expresii regulate. Rețineți că caracterele {0} au semnificații speciale și trebuie să scape cu un {1}", + "FormatAgeHours": "ore", + "FormatAgeMinute": "minute", + "FormatAgeDay": "zi", + "FormatAgeDays": "zile", + "FormatAgeHour": "oră", + "FormatAgeMinutes": "minute", + "GrabId": "Grab ID", + "ImportListsSettingsSummary": "Importă Liste, excluderi din listă", + "MonitorNoAlbums": "Nici unul", + "TagsSettingsSummary": "Vezi toate etichetele și cum sunt folosite. Etichetele nefolosite pot fi eliminate", + "Tomorrow": "Mâine", + "AuthenticationRequiredPasswordHelpTextWarning": "Introduceți o parolă nouă", + "AuthenticationRequiredUsernameHelpTextWarning": "Introduceți un nou nume de utilizator", + "Posters": "Afise", + "SomeResultsAreHiddenByTheAppliedFilter": "Unele rezultate sunt ascunse de filtrul aplicat", + "UpdateSelected": "Actualizează selecția", + "AddAutoTagError": "Nu se poate adăuga o nouă listă, vă rugăm să încercați din nou.", + "AddConditionError": "Imposibil de adăugat o condiție nouă, încercați din nou.", + "AddImportListExclusionArtistHelpText": "Împiedicați ca filmele să fie adăugate la {appName} pe liste", + "AddListExclusionHelpText": "Împiedicați ca filmele să fie adăugate la {appName} pe liste", + "AddNewArtistSearchForMissingAlbums": "Începeți căutarea filmului lipsă", + "AlbumsLoadError": "Imposibil de încărcat copiile de rezervă", + "Connection": "Conexiuni", + "GrabReleaseUnknownArtistOrAlbumMessageText": "Radarr nu a putut stabili pentru ce film a fost lansată această lansare. Este posibil ca Radarr să nu poată importa automat această versiune. Doriți să luați „{0}”?", + "ArtistIndexFooterDownloading": "Descărcarea", + "AutoRedownloadFailed": "Descarcare esuata", + "PreferredSize": "Dimensiune preferată", + "IndexerPriorityHelpText": "Prioritatea indexerului de la 1 (cea mai mare) la 50 (cea mai mică). Implicit: 25.", + "InfoUrl": "URL informații", + "AutomaticSearch": "Căutare automată", + "PosterOptions": "Opțiuni poster", + "ResetDefinitions": "Resetare definitii" } diff --git a/src/NzbDrone.Core/Localization/Core/sk.json b/src/NzbDrone.Core/Localization/Core/sk.json index 50dbfbf16..bca9dc1e5 100644 --- a/src/NzbDrone.Core/Localization/Core/sk.json +++ b/src/NzbDrone.Core/Localization/Core/sk.json @@ -244,5 +244,47 @@ "BindAddressHelpTextWarning": "Vyžaduje sa reštart, aby sa zmeny prejavili", "ApplyTagsHelpTextAdd": "Pridať: Pridať značky do existujúceho zoznamu značiek", "ApplyTagsHelpTextHowToApplyArtists": "Ako použiť značky na vybraných umelcov", - "ApplyTagsHelpTextHowToApplyDownloadClients": "Ako použiť značky na vybratých klientov na sťahovanie" + "ApplyTagsHelpTextHowToApplyDownloadClients": "Ako použiť značky na vybratých klientov na sťahovanie", + "Required": "Vyžadovať", + "ApplyTagsHelpTextRemove": "Odobrať: Odoberie zadané značky", + "EditImportListExclusion": "Pridať vylúčenie zoznamu", + "EditReleaseProfile": "Pridať profil vydania", + "UnableToLoadBackups": "Nie je možné načítať albumy", + "UnableToAddANewDownloadClientPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", + "UnableToAddANewImportListExclusionPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", + "MonitorAllAlbums": "Všetky albumy", + "UnableToAddANewRootFolderPleaseTryAgain": "Nie je možné pridať novú automatickú značku, skúste to znova.", + "EditConditionImplementation": "Pridať podmienku - {implementationName}", + "ExpandAlbumByDefaultHelpText": "Albumy", + "ImportList": "Zoznam", + "UnableToAddANewIndexerPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", + "Connection": "Spojenie", + "DeleteSpecificationHelpText": "Naozaj chcete zmazať tento profil oneskorenia?", + "Docker": "Docker", + "DeleteImportListExclusion": "Pridať vylúčenie zoznamu", + "ConnectionLost": "Spojenie prerušené", + "EditConnectionImplementation": "Pridať pripojenie - {implementationName}", + "EditDownloadClientImplementation": "Pridať klienta pre sťahovanie - {implementationName}", + "DeleteRemotePathMapping": "Pridajte vzdialené mapovanie ciest", + "ApplyTagsHelpTextHowToApplyImportLists": "Ako použiť značky na vybrané filmy", + "ApplyTagsHelpTextHowToApplyIndexers": "Ako použiť značky na vybrané filmy", + "EditImportListImplementation": "Pridať zoznam importov - {implementationName}", + "AutoTaggingSpecificationTag": "Značka", + "AuthBasic": "Základné (vyskakovacie okno prehliadača)", + "Auto": "Automaticky", + "Enabled": "Povoliť", + "Posters": "Plagáty", + "EditIndexerImplementation": "Pridať Indexer - {implementationName}", + "SomeResultsAreHiddenByTheAppliedFilter": "Všetky výsledky sú skryté použitým filtrom", + "ImportLists": "Zoznam", + "BypassIfHighestQualityHelpText": "Obísť oneskorenie, keď vydanie má najvyššiu kvalitu v profile kvality s preferovaným protokolom", + "DeleteConditionMessageText": "Naozaj chcete zmazať tento profil oneskorenia?", + "ImportListExclusions": "Pridať vylúčenie zoznamu importov", + "AuthForm": "Formuláre (prihlasovacia stránka)", + "UnableToAddANewListPleaseTryAgain": "Nie je možné pridať novú automatickú značku, skúste to znova.", + "UnableToAddANewNotificationPleaseTryAgain": "Nie je možné pridať novú podmienku, skúste to znova.", + "DeleteAutoTagHelpText": "Naozaj chcete zmazať tento profil oneskorenia?", + "DisabledForLocalAddresses": "Zakázané pre miestne adresy", + "AutomaticSearch": "Automatické vyhľadávanie", + "BlocklistReleases": "Blocklistnúť vydanie" } diff --git a/src/NzbDrone.Core/Localization/Core/sv.json b/src/NzbDrone.Core/Localization/Core/sv.json index f7239c620..a4ef82a41 100644 --- a/src/NzbDrone.Core/Localization/Core/sv.json +++ b/src/NzbDrone.Core/Localization/Core/sv.json @@ -785,5 +785,122 @@ "UpdateCheckStartupNotWritableMessage": "Ej möjligt att installera uppdatering då uppstartsmappen '{0}' inte är skrivbar för användaren '{1}'.", "UpdateCheckStartupTranslocationMessage": "Ej möjligt att installera uppdatering då uppstartsmappen '{0}' är i en \"App translocation\"-mapp.", "UpdateCheckUINotWritableMessage": "Ej möjligt att installera uppdatering då användargränssnittsmappen '{0}' inte är skrivbar för användaren '{1}'.", - "DeleteCustomFormat": "Ta bort anpassat format" + "DeleteCustomFormat": "Ta bort anpassat format", + "AutoTaggingNegateHelpText": "Om det är markerat kommer det anpassade formatet inte att gälla om detta {0} villkor matchar.", + "IncludeHealthWarnings": "Inkludera hälsovarningar", + "IndexerFlags": "Indexerflaggor", + "Lowercase": "Små bokstäver", + "No": "Nej", + "ConnectionLost": "Anslutning saknas", + "DeleteRemotePathMapping": "Redigera fjärrsökväg", + "DeleteSpecificationHelpText": "Är du säker på att du vill ta bort kvalitetsprofilen '{0}'?", + "DisabledForLocalAddresses": "Inaktiverad för lokala adresser", + "FileNameTokens": "Filnamn tokens", + "KeyboardShortcuts": "Tangentbordsgenvägar", + "NotificationStatusSingleClientHealthCheckMessage": "Listor otillgängliga på grund av fel: {0}", + "OrganizeSelectedArtists": "Organisera markerade filmer", + "Release": " Släppte", + "Required": "Nödvändig", + "BlocklistReleases": "Svartlista Utgåva", + "RemovingTag": "Ta bort taggen", + "CustomFilter": "Anpassade Filter", + "DeleteSpecification": "Radera avisering", + "DownloadClientsSettingsSummary": "Nedladdningsklienter, nedladdningshantering och fjärrsökvägar", + "FormatAgeMinutes": "Minuter", + "NoChange": "Ingen förändring", + "NoEventsFound": "Inga händelser hittades", + "Tomorrow": "Igår", + "Yes": "Ja", + "ApplyTagsHelpTextHowToApplyArtists": "Så här applicerar du taggar på de valda författarna", + "QueueIsEmpty": "Kön är tom", + "ExtraFileExtensionsHelpTextsExamples": "Exempel: '.sub, .nfo' eller 'sub,nfo'", + "Enabled": "Aktiverad", + "SuggestTranslationChange": "Föreslå översättningsändring", + "Large": "Stor", + "MonitorExistingAlbums": "Existerande Albums", + "NoLimitForAnyDuration": "Ingen gräns för någon körtid", + "Unlimited": "Obegränsad", + "PreferredSize": "Önskad storlek", + "InteractiveSearchModalHeader": "Interaktiv sökning", + "MonitorFutureAlbums": "Framtida Album", + "ApplyTagsHelpTextHowToApplyDownloadClients": "Så här applicerar du taggar på de valda författarna", + "ApplyTagsHelpTextHowToApplyImportLists": "Så här applicerar du taggar på de valda författarna", + "ReleaseProfile": "Utgåvo-Profiler", + "ExistingTag": "Befintlig tagg", + "AutoRedownloadFailed": "Fel vid nerladdning", + "AuthForm": "Blanketter (inloggningssida)", + "AddConditionError": "Det gick inte att lägga till ett nytt villkor. Försök igen.", + "AddImportList": "Importera lista", + "AddListExclusionHelpText": "Förhindra TV-serie att läggas till i {appName} från listor", + "AddNewArtistRootFolderHelpText": "Mappen \"{folder}\" kommer skapas automatiskt", + "AddNewArtistSearchForMissingAlbums": "Börja söka efter saknad film", + "ConnectSettingsSummary": "Aviseringar, anslutningar till media-servrar/klienter, och anpassade script", + "CustomFormatsSettings": "Inställningar för Anpassade format", + "ImportListsSettingsSummary": "Importera listor, listuteslutningar", + "ApplyTagsHelpTextRemove": "Ta bort: Ta bort de angivna taggarna", + "AutoTaggingSpecificationTag": "Tagg", + "CustomFormatsSettingsSummary": "Anpassade format och Inställningar", + "DeleteSelectedIndexers": "Radera indexerare", + "ExtraFileExtensionsHelpText": "Kommaseparerad lista med extra filer som ska importeras (.nfo importeras som .nfo-orig)", + "ImportList": "Lista", + "MonitorAllAlbums": "Alla Album", + "NoMinimumForAnyDuration": "Inget minimum för någon körtid", + "Overview": "Översikt", + "Priority": "Prioritet", + "QualitySettingsSummary": "Namn och storleksdefinitioner på kvaliteterna", + "RecentChanges": "Senaste ändringar", + "SetTags": "Ange taggar", + "TagsSettingsSummary": "Se samtliga taggar och hur de används. Oanvända taggar kan tas bort", + "UiSettingsSummary": "Alternativ för kalender, datum och färgblindhet", + "Uppercase": "Versaler", + "OverviewOptions": "Översiktsalternativ", + "AuthBasic": "Grundläggande (Browser Popup)", + "GrabId": "Hämta ID", + "FailedToLoadQueue": "Det gick inte att läsa in kön", + "FormatAgeHour": "Timmar", + "FormatAgeHours": "Timmar", + "FormatAgeMinute": "Minuter", + "GeneralSettingsSummary": "Port, SSL, användarnamn/lösenord, proxy, analys och uppdateringar", + "MonitorNoAlbums": "Ingen", + "Negated": "Negerat", + "PosterOptions": "Affischalternativ", + "Posters": "Affischer", + "UpdateSelected": "Uppdatera markerade", + "WhatsNew": "Vad är nytt?", + "Yesterday": "Igår", + "AlbumsLoadError": "Det gick inte att ladda säkerhetskopior", + "ApplyTagsHelpTextAdd": "Lägg till: Lägg till taggarna i den befintliga listan med taggar", + "DeleteArtistFolderHelpText": "Ta bort filmmappen och dess innehåll", + "DeleteArtistFoldersHelpText": "Ta bort filmmappen och dess innehåll", + "DeleteConditionMessageText": "Är du säker på att du vill ta bort kvalitetsprofilen '{0}'?", + "RenameFiles": "Byt namn på filer", + "AddImportListExclusionArtistHelpText": "Förhindra TV-serie att läggas till i {appName} från listor", + "Table": "Tabell", + "AddAutoTagError": "Det gick inte att lägga till en ny lista. Försök igen.", + "AllResultsAreHiddenByTheAppliedFilter": "Alla resultat döljs av det tillämpade filtret", + "AddToDownloadQueue": "Lägg till i nedladdningskö", + "AddedToDownloadQueue": "Tillagd i nedladdningskö", + "ApplyTagsHelpTextHowToApplyIndexers": "Så här applicerar du taggar på de valda författarna", + "ConditionUsingRegularExpressions": "Detta villkor matchar användningen av reguljära uttryck. Observera att tecknen {0} har speciella betydelser och behöver fly med ett {1}", + "Connection": "Anslutning", + "GrabReleaseUnknownArtistOrAlbumMessageText": "Readarr kunde inte avgöra vilken författare och bok denna utgåva tillhör. Readarr kanske inte kan importera den här utgåvan automatiskt. Vill du ta hämta \"{0}\"?", + "ArtistIndexFooterDownloading": "Laddar ner", + "ArtistIsUnmonitored": "Författare är obevakad", + "Deceased": "Död", + "DefaultCase": "Standardfall", + "DeleteAutoTagHelpText": "Är du säker på att du vill ta bort kvalitetsprofilen '{0}'?", + "DeleteSelectedImportLists": "Radera Importlista", + "NoHistoryBlocklist": "Ingen blocklista-historik", + "NoResultsFound": "Inga resultat funna", + "Small": "Små", + "SomeResultsAreHiddenByTheAppliedFilter": "Vissa resultat döljs av det applicerade filtret", + "IndexerPriorityHelpText": "Indexeringsprioritet från 1 (högst) till 50 (lägst). Standard: 25.", + "MonitoredStatus": "Bevakad/Status", + "AutomaticSearch": "Automatisk sökning", + "ConnectionLostReconnect": "Radarr kommer försöka ansluta automatiskt, du kan även klicka på ladda om nedan.", + "MonitorFirstAlbum": "Första Album", + "Negate": "Förneka", + "NotificationStatusAllClientHealthCheckMessage": "Samtliga listor otillgängliga på grund av fel", + "UseSsl": "Använd SSL", + "Links": "Länkar" } diff --git a/src/NzbDrone.Core/Localization/Core/th.json b/src/NzbDrone.Core/Localization/Core/th.json index b8b4dd15e..7a05547a6 100644 --- a/src/NzbDrone.Core/Localization/Core/th.json +++ b/src/NzbDrone.Core/Localization/Core/th.json @@ -622,5 +622,112 @@ "UpdateCheckStartupTranslocationMessage": "ไม่สามารถติดตั้งการอัปเดตได้เนื่องจากโฟลเดอร์เริ่มต้น \"{0}\" อยู่ในโฟลเดอร์การแปลแอป", "UpdateCheckStartupNotWritableMessage": "ไม่สามารถติดตั้งการอัปเดตเนื่องจากโฟลเดอร์เริ่มต้น \"{0}\" ไม่สามารถเขียนได้โดยผู้ใช้ \"{1}\"", "UnableToLoadInteractiveSearch": "ไม่สามารถโหลดผลการค้นหาภาพยนตร์นี้ โปรดลองอีกครั้งในภายหลัง", - "UnableToLoadCustomFormats": "ไม่สามารถโหลดรูปแบบที่กำหนดเอง" + "UnableToLoadCustomFormats": "ไม่สามารถโหลดรูปแบบที่กำหนดเอง", + "AutomaticSearch": "ค้นหาอัตโนมัติ", + "IndexerFlags": "ดัชนีดัชนี", + "ApplyTagsHelpTextRemove": "ลบ: ลบแท็กที่ป้อน", + "WhatsNew": "มีอะไรใหม่", + "DefaultCase": "กรณีเริ่มต้น", + "ExistingTag": "แท็กที่มีอยู่", + "FailedToLoadQueue": "โหลดคิวไม่สำเร็จ", + "ImportList": "รายการ", + "KeyboardShortcuts": "แป้นพิมพ์ลัด", + "MonitoredStatus": "ตรวจสอบ / สถานะ", + "NoMinimumForAnyDuration": "ไม่มีขั้นต่ำสำหรับรันไทม์ใด ๆ", + "SuggestTranslationChange": "แนะนำการเปลี่ยนคำแปล", + "NoResultsFound": "ไม่พบผลลัพธ์", + "Priority": "ลำดับความสำคัญ", + "SetTags": "ตั้งแท็ก", + "Small": "เล็ก", + "CustomFilter": "ตัวกรองที่กำหนดเอง", + "DeleteSpecificationHelpText": "แน่ใจไหมว่าต้องการลบโปรไฟล์คุณภาพ {0}", + "GeneralSettingsSummary": "พอร์ต SSL ชื่อผู้ใช้ / รหัสผ่านพร็อกซีการวิเคราะห์และอัปเดต", + "Release": " การเผยแพร่", + "RemoveSelectedItemsQueueMessageText": "แน่ใจไหมว่าต้องการนำ {0} ออกจากคิว", + "Tomorrow": "พรุ่งนี้", + "UpdateSelected": "อัปเดตที่เลือก", + "ApplyTagsHelpTextHowToApplyArtists": "วิธีใช้แท็กกับภาพยนตร์ที่เลือก", + "ExtraFileExtensionsHelpTextsExamples": "ตัวอย่าง: \".sub, .nfo\" หรือ \"sub, nfo\"", + "Links": "ลิงค์", + "Uppercase": "ตัวพิมพ์ใหญ่", + "Yes": "ใช่", + "NoChange": "ไม่มีการเปลี่ยนแปลง", + "PreferredSize": "ขนาดที่ต้องการ", + "InteractiveSearchModalHeader": "การค้นหาแบบโต้ตอบ", + "UiSettingsSummary": "ตัวเลือกปฏิทินวันที่และสีบกพร่อง", + "SomeResultsAreHiddenByTheAppliedFilter": "ผลลัพธ์บางอย่างถูกซ่อนไว้โดยตัวกรองที่ใช้", + "NotificationStatusAllClientHealthCheckMessage": "รายการทั้งหมดไม่พร้อมใช้งานเนื่องจากความล้มเหลว", + "ApplyTagsHelpTextHowToApplyDownloadClients": "วิธีใช้แท็กกับภาพยนตร์ที่เลือก", + "ApplyTagsHelpTextHowToApplyImportLists": "วิธีใช้แท็กกับภาพยนตร์ที่เลือก", + "AutoRedownloadFailed": "ดาวน์โหลดล้มเหลว", + "Connection": "การเชื่อมต่อ", + "ConditionUsingRegularExpressions": "เงื่อนไขนี้ตรงกับการใช้นิพจน์ทั่วไป โปรดทราบว่าอักขระ {0} มีความหมายพิเศษและจำเป็นต้องมีการใช้เครื่องหมาย {1}", + "DeleteAutoTagHelpText": "แน่ใจไหมว่าต้องการลบโปรไฟล์คุณภาพ {0}", + "GrabReleaseUnknownArtistOrAlbumMessageText": "Radarr ไม่สามารถระบุได้ว่าภาพยนตร์เรื่องนี้เป็นภาพยนตร์เรื่องใด Radarr อาจไม่สามารถนำเข้ารุ่นนี้โดยอัตโนมัติได้ คุณต้องการคว้า \"{0}\" ไหม", + "NoLimitForAnyDuration": "ไม่มีขีด จำกัด สำหรับรันไทม์ใด ๆ", + "NotificationStatusSingleClientHealthCheckMessage": "รายการไม่พร้อมใช้งานเนื่องจากความล้มเหลว: {0}", + "RecentChanges": "การเปลี่ยนแปลงล่าสุด", + "RemoveQueueItemConfirmation": "แน่ใจไหมว่าต้องการนำ {0} ออกจากคิว", + "AddNewArtistSearchForMissingAlbums": "เริ่มค้นหาภาพยนตร์ที่หายไป", + "IndexerPriorityHelpText": "ลำดับความสำคัญของดัชนีจาก 1 (สูงสุด) ถึง 50 (ต่ำสุด) ค่าเริ่มต้น: 25.", + "Required": "จำเป็น", + "ConnectSettingsSummary": "การแจ้งเตือนการเชื่อมต่อกับเซิร์ฟเวอร์ / เครื่องเล่นสื่อและสคริปต์ที่กำหนดเอง", + "CustomFormatsSettings": "การตั้งค่ารูปแบบที่กำหนดเอง", + "DeleteRemotePathMapping": "แก้ไขการแมปเส้นทางระยะไกล", + "DownloadClientsSettingsSummary": "ดาวน์โหลดไคลเอนต์การจัดการการดาวน์โหลดและการแมปเส้นทางระยะไกล", + "AddImportListExclusionArtistHelpText": "ป้องกันไม่ให้เพิ่มภาพยนตร์ไปยัง {appName} ตามรายการ", + "DeleteArtistFoldersHelpText": "ลบโฟลเดอร์ภาพยนตร์และเนื้อหา", + "DeleteSpecification": "ลบการแจ้งเตือน", + "GrabId": "Grab ID", + "Negated": "เมื่อตะกี้", + "NoEventsFound": "ไม่พบกิจกรรม", + "Posters": "โปสเตอร์", + "QueueIsEmpty": "คิวว่างเปล่า", + "RemoveSelectedItemQueueMessageText": "แน่ใจไหมว่าต้องการนำ {0} ออกจากคิว", + "AuthBasic": "พื้นฐาน (เบราว์เซอร์ป๊อปอัพ)", + "DisabledForLocalAddresses": "ปิดใช้งานสำหรับที่อยู่ท้องถิ่น", + "Enabled": "เปิดใช้งาน", + "No": "ไม่", + "FormatAgeHour": "ชั่วโมง", + "FormatAgeHours": "ชั่วโมง", + "FormatAgeMinute": "นาที", + "FormatAgeMinutes": "นาที", + "ImportListsSettingsSummary": "นำเข้ารายการการยกเว้นรายการ", + "MonitorNoAlbums": "ไม่มี", + "QualitySettingsSummary": "ขนาดและการตั้งชื่อคุณภาพ", + "Yesterday": "เมื่อวานนี้", + "AddListExclusionHelpText": "ป้องกันไม่ให้เพิ่มภาพยนตร์ไปยัง {appName} ตามรายการ", + "AddNewArtistRootFolderHelpText": "โฟลเดอร์ย่อย \"{0}\" จะถูกสร้างขึ้นโดยอัตโนมัติ", + "ApplyTagsHelpTextAdd": "เพิ่ม: เพิ่มแท็กในรายการแท็กที่มีอยู่", + "AuthForm": "แบบฟอร์ม (หน้าเข้าสู่ระบบ)", + "BlocklistReleases": "Blacklist Release", + "ConnectionLost": "ขาดการเชื่อมต่อ", + "ConnectionLostReconnect": "Radarr จะพยายามเชื่อมต่อโดยอัตโนมัติหรือคุณสามารถคลิกโหลดซ้ำด้านล่าง", + "DeleteArtistFolderHelpText": "ลบโฟลเดอร์ภาพยนตร์และเนื้อหา", + "Large": "ใหญ่", + "OrganizeSelectedArtists": "จัดระเบียบภาพยนตร์ที่เลือก", + "Negate": "ลบล้าง", + "Table": "ตาราง", + "IncludeHealthWarnings": "รวมคำเตือนด้านสุขภาพ", + "Overview": "ภาพรวม", + "Unlimited": "ไม่ จำกัด", + "AddAutoTagError": "ไม่สามารถเพิ่มรายชื่อใหม่ได้โปรดลองอีกครั้ง", + "AddConditionError": "ไม่สามารถเพิ่มเงื่อนไขใหม่ได้โปรดลองอีกครั้ง", + "AlbumsLoadError": "ไม่สามารถโหลดข้อมูลสำรอง", + "AllResultsAreHiddenByTheAppliedFilter": "ผลลัพธ์ทั้งหมดถูกซ่อนโดยตัวกรองที่ใช้", + "ApplyTagsHelpTextHowToApplyIndexers": "วิธีใช้แท็กกับภาพยนตร์ที่เลือก", + "AutoTaggingNegateHelpText": "หากเลือกรูปแบบที่กำหนดเองจะใช้ไม่ได้หากเงื่อนไข {0} นี้ตรง", + "ArtistIndexFooterDownloading": "กำลังดาวน์โหลด", + "CustomFormatsSettingsSummary": "รูปแบบและการตั้งค่าที่กำหนดเอง", + "DeleteConditionMessageText": "แน่ใจไหมว่าต้องการลบโปรไฟล์คุณภาพ {0}", + "DeleteSelectedIndexers": "ลบ Indexer", + "ExtraFileExtensionsHelpText": "รายการไฟล์พิเศษที่คั่นด้วยจุลภาคที่จะนำเข้า (.nfo จะนำเข้าเป็น. nfo-orig)", + "FileNameTokens": "โทเค็นชื่อไฟล์", + "ImportLists": "รายการ", + "RemovingTag": "กำลังลบแท็ก", + "RenameFiles": "เปลี่ยนชื่อไฟล์", + "Lowercase": "ตัวพิมพ์เล็ก", + "OverviewOptions": "ตัวเลือกภาพรวม", + "PosterOptions": "ตัวเลือกโปสเตอร์", + "TagsSettingsSummary": "ดูแท็กทั้งหมดและวิธีการใช้งาน แท็กที่ไม่ได้ใช้สามารถลบออกได้" } diff --git a/src/NzbDrone.Core/Localization/Core/tr.json b/src/NzbDrone.Core/Localization/Core/tr.json index ad7d626f9..4188bfdba 100644 --- a/src/NzbDrone.Core/Localization/Core/tr.json +++ b/src/NzbDrone.Core/Localization/Core/tr.json @@ -956,5 +956,51 @@ "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", "External": "Harici", "InteractiveSearchModalHeaderTitle": "İnteraktif Arama - {title}", - "MassSearchCancelWarning": "Bu işlem, {appName} yeniden başlatılmadan veya tüm dizin oluşturucularınız devre dışı bırakılmadan başlatılır ise iptal edilemez." + "MassSearchCancelWarning": "Bu işlem, {appName} yeniden başlatılmadan veya tüm dizin oluşturucularınız devre dışı bırakılmadan başlatılır ise iptal edilemez.", + "Albums": "Albüm", + "InteractiveSearchModalHeader": "Etkileşimli Arama", + "NoMissingItems": "Eksik öğe yok", + "QualityProfileIdHelpText": "Kalite Profili listesi öğeleri şu şekilde eklenecektir:", + "ReleaseProfile": "Yayımlama Profilleri", + "RemotePathMappingCheckFilesGenericPermissions": "{downloadClientName} istemcisinin {path} dizininde rapor ettiği dosyaları indiriyor, ancak {appName} bu dizini göremiyor. Klasörün izinlerini ayarlamanız gerekebilir.", + "IndexerJackettAll": "Desteklenmeyen Jackett 'hepsi' uç noktasını kullanan dizinleyiciler: {indexerNames}", + "RootFolderPathHelpText": "Kök Klasör listesi öğeleri eklenecek", + "SearchForAllCutoffUnmetAlbums": "Tüm Kesinti Karşılanmayan filmlerini arayın", + "IsShowingMonitoredMonitorSelected": "Takip Edilen Seçildi", + "RemotePathMappingCheckDownloadPermissions": "{appName}, indirilen filmin {path} yolunu görebilir ancak erişemez. Olası izin hatası.", + "SearchForAllMissingAlbumsConfirmationCount": "{totalRecords} eksik filmin tamamını aramak istediğinizden emin misiniz?", + "MetadataProfileIdHelpText": "Kalite Profili listesi öğeleri şu şekilde eklenecektir:", + "DownloadClientTagHelpText": "Bu indirme istemcisini yalnızca en az bir eşleşen etikete sahip filmler için kullanın. Tüm filmlerde kullanmak için boş bırakın.", + "IndexerTagHelpText": "Bu dizinleyiciyi yalnızca en az bir eşleşen etikete sahip filmler için kullanın. Tüm filmlerle kullanmak için boş bırakın.", + "RemotePathMappingCheckGenericPermissions": "{downloadClientName} indirme istemcisi, indirmeleri {path} dizinine yerleştiriyor ancak {appName} bu dizini göremiyor. Klasörün izinlerini ayarlamanız gerekebilir.", + "RemotePathMappingCheckFilesLocalWrongOSPath": "Yerel indirme istemcisi {downloadClientName}, {path} yolunda dosyalar bildirdi ancak bu geçerli bir {osName} yolu değil. İndirme istemcisi ayarlarınızı gözden geçirin.", + "RemotePathMappingCheckRemoteDownloadClient": "Uzaktan indirme istemcisi {downloadClientName}, {path} yolunda dosyalar bildirdi ancak bu dizin mevcut görünmüyor. Muhtemelen uzak yol eşlemesi eksik.", + "RemotePathMappingCheckFilesBadDockerPath": "Docker kullanıyorsunuz; {downloadClientName} indirme istemcisi, {path} yolunda dosyalar bildirdi ancak bu geçerli bir {osName} yolu değil. Uzak yol eşlemelerinizi gözden geçirin ve istemci ayarlarını indirin.", + "RemotePathMappingsInfo": "Uzak Yol Eşlemeleri çok nadiren gereklidir; {appName} ve indirme istemciniz aynı sistemdeyse yollarınızı eşleştirmek daha iyidir. Daha fazla bilgi için [wiki]({wikiLink}) sayfasına bakın.", + "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", + "DownloadClientRemovesCompletedDownloadsHealthCheckMessage": "{downloadClientName} indirme istemcisi, tamamlanan indirmeleri kaldıracak şekilde ayarlandı. Bu, indirilenlerin {appName} içe aktarılmadan önce istemcinizden kaldırılmasına neden olabilir.", + "RemotePathMappingCheckFilesWrongOSPath": "Uzaktan indirme istemcisi {downloadClientName}, {path} yolunda dosyalar bildirdi ancak bu geçerli bir {osName} yolu değil. Uzak yol eşlemelerinizi gözden geçirin ve istemci ayarlarını indirin.", + "DownloadClientSortingCheckMessage": "{downloadClientName} indirme istemcisinde, {appName} kategorisi için {sortingMode} sıralama etkinleştirildi. İçe aktarma sorunlarını önlemek için indirme istemcinizde sıralamayı devre dışı bırakmalısınız.", + "RemotePathMappingCheckBadDockerPath": "Docker kullanıyorsunuz; {downloadClientName} indirme istemcisi indirmeleri {path} yoluna yerleştiriyor ancak bu geçerli bir {osName} yolu değil. Uzak yol eşlemelerinizi gözden geçirin ve istemci ayarlarını indirin.", + "RemotePathMappingCheckDockerFolderMissing": "Docker kullanıyorsunuz; {downloadClientName} indirme istemcisi, indirilenleri {path} dizinine yerleştiriyor ancak bu dizin, kapsayıcının içinde mevcut görünmüyor. Uzak yol eşlemelerinizi ve kapsayıcı birim ayarlarınızı gözden geçirin.", + "RemotePathMappingCheckWrongOSPath": "Uzaktan indirme istemcisi {downloadClientName}, indirmeleri {path} yoluna yerleştiriyor ancak bu geçerli bir {osName} yolu değil. Uzak yol eşlemelerinizi gözden geçirin ve istemci ayarlarını indirin.", + "TBA": "Daha sonra duyurulacak", + "ProfilesSettingsArtistSummary": "Kalite, Dil, Gecikme ve Yayımlama profilleri", + "EnabledHelpText": "Yayımlama profilini etkinleştirmek için işaretleyin", + "IndexerIdHelpText": "Profilin hangi dizinleyiciye uygulanacağını belirtin", + "RemotePathMappingCheckFileRemoved": "Dosyanın {path} yolu işlenme sürecinin bir parçası olarak kaldırıldı.", + "RemotePathMappingCheckLocalFolderMissing": "Uzaktan indirme istemcisi {downloadClientName}, indirmeleri {path} dizinine yerleştiriyor ancak bu dizin mevcut görünmüyor. Muhtemelen eksik veya yanlış uzak yol eşlemesi.", + "ResetTitlesHelpText": "Değerlerin yanı sıra tanım başlıklarını da sıfırlayın", + "SearchForAllCutoffUnmetAlbumsConfirmationCount": "{totalRecords} Karşılanmayan Kesim filmlerinin tamamını aramak istediğinizden emin misiniz?", + "ErrorLoadingContent": "Bu öğe yüklenirken bir hata oluştu", + "Loading": "Yükleniyor", + "IsShowingMonitoredUnmonitorSelected": "Seçili Takipleri Kaldır", + "RemotePathMappingCheckFolderPermissions": "{appName}, {path} indirme dizinini görebilir ancak erişemez. Olası izin hatası.", + "ExpandAlbumByDefaultHelpText": "Albüm", + "TagsHelpText": "Yayımlama profilleri, en az bir eşleşen etikete sahip filmlere uygulanacaktır. Tüm filmlere uygulamak için boş bırakın", + "SearchForAllMissingAlbums": "Eksik tüm filmleri arayın", + "UserAgentProvidedByTheAppThatCalledTheAPI": "API'yi çağıran uygulama tarafından sağlanan Kullanıcı Aracısı", + "NoCutoffUnmetItems": "Karşılanmayan son öğe yok", + "RemotePathMappingCheckLocalWrongOSPath": "Yerel indirme istemcisi {downloadClientName}, indirmeleri {path} yoluna yerleştiriyor ancak bu geçerli bir {osName} yolu değil. İndirme istemcisi ayarlarınızı gözden geçirin.", + "DeleteArtistFolderCountConfirmation": "Seçilen {count} içe aktarma listesini silmek istediğinizden emin misiniz?" } diff --git a/src/NzbDrone.Core/Localization/Core/uk.json b/src/NzbDrone.Core/Localization/Core/uk.json index 546a9eecf..995b9b4d3 100644 --- a/src/NzbDrone.Core/Localization/Core/uk.json +++ b/src/NzbDrone.Core/Localization/Core/uk.json @@ -586,5 +586,290 @@ "ClearBlocklist": "Очистити список блокувань", "ClearBlocklistMessageText": "Ви впевнені, що бажаєте очистити всі елементи зі списку блокування?", "CloneAutoTag": "Клонувати автоматичний тег", - "ConnectionSettingsUrlBaseHelpText": "Додає префікс до URL-адреси {connectionName}, наприклад {url}" + "ConnectionSettingsUrlBaseHelpText": "Додає префікс до URL-адреси {connectionName}, наприклад {url}", + "UserAgentProvidedByTheAppThatCalledTheAPI": "Агент користувача, наданий програмою, яка викликала API", + "ImportListRootFolderMissingRootHealthCheckMessage": "Відсутня коренева папка для списків імпорту: {0}", + "IndexerLongTermStatusCheckAllClientMessage": "Усі індексатори недоступні через збої більше 6 годин", + "ShowUnknownArtistItems": "Показати невідомі елементи фільму", + "Size": " Розмір", + "GrabReleaseUnknownArtistOrAlbumMessageText": "{appName} не зміг визначити, для якого фільму цей випуск. Можливо, {appName} не зможе автоматично імпортувати цей випуск. Ви хочете взяти '{0}'?", + "InteractiveSearchModalHeader": "Інтерактивний пошук", + "RemoveSelectedItem": "Видалити вибраний елемент", + "SslCertPathHelpText": "Шлях до файлу pfx", + "TheArtistFolderStrongpathstrongAndAllOfItsContentWillBeDeleted": "Папку фільму \"{0}\" і весь її вміст буде видалено.", + "UpdateCheckStartupNotWritableMessage": "Неможливо встановити оновлення, оскільки папка запуску \"{0}\" не може бути записана користувачем \"{1}\".", + "ColonReplacement": "Заміна двокрапок", + "CustomFormats": "Користувацькі формати", + "UpdateSelected": "Оновити вибране", + "DeleteArtistFolderCountWithFilesConfirmation": "Ви впевнені, що хочете видалити {count} вибраних серіалів і весь вміст?", + "DeleteSelectedTrackFilesMessageText": "Ви впевнені, що бажаєте видалити вибрані файли фільмів?", + "DetailedProgressBarHelpText": "Показати текст на панелі виконання", + "ImportListStatusCheckSingleClientMessage": "Списки недоступні через помилки: {0}", + "NETCore": ".NET", + "IndexerRssHealthCheckNoIndexers": "Немає доступних індексаторів із увімкненою синхронізацією RSS, {appName} не збиратиме нові випуски автоматично", + "Negated": "Заперечено", + "OrganizeSelectedArtists": "Упорядкуйте вибрані фільми", + "RequiresRestartToTakeEffect": "Щоб набуло чинності, потрібно перезапустити", + "AnalyticsEnabledHelpTextWarning": "Щоб набуло чинності, потрібно перезапустити", + "ApiKeyHelpTextWarning": "Щоб набуло чинності, потрібно перезапустити", + "DownloadClientStatusCheckSingleClientMessage": "Завантаження клієнтів недоступне через помилки: {0}", + "Large": "Великий", + "RemoveTagExistingTag": "Існуючий тег", + "RemoveTagRemovingTag": "Видалення мітки", + "ReplaceWithSpaceDash": "Замінити пробілом", + "RestartLidarr": "Перезавантажити {appName}", + "UnmonitoredHelpText": "Включайте неконтрольовані фільми в канал iCal", + "Posters": "Плакати", + "Priority": "Пріоритет", + "RemotePathMappingCheckImportFailed": "{appName} не вдалося імпортувати фільм. Подробиці перевірте у своїх журналах.", + "SslPortHelpTextWarning": "Щоб набуло чинності, потрібно перезапустити", + "ApiKeyValidationHealthCheckMessage": "Будь ласка оновіть ключ API, щоб він містив принаймні {length} символів. Ви можете зробити це в налаштуваннях або в файлі конфігурації", + "CustomFilter": "Користувацькі фільтри", + "DeleteRemotePathMapping": "Додати віддалений шлях", + "DeleteSelectedTrackFiles": "Видалити вибрані файли фільмів", + "DeleteTrackFileMessageText": "Ви впевнені, що хочете видалити '{path}'?", + "EditConditionImplementation": "Додати умому", + "EditConnectionImplementation": "Додати умому", + "MonitorNoAlbums": "Жодного", + "GeneralSettingsSummary": "Порт, SSL, ім’я користувача/пароль, проксі, аналітика та оновлення", + "Negate": "Заперечувати", + "QualitySettingsSummary": "Якісні розміри та найменування", + "Release": " Випуск", + "ReplaceWithDash": "Замінити тире", + "Small": "Маленький", + "SslCertPasswordHelpText": "Пароль для файлу pfx", + "SupportsSearchvalueWillBeUsedWhenInteractiveSearchIsUsed": "Буде використано, коли використовується інтерактивний пошук", + "Uppercase": "Великі літери", + "ApplyTagsHelpTextHowToApplyArtists": "Як застосувати теги до вибраних фільмів", + "ImportMechanismHealthCheckMessage": "Увімкнути обробку завершених завантажень", + "FileNameTokens": "Маркери імен файлів", + "KeyboardShortcuts": "Гарячі клавіши", + "MinimumCustomFormatScore": "Мінімальна оцінка спеціального формату", + "Customformat": "Користувацький формат", + "DeleteSelectedImportListsMessageText": "Ви впевнені, що хочете видалити тег {0} ?", + "ShownClickToHide": "Показано, натисніть, щоб приховати", + "SuggestTranslationChange": "Запропонуйте зміну перекладу", + "Unlimited": "Необмежений", + "Enabled": "Увімкнено", + "Formats": "Формати", + "IncludeCustomFormatWhenRenamingHelpText": "Включіть у формат перейменування {Custom Formats}", + "NoLimitForAnyDuration": "Немає обмежень для будь-якого часу виконання", + "CalendarWeekColumnHeaderHelpText": "Відображається над кожним стовпцем, коли тиждень є активним переглядом", + "UnableToAddANewImportListExclusionPleaseTryAgain": "Не вдалось додати виняток нового списку імпорту, спробуйте ще раз.", + "RemotePathMappingCheckBadDockerPath": "Ви використовуєте docker; клієнт завантаження {0} розміщує завантаження в {1}, але це недійсний шлях {2}. Перегляньте свої віддалені відображення шляхів і завантажте налаштування клієнта.", + "ExistingTag": "Існуючий тег", + "ExpandAlbumByDefaultHelpText": "Альбом", + "RemotePathMappingCheckDockerFolderMissing": "Ви використовуєте docker; клієнт завантаження {0} розміщує завантаження в {1}, але цей каталог не існує всередині контейнера. Перегляньте свої віддалені відображення шляхів і налаштування обсягу контейнера.", + "RemotePathMappingCheckFilesGenericPermissions": "Завантажте файли звітів клієнта {0} в {1}, але Radarr не бачить цей каталог. Можливо, вам знадобиться налаштувати дозволи для папки.", + "NoHistory": "Без історії", + "PropersAndRepacks": "Пропери та Репаки", + "RemotePathMappingCheckFilesWrongOSPath": "Клієнт віддаленого завантаження {0} повідомив про файли в {1}, але це недійсний шлях {2}. Перегляньте свої віддалені відображення шляхів і завантажте налаштування клієнта.", + "RootFolderCheckMultipleMessage": "Відсутні кілька кореневих папок: {0}", + "RootFolderCheckSingleMessage": "Відсутня коренева папка: {0}", + "StandardTrackFormat": "Стандартний формат фільму", + "ThemeHelpText": "Змініть тему інтерфейсу додатка, тема «Авто» використовуватиме вашу тему ОС, щоб установити світлий або темний режим. Натхненний Theme.Park", + "DeleteImportListExclusionMessageText": "Ви впевнені, що хочете видалити це виключення зі списку імпорту?", + "Links": "Посилання", + "RemoveQueueItemConfirmation": "Ви впевнені, що хочете видалити {0} елементів із черги?", + "ReplaceIllegalCharactersHelpText": "Замінити недопустимі символи. Якщо не позначено, {appName} видалить їх", + "AddImportListExclusionArtistHelpText": "Заборонити додавання фільму до {appName} за списками", + "MinFormatScoreHelpText": "Мінімальна оцінка спеціального формату, дозволена для завантаження", + "RenameFiles": "Перейменування файлів", + "ReplaceWithSpaceDashSpace": "Замінити на Пробіл Тире Пробіл", + "TimeLeft": "Час залишився", + "UpdateCheckUINotWritableMessage": "Неможливо встановити оновлення, оскільки папка інтерфейсу користувача \"{0}\" не може бути записана користувачем \"{1}\".", + "DownloadClientTagHelpText": "Використовуйте цей індексатор лише для фільмів із принаймні одним відповідним тегом. Залиште поле порожнім для використання з усіма фільмами.", + "ImportExtraFilesHelpText": "Імпортуйте відповідні додаткові файли (субтитри, nfo тощо) після імпортування файлу фільму", + "RemotePathMappingCheckGenericPermissions": "Клієнт завантаження {0} розміщує завантаження в {1}, але Radarr не бачить цей каталог. Можливо, вам знадобиться налаштувати дозволи для папки.", + "RenameTracksHelpText": "{appName} використовуватиме існуючу назву файлу, якщо перейменування вимкнено", + "SkipFreeSpaceCheckWhenImportingHelpText": "Використовуйте, коли {appName} не може виявити вільне місце в кореневій папці фільму", + "ExtraFileExtensionsHelpTextsExamples": "Приклади: '.sub, .nfo' або 'sub,nfo'", + "SuccessMyWorkIsDoneNoFilesToRename": "Успіх! Мою роботу виконано, немає файлів для перейменування.", + "TagsSettingsSummary": "Перегляньте всі теги та те, як вони використовуються. Невикористані теги можна видалити", + "ImportListStatusCheckAllClientMessage": "Усі списки недоступні через помилки", + "Tracks": "Трасувати", + "RemotePathMappingCheckWrongOSPath": "Клієнт віддаленого завантаження {0} розміщує завантаження в {1}, але це недійсний шлях {2}. Перегляньте свої віддалені відображення шляхів і завантажте налаштування клієнта.", + "ThisWillApplyToAllIndexersPleaseFollowTheRulesSetForthByThem": "Це стосується всіх індексаторів, будь ласка, дотримуйтеся встановлених ними правил", + "DeleteEmptyFoldersHelpText": "Видаліть порожні папки серіалів і сезонів під час сканування диска та під час видалення файлів серій", + "IgnoredHelpText": "Випуск буде відхилено, якщо він містить один або кілька термінів (незалежно від регістру)", + "LocalPathHelpText": "Шлях, який має використовувати {appName} для локального доступу до віддаленого шляху", + "LongDateFormat": "Довгий формат дати", + "MaintenanceRelease": "Випуск для обслуговування: виправлення помилок та інші покращення. Щоб отримати докладнішу інформацію, перегляньте історію фіксації Github", + "ReleaseDate": "Дати випуску", + "RemotePathMappingCheckDownloadPermissions": "{appName} може бачити, але не має доступу до завантаженого фільму {path}. Ймовірна помилка дозволів.", + "UnableToLoadCustomFormats": "Не вдалося завантажити спеціальні формати", + "ShownAboveEachColumnWhenWeekIsTheActiveView": "Відображається над кожним стовпцем, коли тиждень є активним переглядом", + "Table": "Таблиця", + "UnableToAddANewMetadataProfilePleaseTryAgain": "Не вдалося додати новий профіль якості, спробуйте ще раз.", + "DownloadPropersAndRepacksHelpTextWarning": "Використовуйте спеціальні формати для автоматичного оновлення до Propers/Repacks", + "EnableRssHelpText": "Використовуватиметься, коли {appName} періодично шукатиме випуски через RSS Sync", + "GrabId": "Захопити ID", + "HiddenClickToShow": "Приховано, натисніть, щоб показати", + "LidarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "{appName} підтримує будь-який індексатор, який використовує стандарт Newznab, а також інші індексатори, перелічені нижче.", + "NoMinimumForAnyDuration": "Немає мінімуму для будь-якого часу виконання", + "ReleaseStatuses": "Статус випуску", + "RemovingTag": "Видалення мітки", + "ShowRelativeDates": "Показати відносні дати", + "SslCertPathHelpTextWarning": "Щоб набуло чинності, потрібно перезапустити", + "UnableToAddANewRootFolderPleaseTryAgain": "Не вдалося додати новий індексатор, спробуйте ще раз.", + "CloneCustomFormat": "Клонувати користувацький формат", + "CustomFormatSettings": "Налаштування спеціальних форматів", + "IndexerSearchCheckNoAutomaticMessage": "Немає доступних індексаторів із увімкненим автоматичним пошуком, {appName} не надаватиме автоматичних результатів пошуку", + "QueueIsEmpty": "Черга порожня", + "RescanAfterRefreshHelpTextWarning": "{appName} не визначатиме автоматично зміни файлів, якщо не встановлено значення «Завжди»", + "CutoffFormatScoreHelpText": "Radarr перестане завантажувати фільми після досягнення вказаної кількості очок", + "DeleteFormatMessageText": "Ви впевнені, що хочете видалити тег {0} ?", + "DownloadClientCheckUnableToCommunicateMessage": "Неможливо зв'язатися з {0}.", + "FormatAgeHours": "Години", + "FormatAgeMinute": "Хвилин", + "HasPendingChangesSaveChanges": "Зберегти зміни", + "IndexerTagHelpText": "Використовуйте цей індексатор лише для фільмів із принаймні одним відповідним тегом. Залиште поле порожнім для використання з усіма фільмами.", + "ImportListsSettingsSummary": "Імпорт списків, список виключень", + "IndexerLongTermStatusCheckSingleClientMessage": "Індексатори недоступні через збої більше 6 годин: {0}", + "IndexerRssHealthCheckNoAvailableIndexers": "Усі індексатори з підтримкою rss тимчасово недоступні через нещодавні помилки індексатора", + "ItsEasyToAddANewArtistJustStartTypingTheNameOfTheArtistYouWantToAdd": "Додати новий фільм дуже легко! Почни друкувати назву фільму, який хочете додати", + "Lowercase": "Малі літери", + "MediaManagement": "Управління медіа", + "NotificationStatusAllClientHealthCheckMessage": "Усі списки недоступні через помилки", + "NotificationStatusSingleClientHealthCheckMessage": "Списки недоступні через помилки: {0}", + "ResetDefinitionTitlesHelpText": "Скинути заголовки визначень, а також значення", + "ResetDefinitions": "Скинути визначення", + "SupportsRssvalueRSSIsNotSupportedWithThisIndexer": "Цей індексатор не підтримує RSS", + "SupportsSearchvalueSearchIsNotSupportedWithThisIndexer": "Пошук не підтримується цим індексатором", + "SystemTimeCheckMessage": "Системний час вимкнено більш ніж на 1 день. Заплановані завдання можуть не працювати належним чином, доки час не буде виправлено", + "AddListExclusionHelpText": "Заборонити додавання фільму до {appName} за списками", + "IndexerSearchCheckNoAvailableIndexersMessage": "Усі індексатори з можливістю пошуку тимчасово недоступні через нещодавні помилки індексатора", + "NegateHelpText": "Якщо позначено, настроюваний формат не застосовуватиметься, якщо ця умова {0} збігається.", + "ClickToChangeReleaseGroup": "Натисніть, щоб змінити групу випуску", + "CouldntFindAnyResultsForTerm": "Не вдалося знайти жодних результатів для '{0}'", + "DownloadClientStatusCheckAllClientMessage": "Усі клієнти завантаження недоступні через збої", + "Monitor": "Контрольований", + "ProxyCheckBadRequestMessage": "Не вдалося перевірити проксі. Код стану: {0}", + "RssSyncIntervalHelpText": "Інтервал у хвилинах. Встановіть нуль, щоб вимкнути (це зупинить автоматичне захоплення звільнення)", + "BlocklistReleaseHelpText": "Забороняє Radarr знову автоматично захопити цей випуск", + "BlocklistReleases": "Релізи з чорного списку", + "BypassIfHighestQuality": "Ігнорувати при максимальній якості", + "ResetTitlesHelpText": "Скинути заголовки визначень, а також значення", + "NoChange": "Без змін", + "PreferredSize": "Бажаний розмір", + "MountCheckMessage": "Монтування, що містить шлях до фільму, монтується лише для читання: ", + "PreferUsenet": "Віддавайте перевагу Usenet", + "ForMoreInformationOnTheIndividualListsClickOnTheInfoButtons": "Щоб отримати додаткову інформацію про окремі списки імпорту, натисніть інформаційні кнопки.", + "DeleteSelectedDownloadClientsMessageText": "Ви впевнені, що хочете видалити тег {0} ?", + "Conditions": "Умови", + "OverviewOptions": "Параметри огляду", + "DeleteConditionMessageText": "Ви впевнені, що хочете видалити тег {0} ?", + "DownloadClientCheckNoneAvailableMessage": "Немає доступного клієнта для завантаження", + "EditDownloadClientImplementation": "Додати клієнт завантаження - {implementationName}", + "EditImportListExclusion": "Видалити виключення зі списку імпорту", + "EditReleaseProfile": "Додати профіль релізу", + "ExtraFileExtensionsHelpText": "Розділений комами список додаткових файлів для імпорту (.nfo буде імпортовано як .nfo-orig)", + "ForMoreInformationOnTheIndividualIndexersClickOnTheInfoButtons": "Щоб отримати додаткову інформацію про окремих індексаторів, натисніть кнопки інформації.", + "HasPendingChangesNoChanges": "Жодних змін", + "HostHelpText": "Той самий хост, який ви вказали для віддаленого клієнта завантаження", + "ICalLink": "Посилання iCal", + "ImportListExclusions": "Видалити виключення зі списку імпорту", + "ImportListRootFolderMultipleMissingRootsHealthCheckMessage": "Кілька кореневих папок відсутні для списків імпорту: {0}", + "IndexerFlags": "Прапори індексатора", + "IsCutoffUpgradeUntilThisQualityIsMetOrExceeded": "Оновлюйте, поки ця якість не буде досягнута або перевищена", + "LidarrTags": "Теги {appName}", + "LogLevelvalueTraceTraceLoggingShouldOnlyBeEnabledTemporarily": "Журнал трасування слід увімкнути лише тимчасово", + "MaximumSizeHelpText": "Максимальний розмір випуску для захоплення в МБ. Встановіть нуль, щоб встановити необмежений", + "MonitorAllAlbums": "Всі Альбоми", + "MonitoredStatus": "Відстежується/Стан", + "MoveAutomatically": "Рухатися автоматично", + "PosterOptions": "Параметри плаката", + "PreferTorrent": "Віддаю перевагу Torrent", + "ProxyCheckFailedToTestMessage": "Не вдалося перевірити проксі: {0}", + "ProxyCheckResolveIpMessage": "Не вдалося визначити IP-адресу для налаштованого проксі-сервера {0}", + "RemotePathMappingCheckFilesBadDockerPath": "Ви використовуєте docker; завантажити клієнтські {0} звітні файли в {1}, але це недійсний {2} шлях. Перегляньте свої віддалені відображення шляхів і завантажте налаштування клієнта.", + "RemotePathMappingCheckFilesLocalWrongOSPath": "Локальний клієнт завантаження {0} повідомив про файли в {1}, але це недійсний шлях {2}. Перегляньте налаштування клієнта завантаження.", + "RemoveSelectedItemsQueueMessageText": "Ви впевнені, що хочете видалити {0} елементів із черги?", + "Required": "Обов'язковий", + "RequiredHelpText": "Реліз має містити принаймні один із цих термінів (незалежно від регістру)", + "RescanArtistFolderAfterRefresh": "Перескануйте папку фільму після оновлення", + "ResetQualityDefinitions": "Скинути визначення якості", + "ResetTitles": "Скинути заголовки", + "SelectReleaseGroup": "Виберіть Release Group", + "SetTags": "Встановити теги", + "ShortDateFormat": "Короткий формат дати", + "ShowRelativeDatesHelpText": "Показати відносні (сьогодні/вчора/тощо) або абсолютні дати", + "SorryThatAlbumCannotBeFound": "Вибачте, цей фільм неможливо знайти.", + "SomeResultsAreHiddenByTheAppliedFilter": "Всі результати приховані фільтром", + "SorryThatArtistCannotBeFound": "Вибачте, цей фільм неможливо знайти.", + "SslCertPasswordHelpTextWarning": "Щоб набуло чинності, потрібно перезапустити", + "StatusEndedContinuing": "Продовження", + "SuccessMyWorkIsDoneNoFilesToRetag": "Успіх! Мою роботу виконано, немає файлів для перейменування.", + "SupportsSearchvalueWillBeUsedWhenAutomaticSearchesArePerformedViaTheUIOrByLidarr": "Використовуватиметься, коли автоматичний пошук виконується через інтерфейс користувача або {appName}", + "Theme": "Тема", + "AddNewArtistRootFolderHelpText": "Вкладена папка \"{0}\" буде створена автоматично", + "EditIndexerImplementation": "Додати умому", + "CopyToClipboard": "Копіювати в буфер обміну", + "AuthBasic": "Основний (спливаюче вікно браузера)", + "DeleteSelectedIndexersMessageText": "Ви впевнені, що хочете видалити тег {0} ?", + "IndexerJackettAll": "Індексатори, які використовують непідтримувану кінцеву точку Jackett 'all': {0}", + "RemoveSelectedItemQueueMessageText": "Ви впевнені, що хочете видалити {0} елементів із черги?", + "RequiredPlaceHolder": "Додайте нове обмеження", + "RescanAfterRefreshHelpText": "Перескануйте папку фільму після оновлення фільму", + "NoEventsFound": "Подій не знайдено", + "RemotePathHelpText": "Кореневий шлях до каталогу, до якого має доступ клієнт завантаження", + "FormatAgeHour": "Години", + "FormatAgeMinutes": "Хвилин", + "IncludeUnknownArtistItemsHelpText": "Показати елементи без фільму в черзі. Це може включати видалені фільми чи будь-що інше в категорії {appName}", + "IsTagUsedCannotBeDeletedWhileInUse": "Неможливо видалити під час використання", + "RemotePathMappingCheckFileRemoved": "Файл {0} видалено під час обробки.", + "RemotePathMappingCheckFolderPermissions": "{appName} може бачити, але не має доступу до каталогу завантажень {path}. Ймовірна помилка дозволів.", + "RestoreBackupAdditionalInfo": "Примітка: {appName} автоматично перезапуститься та перезавантажить інтерфейс під час процесу відновлення.", + "Tomorrow": "Завтра", + "UiLanguageHelpText": "Мова, яку {appName} використовуватиме для інтерфейсу користувача", + "UiSettingsSummary": "Параметри календаря, дати та кольору", + "AllExpandedCollapseAll": "Закрити все", + "CustomFormat": "Користувацький формат", + "DownloadClientCheckDownloadingToRoot": "Клієнт завантаження {0} розміщує завантаження в кореневій папці {1}. Ви не повинні завантажувати в кореневу папку.", + "FailedLoadingSearchResults": "Не вдалося завантажити результати пошуку, спробуйте ще.", + "ExportCustomFormat": "Додати свій формат", + "FailedToLoadQueue": "Не вдалося завантажити чергу", + "ImportLists": "Списки", + "NoResultsFound": "Нічого не знайдено", + "QualityLimitsHelpText": "Обмеження автоматично регулюються для тривалості фільму.", + "EditImportListImplementation": "Додати список імпорту - {implementationName}", + "FailedDownloadHandling": "Помилка обробки завантаження", + "RemoveSelectedItems": "Видалити вибрані елементи", + "DeleteArtistFolderHelpText": "Видалити папку з фільмами та її вміст", + "DeleteArtistFolderCountConfirmation": "Ви впевнені, що хочете видалити {count} вибраних серіалів?", + "DeleteArtistFoldersHelpText": "Видалити папку з фільмами та її вміст", + "DownloadFailed": "Помилка завантаження", + "IndexerStatusCheckAllClientMessage": "Усі індексатори недоступні через збої", + "AutoTaggingNegateHelpText": "Якщо позначено, настроюваний формат не застосовуватиметься, якщо ця умова {0} збігається.", + "IncludeHealthWarnings": "Включайте попередження про здоров’я", + "Overview": "Огляд", + "ShowSearchActionHelpText": "Показувати кнопку пошуку при наведенні", + "UnableToLoadMetadataProfiles": "Неможливо завантажити профілі затримки", + "UnmonitoredOnly": "Тільки під контролем", + "UpdateCheckStartupTranslocationMessage": "Неможливо встановити оновлення, оскільки папка запуску \"{0}\" знаходиться в папці переміщення програми.", + "Albums": "Альбом", + "CustomFormatsSettingsSummary": "Користувацькі формати та налаштування", + "BypassIfHighestQualityHelpText": "Ігнорування затримки, коли випуск має максимальну якість у вибраному профілі якості з бажаним протоколом", + "ArtistIndexFooterDownloading": "Завантаження", + "Library": "бібліотека", + "IndexerSearchCheckNoInteractiveMessage": "Немає доступних індексаторів, коли ввімкнено інтерактивний пошук, {appName} не надаватиме жодних інтерактивних результатів пошуку", + "RecentChanges": "Останні зміни", + "RecycleBinHelpText": "Файли фільмів потраплять сюди після видалення, а не назавжди", + "ImportList": "Список", + "DefaultCase": "Випадок за умовчанням", + "DownloadClientsSettingsSummary": "Клієнти завантаження, обробка завантажень і віддалені відображення шляхів", + "DownloadPropersAndRepacksHelpTexts1": "Автоматичне оновлення до Propers/Repacks чи ні", + "ForMoreInformationOnTheIndividualDownloadClientsClickOnTheInfoButtons": "Щоб отримати додаткові відомості про окремі клієнти для завантаження, натисніть кнопки додаткових відомостей.", + "IndexerStatusCheckSingleClientMessage": "Індексатори недоступні через помилки: {0}", + "RefreshScan": "Оновити та сканувати", + "RemotePathMappingCheckLocalFolderMissing": "Клієнт віддаленого завантаження {0} розміщує завантаження в {1}, але цей каталог не існує. Ймовірно, віддалений шлях відсутній або неправильний.", + "RemotePathMappingCheckLocalWrongOSPath": "Локальний клієнт завантаження {0} розміщує завантаження в {1}, але це недійсний шлях {2}. Перегляньте налаштування клієнта завантаження.", + "RemotePathMappingCheckRemoteDownloadClient": "Клієнт віддаленого завантаження {0} повідомив про файли в {1}, але цей каталог, здається, не існує. Ймовірно, відсутнє відображення віддаленого шляху.", + "Track": "Трасувати", + "IndexerPriorityHelpText": "Пріоритет індексатора від 1 (найвищий) до 50 (найнижчий). За замовчуванням: 25. Використовується під час захоплення випусків як тай-брейку для інших однакових випусків, {appName} все одно використовуватиме всі ввімкнені індексатори для RSS-синхронізації та пошуку", + "UnableToLoadImportListExclusions": "Неможливо завантажити список винятків", + "UnableToLoadReleaseProfiles": "Неможливо завантажити профілі затримки", + "ChooseImportMethod": "Виберіть режим імпорту", + "LaunchBrowserHelpText": " Відкрийте веб-браузер і перейдіть на домашню сторінку {appName} під час запуску програми.", + "LidarrSupportsAnyDownloadClientThatUsesTheNewznabStandardAsWellAsOtherDownloadClientsListedBelow": "{appName} підтримує багато популярних торрент-клієнтів і клієнтів для завантаження через Usenet." } diff --git a/src/NzbDrone.Core/Localization/Core/zh_CN.json b/src/NzbDrone.Core/Localization/Core/zh_CN.json index e78b70b36..c1e018261 100644 --- a/src/NzbDrone.Core/Localization/Core/zh_CN.json +++ b/src/NzbDrone.Core/Localization/Core/zh_CN.json @@ -1266,5 +1266,12 @@ "AutoTaggingSpecificationTag": "标签", "AddAutoTagError": "无法添加新的自动标签,请重试。", "ClickToChangeIndexerFlags": "点击修改索引器标志", - "CustomFormatsSettingsTriggerInfo": "当一个发布版本或文件至少匹配其中一个条件时,自定义格式将会被应用到这个版本或文件上。" + "CustomFormatsSettingsTriggerInfo": "当一个发布版本或文件至少匹配其中一个条件时,自定义格式将会被应用到这个版本或文件上。", + "IndexerPriorityHelpText": "索引器优先级从1(最高)到50(最低),默认25。当资源连接中断时寻找同等资源时使用,否则{appName}将依旧使用已启用的索引器进行RSS同步并搜索", + "IndexerSettingsSeedRatio": "做种比率", + "IndexerSettingsSeedRatioHelpText": "种子在停止之前应达到的比率,留空使用下载客户端的默认值。 比率应至少为 1.0 并遵循索引器规则", + "IndexerSettingsSeedTimeHelpText": "停止前应做种的时间,留空使用下载客户端的默认值", + "InteractiveSearchModalHeader": "手动搜索", + "DownloadClientDelugeSettingsDirectoryCompletedHelpText": "可选的下载位置,留空使用 Aria2 默认位置", + "IndexerSettingsSeedTime": "做种时间" } diff --git a/src/NzbDrone.Core/Localization/Core/zh_TW.json b/src/NzbDrone.Core/Localization/Core/zh_TW.json index b3ca2825f..871828b7c 100644 --- a/src/NzbDrone.Core/Localization/Core/zh_TW.json +++ b/src/NzbDrone.Core/Localization/Core/zh_TW.json @@ -73,5 +73,148 @@ "ApplyTagsHelpTextAdd": "加入:將標籤加入已存在的標籤清單", "ApplyTagsHelpTextHowToApplyImportLists": "如何套用標籤在所選擇的輸入清單", "AgeWhenGrabbed": "年齡(當獲取時)", - "ApplyChanges": "應用" + "ApplyChanges": "應用", + "UnableToAddANewQualityProfilePleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "Password": "密碼", + "PreferredProtocol": "首選通訊協定", + "UnableToLoadRootFolders": "無法加進根目錄", + "UpdateMechanismHelpText": "使用 {appName}內建的更新程式或是腳本文件", + "Username": "使用者名稱", + "Artist": "演員", + "UnableToAddANewIndexerPleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "Updates": "更新", + "Rating": "評分", + "Connection": "連接", + "Tracks": "曲目", + "Connections": "連接", + "Customformat": "自訂格式", + "QualityProfiles": "品質設定檔", + "BypassIfHighestQuality": "如果有最高的質量就跳過", + "DownloadClient": "下載用戶端", + "ApplyTagsHelpTextReplace": "取代:用輸入的標籤替換現有的標籤(如果不輸入任何標籤,則清除所有標籤)", + "EditRemotePathMapping": "加入遠程路徑對應", + "EditRootFolder": "加入根目錄資料夾", + "ExportCustomFormat": "新增自定義格式", + "ICalLink": "iCal 連結", + "RootFolders": "根目錄資料夾", + "TBA": "待確定", + "UnableToAddANewNotificationPleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "Info": "資訊", + "Albums": "專輯", + "ApplyTagsHelpTextHowToApplyArtists": "如何套用標籤在所選擇的輸入清單", + "ApplyTagsHelpTextRemove": "移除:刪除輸入的標籤", + "EditDownloadClientImplementation": "新增下載用戶端 - {implementationName}", + "EditIndexerImplementation": "新增索引 - {implementationName}", + "Episode": "集", + "Posters": "海報", + "Seeders": "種子", + "UnableToAddANewDownloadClientPleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "UnableToAddANewListPleaseTryAgain": "無法加入新的自動標籤,請重新嘗試。", + "ImportList": "導入列表", + "Metadata": "中繼資料", + "URLBase": "URL Base", + "UnableToAddANewImportListExclusionPleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "Artists": "演員", + "BackupFolderHelpText": "相對路徑將位於{appName}的AppData目錄下", + "Release": " 發布", + "Queue": "佇列", + "Remove": "移除", + "Theme": "主題", + "Track": "曲目", + "ImportListExclusions": "新增匯入排除清單", + "ImportLists": "導入列表", + "Label": "標籤", + "Library": "資源庫", + "Queued": "佇列", + "UnableToAddANewRootFolderPleaseTryAgain": "無法加入新的自動標籤,請重新嘗試。", + "Settings": "設定", + "Connect": "連接", + "Deleted": "刪除", + "Details": "詳情", + "Disabled": "無法使用", + "Enabled": "啟用", + "QualityProfile": "品質設定檔", + "Reload": "重新載入", + "Indexer": "索引器", + "Language": "語言", + "DeleteImportListExclusion": "新增排除清單", + "DeleteRemotePathMapping": "加入遠程路徑對應", + "BypassIfHighestQualityHelpText": "當發行版本具有在品質設定檔中啟用的最高品質以及首選通訊協定時繞過延遲", + "Torrents": "Torrents", + "AnalyticsEnabledHelpText": "將使用和錯誤資訊匿名傳送至{appName}的伺服器。這些資訊包括您的瀏覽器資訊、使用的{appName} WebUI頁面、錯誤報告,以及作業系統和執行時版本。我們將使用這些資訊來優先處理功能和錯誤修復。", + "Grab": "抓取", + "MetadataProfile": "中繼資料配置", + "ApplyTagsHelpTextHowToApplyIndexers": "如何套用標籤在所選擇的輸入清單", + "EditImportListExclusion": "新增排除清單", + "CustomFormat": "自訂格式", + "Protocol": "通訊協定", + "Docker": "Docker", + "New": "新的", + "RecyclingBin": "垃圾桶", + "Cancel": "取消", + "MetadataProfiles": "中繼資料配置", + "Replace": "替換", + "LocalPath": "本機路徑", + "ReleaseProfiles": "發布配置", + "Hostname": "Hostname", + "Indexers": "索引器", + "RemotePathMappings": "遠程路徑對應", + "Enable": "啟用", + "Ui": "UI", + "UsingExternalUpdateMechanismBranchUsedByExternalUpdateMechanism": "外部更新機制使用的分支", + "Title": "標題", + "IsCutoffCutoff": "中斷", + "AutoTaggingSpecificationTag": "標籤", + "ExpandAlbumByDefaultHelpText": "專輯", + "Formats": "格式", + "ICalFeed": "iCal Feed", + "Required": "需要", + "Search": "搜尋", + "SomeResultsAreHiddenByTheAppliedFilter": "根據所使用的篩選器已將所有結果隱藏", + "UnableToAddANewMetadataProfilePleaseTryAgain": "無法加入新的條件,請重新嘗試。", + "UsingExternalUpdateMechanismBranchToUseToUpdateLidarr": "用於更新{appName}的分支", + "AddMetadataProfile": "中繼資料配置", + "Album": "專輯", + "EditConditionImplementation": "新增連接 - {implementationName}", + "EditConnectionImplementation": "新增連接 - {implementationName}", + "EditImportListImplementation": "新增匯入清單 - {implementationName}", + "AuthBasic": "基礎(瀏覽器彈出視窗)", + "AuthForm": "表單(登入頁面)", + "AuthenticationMethodHelpText": "需要使用者名稱和密碼來存取{appName}", + "Discography": "音樂唱片分類", + "Filters": "篩選器", + "Refresh": "重新整理", + "ReleaseProfile": "發布配置", + "RootFolder": "根目錄資料夾", + "Scheduled": "已排程", + "Season": "季", + "ShowQualityProfile": "加入品質設定檔", + "AddListExclusionHelpText": "防止清單中的電影被添加到 {appName} 中", + "AllResultsAreHiddenByTheAppliedFilter": "根據所使用的篩選器已將所有結果隱藏", + "Peers": "用戶", + "Port": "端口", + "Custom": "自訂", + "DelayProfile": "延遲配置", + "DelayProfiles": "延遲配置", + "DownloadClients": "下載用戶端", + "Files": "文件", + "History": "歷史紀錄", + "Host": "主機", + "Events": "事件", + "Auto": "自動", + "Delete": "刪除", + "Usenet": "Usenet", + "AddToDownloadQueue": "已添加到下載隊列", + "AddedToDownloadQueue": "已添加到下載隊列", + "AlternateTitles": "其他標題", + "AlternateTitleslength1Title": "標題", + "AlternateTitleslength1Titles": "標題", + "BeforeUpdate": "在更新前", + "Calendar": "日曆", + "Clear": "清空", + "Reset": "重置", + "AutomaticSearch": "自動搜尋", + "CatalogNumber": "類別編號", + "CustomFormats": "自訂格式", + "ItsEasyToAddANewArtistJustStartTypingTheNameOfTheArtistYouWantToAdd": "加入新的電影很簡單,只需要輸入您想加入的電影名稱" } From ceca76d7c078291adbcabe43d48b96f35c227be0 Mon Sep 17 00:00:00 2001 From: Servarr Date: Tue, 11 Jun 2024 05:05:46 +0000 Subject: [PATCH 011/333] Automated API Docs update --- src/Lidarr.Api.V1/openapi.json | 595 ++++++++++++++------------------- 1 file changed, 252 insertions(+), 343 deletions(-) diff --git a/src/Lidarr.Api.V1/openapi.json b/src/Lidarr.Api.V1/openapi.json index 9586dab9e..67f10c69f 100644 --- a/src/Lidarr.Api.V1/openapi.json +++ b/src/Lidarr.Api.V1/openapi.json @@ -70,7 +70,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -125,7 +125,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -183,7 +183,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -237,7 +237,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -258,7 +258,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -306,7 +306,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -327,7 +327,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -348,7 +348,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -360,7 +360,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -383,7 +383,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -437,7 +437,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -491,7 +491,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -513,7 +513,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -542,7 +542,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -590,7 +590,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -619,7 +619,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -640,7 +640,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -692,7 +692,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -702,7 +702,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -714,7 +714,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -737,7 +737,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -783,7 +783,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -821,7 +821,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -842,7 +842,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -869,7 +869,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -891,7 +891,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -903,7 +903,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -952,7 +952,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -975,7 +975,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -987,7 +987,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1033,7 +1033,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1063,7 +1063,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1094,7 +1094,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1148,7 +1148,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1181,7 +1181,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1246,7 +1246,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1269,7 +1269,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1307,7 +1307,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1328,7 +1328,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1345,7 +1345,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1378,7 +1378,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1424,7 +1424,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1462,7 +1462,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1474,7 +1474,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1503,7 +1503,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1543,7 +1543,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1589,7 +1589,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1627,7 +1627,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1648,7 +1648,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1675,7 +1675,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1697,7 +1697,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -1759,7 +1759,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -1789,7 +1789,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1837,7 +1837,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1864,7 +1864,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1913,7 +1913,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -1952,7 +1952,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -1990,7 +1990,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2038,7 +2038,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2050,7 +2050,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2083,7 +2083,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2137,7 +2137,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2165,7 +2165,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2177,7 +2177,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2216,7 +2216,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2244,7 +2244,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2270,7 +2270,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2282,7 +2282,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2323,7 +2323,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2335,7 +2335,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2366,7 +2366,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2389,7 +2389,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2435,7 +2435,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2464,7 +2464,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2508,7 +2508,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2529,7 +2529,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2550,7 +2550,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2562,7 +2562,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2687,7 +2687,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2747,7 +2747,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2818,7 +2818,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -2851,7 +2851,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -2874,7 +2874,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2930,7 +2930,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2959,7 +2959,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -2999,7 +2999,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3053,7 +3053,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3081,7 +3081,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3093,7 +3093,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3132,7 +3132,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3160,7 +3160,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3186,7 +3186,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3198,7 +3198,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3239,7 +3239,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3251,7 +3251,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3282,7 +3282,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3305,7 +3305,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3361,7 +3361,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3399,7 +3399,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3411,7 +3411,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3466,7 +3466,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3506,7 +3506,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3560,7 +3560,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3588,7 +3588,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3600,7 +3600,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3639,7 +3639,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3667,7 +3667,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3693,7 +3693,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3705,7 +3705,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3746,7 +3746,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3758,7 +3758,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3789,7 +3789,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -3812,7 +3812,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3858,7 +3858,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3887,7 +3887,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -3906,7 +3906,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3955,7 +3955,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -3984,7 +3984,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4022,7 +4022,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4082,7 +4082,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4101,7 +4101,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4134,7 +4134,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4174,7 +4174,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -4224,7 +4224,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4282,7 +4282,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4314,7 +4314,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4337,7 +4337,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4383,7 +4383,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4412,7 +4412,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4442,7 +4442,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4496,7 +4496,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4524,7 +4524,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4536,7 +4536,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4575,7 +4575,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4594,7 +4594,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -4635,7 +4635,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4647,7 +4647,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4678,7 +4678,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -4709,7 +4709,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4736,7 +4736,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4785,7 +4785,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -4824,7 +4824,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4862,7 +4862,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4891,7 +4891,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4931,7 +4931,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -4977,7 +4977,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5006,7 +5006,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5075,7 +5075,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5105,7 +5105,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5145,7 +5145,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5201,7 +5201,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5230,7 +5230,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5361,7 +5361,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5384,7 +5384,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5438,7 +5438,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5466,7 +5466,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5478,7 +5478,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5517,7 +5517,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5536,7 +5536,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5577,7 +5577,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5589,7 +5589,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5620,7 +5620,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5641,7 +5641,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5660,7 +5660,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5677,7 +5677,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -5725,7 +5725,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5763,7 +5763,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5792,7 +5792,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5858,7 +5858,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -5889,7 +5889,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5916,7 +5916,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -5965,7 +5965,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -6004,7 +6004,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6042,7 +6042,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6071,7 +6071,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6143,7 +6143,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -6208,7 +6208,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -6304,7 +6304,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -6334,7 +6334,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -6355,7 +6355,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -6404,7 +6404,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -6426,7 +6426,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -6464,7 +6464,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6509,7 +6509,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6558,7 +6558,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6614,7 +6614,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6652,7 +6652,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -6664,7 +6664,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6719,7 +6719,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6757,7 +6757,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6797,7 +6797,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6835,7 +6835,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } }, @@ -6874,7 +6874,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6912,7 +6912,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -6939,7 +6939,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -6979,7 +6979,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7035,7 +7035,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7084,7 +7084,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7140,7 +7140,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7178,7 +7178,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7199,7 +7199,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7226,7 +7226,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -7257,7 +7257,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7280,7 +7280,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7302,7 +7302,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7325,7 +7325,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7337,7 +7337,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -7356,7 +7356,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7368,7 +7368,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7380,7 +7380,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7392,7 +7392,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7415,7 +7415,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7461,7 +7461,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7499,7 +7499,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7511,7 +7511,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -7540,7 +7540,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7580,7 +7580,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7609,7 +7609,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -7631,7 +7631,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7680,7 +7680,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7746,7 +7746,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7795,7 +7795,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7835,7 +7835,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7891,7 +7891,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -7929,7 +7929,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -7980,7 +7980,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -8037,7 +8037,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -8068,7 +8068,7 @@ }, "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -8099,7 +8099,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -8137,7 +8137,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "text/plain": { "schema": { @@ -8166,7 +8166,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -8185,7 +8185,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -8207,7 +8207,7 @@ ], "responses": { "200": { - "description": "Success", + "description": "OK", "content": { "application/json": { "schema": { @@ -8240,7 +8240,7 @@ ], "responses": { "200": { - "description": "Success" + "description": "OK" } } } @@ -8472,9 +8472,6 @@ "remoteCover": { "type": "string", "nullable": true - }, - "grabbed": { - "type": "boolean" } }, "additionalProperties": false @@ -9215,7 +9212,9 @@ "nullable": true }, "duration": { - "$ref": "#/components/schemas/TimeSpan" + "type": "string", + "format": "date-span", + "nullable": true }, "exception": { "type": "string", @@ -10165,7 +10164,8 @@ "format": "int32" }, "minRefreshInterval": { - "$ref": "#/components/schemas/TimeSpan" + "type": "string", + "format": "date-span" } }, "additionalProperties": false @@ -11385,7 +11385,8 @@ "nullable": true }, "duration": { - "$ref": "#/components/schemas/TimeSpan" + "type": "string", + "format": "date-span" }, "quality": { "$ref": "#/components/schemas/QualityModel" @@ -11748,7 +11749,9 @@ "format": "double" }, "timeleft": { - "$ref": "#/components/schemas/TimeSpan" + "type": "string", + "format": "date-span", + "nullable": true }, "estimatedCompletionTime": { "type": "string", @@ -12449,7 +12452,8 @@ "$ref": "#/components/schemas/DatabaseType" }, "databaseVersion": { - "$ref": "#/components/schemas/Version" + "type": "string", + "nullable": true }, "authentication": { "$ref": "#/components/schemas/AuthenticationType" @@ -12463,7 +12467,8 @@ "nullable": true }, "runtimeVersion": { - "$ref": "#/components/schemas/Version" + "type": "string", + "nullable": true }, "runtimeName": { "type": "string", @@ -12633,66 +12638,8 @@ "format": "date-time" }, "lastDuration": { - "$ref": "#/components/schemas/TimeSpan" - } - }, - "additionalProperties": false - }, - "TimeSpan": { - "type": "object", - "properties": { - "ticks": { - "type": "integer", - "format": "int64" - }, - "days": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "hours": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "milliseconds": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minutes": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "seconds": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "totalDays": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalHours": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalMilliseconds": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalMinutes": { - "type": "number", - "format": "double", - "readOnly": true - }, - "totalSeconds": { - "type": "number", - "format": "double", + "type": "string", + "format": "date-span", "readOnly": true } }, @@ -12854,9 +12801,6 @@ }, "ratings": { "$ref": "#/components/schemas/Ratings" - }, - "grabbed": { - "type": "boolean" } }, "additionalProperties": false @@ -12996,7 +12940,8 @@ "format": "int32" }, "version": { - "$ref": "#/components/schemas/Version" + "type": "string", + "nullable": true }, "branch": { "type": "string", @@ -13038,42 +12983,6 @@ }, "additionalProperties": false }, - "Version": { - "type": "object", - "properties": { - "major": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minor": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "build": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "revision": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "majorRevision": { - "type": "integer", - "format": "int32", - "readOnly": true - }, - "minorRevision": { - "type": "integer", - "format": "int32", - "readOnly": true - } - }, - "additionalProperties": false - }, "WriteAudioTagsType": { "enum": [ "no", From 959f6be019c05d65ff272c2c65f854eeef5d4001 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 14 May 2024 00:48:01 +0300 Subject: [PATCH 012/333] Ignore `Grabbed` with STJson (cherry picked from commit cc5b5463f225604a29820e026a43d7dc33f0ffa5) Closes #4824 --- src/Lidarr.Api.V1/Albums/AlbumResource.cs | 4 ++-- src/Lidarr.Api.V1/Tracks/TrackResource.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Lidarr.Api.V1/Albums/AlbumResource.cs b/src/Lidarr.Api.V1/Albums/AlbumResource.cs index 7a3d2a561..072fb2d27 100644 --- a/src/Lidarr.Api.V1/Albums/AlbumResource.cs +++ b/src/Lidarr.Api.V1/Albums/AlbumResource.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.Json.Serialization; using Lidarr.Api.V1.Artist; using Lidarr.Http.REST; -using Newtonsoft.Json; using NzbDrone.Core.MediaCover; using NzbDrone.Core.Music; using Swashbuckle.AspNetCore.Annotations; @@ -49,7 +49,7 @@ namespace Lidarr.Api.V1.Albums public string RemoteCover { get; set; } // Hiding this so people don't think its usable (only used to set the initial state) - [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)] [SwaggerIgnore] public bool Grabbed { get; set; } } diff --git a/src/Lidarr.Api.V1/Tracks/TrackResource.cs b/src/Lidarr.Api.V1/Tracks/TrackResource.cs index 6e66e7922..4c82d0471 100644 --- a/src/Lidarr.Api.V1/Tracks/TrackResource.cs +++ b/src/Lidarr.Api.V1/Tracks/TrackResource.cs @@ -1,9 +1,9 @@ using System.Collections.Generic; using System.Linq; +using System.Text.Json.Serialization; using Lidarr.Api.V1.Artist; using Lidarr.Api.V1.TrackFiles; using Lidarr.Http.REST; -using Newtonsoft.Json; using NzbDrone.Core.Music; using Swashbuckle.AspNetCore.Annotations; @@ -29,7 +29,7 @@ namespace Lidarr.Api.V1.Tracks public Ratings Ratings { get; set; } // Hiding this so people don't think its usable (only used to set the initial state) - [JsonProperty(DefaultValueHandling = DefaultValueHandling.Ignore)] + [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)] [SwaggerIgnore] public bool Grabbed { get; set; } } From e8ab1f842b1168ba7605357a58bfb3fd82e5470f Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 23 Jun 2024 21:52:39 +0300 Subject: [PATCH 013/333] Bump version to 2.4.1 --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 973c6d14b..c2b0be96e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,7 +9,7 @@ variables: testsFolder: './_tests' yarnCacheFolder: $(Pipeline.Workspace)/.yarn nugetCacheFolder: $(Pipeline.Workspace)/.nuget/packages - majorVersion: '2.4.0' + majorVersion: '2.4.1' minorVersion: $[counter('minorVersion', 1076)] lidarrVersion: '$(majorVersion).$(minorVersion)' buildName: '$(Build.SourceBranchName).$(lidarrVersion)' From d602f38b7d1fc7e09f4d74a8fd245928f8e0e811 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Tue, 25 Jun 2024 15:52:12 -0700 Subject: [PATCH 014/333] New: Ignore Deluge torrents without a title (cherry picked from commit a0d29331341320268552660658b949179c963793) --- .../Download/Clients/Deluge/Deluge.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs index 9cbf3c4ca..faaff7112 100644 --- a/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs +++ b/src/NzbDrone.Core/Download/Clients/Deluge/Deluge.cs @@ -122,14 +122,23 @@ namespace NzbDrone.Core.Download.Clients.Deluge } var items = new List(); + var ignoredCount = 0; foreach (var torrent in torrents) { - if (torrent.Hash == null) + // Silently ignore torrents with no hash + if (torrent.Hash.IsNullOrWhiteSpace()) { continue; } + // Ignore torrents without a name, but track to log a single warning for all invalid torrents. + if (torrent.Name.IsNullOrWhiteSpace()) + { + ignoredCount++; + continue; + } + var item = new DownloadClientItem(); item.DownloadId = torrent.Hash.ToUpper(); item.Title = torrent.Name; @@ -187,6 +196,11 @@ namespace NzbDrone.Core.Download.Clients.Deluge items.Add(item); } + if (ignoredCount > 0) + { + _logger.Warn("{0} torrent(s) were ignored becuase they did not have a title, check Deluge and remove any invalid torrents"); + } + return items; } From 47b5bbc9e1e7867d747b7449ba8f7b6091daaaa4 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Thu, 20 Jun 2024 00:16:53 +0300 Subject: [PATCH 015/333] Fixed: Exclude invalid releases from Newznab and Torznab parsers (cherry picked from commit fb060730c7d52cd342484dc68595698a9430df7b) --- .../Indexers/Newznab/NewznabRssParser.cs | 9 +++-- src/NzbDrone.Core/Indexers/RssParser.cs | 38 +++++++++---------- .../Indexers/Torznab/TorznabRssParser.cs | 9 +++-- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs index e94ac6bf7..a56badf6c 100644 --- a/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Newznab/NewznabRssParser.cs @@ -68,16 +68,17 @@ namespace NzbDrone.Core.Indexers.Newznab protected override bool PostProcess(IndexerResponse indexerResponse, List items, List releases) { var enclosureTypes = items.SelectMany(GetEnclosures).Select(v => v.Type).Distinct().ToArray(); + if (enclosureTypes.Any() && enclosureTypes.Intersect(PreferredEnclosureMimeTypes).Empty()) { if (enclosureTypes.Intersect(TorrentEnclosureMimeTypes).Any()) { _logger.Warn("{0} does not contain {1}, found {2}, did you intend to add a Torznab indexer?", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]); + + return false; } - else - { - _logger.Warn("{1} does not contain {1}, found {2}.", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]); - } + + _logger.Warn("{0} does not contain {1}, found {2}.", indexerResponse.Request.Url, NzbEnclosureMimeType, enclosureTypes[0]); } return true; diff --git a/src/NzbDrone.Core/Indexers/RssParser.cs b/src/NzbDrone.Core/Indexers/RssParser.cs index 01758ed84..fe638c61e 100644 --- a/src/NzbDrone.Core/Indexers/RssParser.cs +++ b/src/NzbDrone.Core/Indexers/RssParser.cs @@ -262,26 +262,26 @@ namespace NzbDrone.Core.Indexers protected virtual RssEnclosure[] GetEnclosures(XElement item) { var enclosures = item.Elements("enclosure") - .Select(v => - { - try - { - return new RssEnclosure - { - Url = v.Attribute("url")?.Value, - Type = v.Attribute("type")?.Value, - Length = v.Attribute("length")?.Value?.ParseInt64() ?? 0 - }; - } - catch (Exception e) - { - _logger.Warn(e, "Failed to get enclosure for: {0}", item.Title()); - } + .Select(v => + { + try + { + return new RssEnclosure + { + Url = v.Attribute("url")?.Value, + Type = v.Attribute("type")?.Value, + Length = v.Attribute("length")?.Value?.ParseInt64() ?? 0 + }; + } + catch (Exception ex) + { + _logger.Warn(ex, "Failed to get enclosure for: {0}", item.Title()); + } - return null; - }) - .Where(v => v != null) - .ToArray(); + return null; + }) + .Where(v => v != null) + .ToArray(); return enclosures; } diff --git a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs index f4d210a84..3b85a427e 100644 --- a/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs +++ b/src/NzbDrone.Core/Indexers/Torznab/TorznabRssParser.cs @@ -59,16 +59,17 @@ namespace NzbDrone.Core.Indexers.Torznab protected override bool PostProcess(IndexerResponse indexerResponse, List items, List releases) { var enclosureTypes = items.SelectMany(GetEnclosures).Select(v => v.Type).Distinct().ToArray(); + if (enclosureTypes.Any() && enclosureTypes.Intersect(PreferredEnclosureMimeTypes).Empty()) { if (enclosureTypes.Intersect(UsenetEnclosureMimeTypes).Any()) { _logger.Warn("{0} does not contain {1}, found {2}, did you intend to add a Newznab indexer?", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]); + + return false; } - else - { - _logger.Warn("{1} does not contain {1}, found {2}.", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]); - } + + _logger.Warn("{0} does not contain {1}, found {2}.", indexerResponse.Request.Url, TorrentEnclosureMimeType, enclosureTypes[0]); } return true; From 838e49ba232e6535cb56acbd4fcff69dd20e1bc6 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Wed, 26 Jun 2024 23:50:50 +0300 Subject: [PATCH 016/333] Bump mac image to 12 --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c2b0be96e..f17e5374a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,7 +20,7 @@ variables: innoVersion: '6.2.0' windowsImage: 'windows-2022' linuxImage: 'ubuntu-20.04' - macImage: 'macOS-11' + macImage: 'macOS-12' trigger: branches: From e31f2ad2536fd0ab868a9a22f3bf0c2c0b8a37f4 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 30 Jun 2024 05:35:37 +0300 Subject: [PATCH 017/333] Fixed: Validate metadata and quality profiles for root folders Don't allow `0` as possible value for metadata and quality profiles, and permit to edit root folders with bad values in UI. --- .../ImportLists/Manage/ManageImportListsModalRow.tsx | 5 +++-- .../src/Settings/MediaManagement/RootFolder/RootFolder.js | 8 ++++---- src/Lidarr.Api.V1/RootFolders/RootFolderController.cs | 6 ++++-- .../Validation/QualityProfileExistsValidator.cs | 8 ++++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx index 410e626e2..095ac7c03 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx @@ -7,6 +7,7 @@ import TableRow from 'Components/Table/TableRow'; import TagListConnector from 'Components/TagListConnector'; import { createQualityProfileSelectorForHook } from 'Store/Selectors/createQualityProfileSelector'; import { SelectStateInputProps } from 'typings/props'; +import translate from 'Utilities/String/translate'; import styles from './ManageImportListsModalRow.css'; interface ManageImportListsModalRowProps { @@ -63,7 +64,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) { - {qualityProfile?.name ?? 'None'} + {qualityProfile?.name ?? translate('None')} @@ -71,7 +72,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) { - {enableAutomaticAdd ? 'Yes' : 'No'} + {enableAutomaticAdd ? translate('Yes') : translate('No')} diff --git a/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js b/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js index 20cefc53f..47e5dfcf1 100644 --- a/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js +++ b/frontend/src/Settings/MediaManagement/RootFolder/RootFolder.js @@ -75,12 +75,12 @@ class RootFolder extends Component { {path} - ); diff --git a/frontend/src/Artist/Details/ArtistDetailsSeason.js b/frontend/src/Artist/Details/ArtistDetailsSeason.js index 37c85aa66..004613e30 100644 --- a/frontend/src/Artist/Details/ArtistDetailsSeason.js +++ b/frontend/src/Artist/Details/ArtistDetailsSeason.js @@ -22,32 +22,43 @@ import styles from './ArtistDetailsSeason.css'; function getAlbumStatistics(albums) { let albumCount = 0; + let albumFileCount = 0; let trackFileCount = 0; let totalAlbumCount = 0; let monitoredAlbumCount = 0; let hasMonitoredAlbums = false; let sizeOnDisk = 0; - albums.forEach((album) => { - if (album.statistics) { - sizeOnDisk = sizeOnDisk + album.statistics.sizeOnDisk; - trackFileCount = trackFileCount + album.statistics.trackFileCount; + albums.forEach(({ monitored, releaseDate, statistics = {} }) => { + const { + trackFileCount: albumTrackFileCount = 0, + totalTrackCount: albumTotalTrackCount = 0, + sizeOnDisk: albumSizeOnDisk = 0 + } = statistics; - if (album.statistics.trackFileCount === album.statistics.totalTrackCount || (album.monitored && isBefore(album.airDateUtc))) { - albumCount++; - } + const hasFiles = albumTrackFileCount > 0 && albumTrackFileCount === albumTotalTrackCount; + + if (hasFiles || (monitored && isBefore(releaseDate))) { + albumCount++; } - if (album.monitored) { + if (hasFiles) { + albumFileCount++; + } + + if (monitored) { monitoredAlbumCount++; hasMonitoredAlbums = true; } totalAlbumCount++; + trackFileCount = trackFileCount + albumTrackFileCount; + sizeOnDisk = sizeOnDisk + albumSizeOnDisk; }); return { albumCount, + albumFileCount, totalAlbumCount, trackFileCount, monitoredAlbumCount, @@ -56,8 +67,8 @@ function getAlbumStatistics(albums) { }; } -function getAlbumCountKind(monitored, albumCount, monitoredAlbumCount) { - if (albumCount === monitoredAlbumCount && monitoredAlbumCount > 0) { +function getAlbumCountKind(monitored, albumCount, albumFileCount) { + if (albumCount === albumFileCount && albumFileCount > 0) { return kinds.SUCCESS; } @@ -192,6 +203,7 @@ class ArtistDetailsSeason extends Component { const { albumCount, + albumFileCount, totalAlbumCount, trackFileCount, monitoredAlbumCount, @@ -226,9 +238,9 @@ class ArtistDetailsSeason extends Component { anchor={ } title={translate('GroupInformation')} @@ -237,6 +249,7 @@ class ArtistDetailsSeason extends Component { diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index d279bfadd..642d99a2a 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -1294,6 +1294,7 @@ "WatchRootFoldersForFileChanges": "Watch Root Folders for file changes", "WeekColumnHeader": "Week Column Header", "WhatsNew": "What's New?", + "WithFiles": "With Files", "WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?", "WriteAudioTagsHelpTextWarning": "Selecting 'All files' will alter existing files when they are imported.", "WriteMetadataTags": "Write Metadata Tags", From a52c6f6f41bff9b76a34085aca01a1a709bdf62d Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 14 Jul 2024 19:28:28 +0300 Subject: [PATCH 029/333] Fixed: Display last/next monitored albums for artists --- frontend/src/Album/Album.ts | 1 + frontend/src/Album/AlbumTitleLink.js | 5 +++-- frontend/src/Artist/Artist.ts | 1 - .../Store/Selectors/createArtistAlbumsSelector.ts | 2 +- src/Lidarr.Api.V1/Artist/ArtistResource.cs | 6 ++++-- src/Lidarr.Api.V1/openapi.json | 4 ---- .../AlbumRepositoryTests/AlbumRepositoryFixture.cs | 4 ++-- .../Music/Repositories/AlbumRepository.cs | 12 ++++++------ 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/frontend/src/Album/Album.ts b/frontend/src/Album/Album.ts index c9f10a87c..7a645efee 100644 --- a/frontend/src/Album/Album.ts +++ b/frontend/src/Album/Album.ts @@ -10,6 +10,7 @@ export interface Statistics { } interface Album extends ModelBase { + artistId: number; artist: Artist; foreignAlbumId: string; title: string; diff --git a/frontend/src/Album/AlbumTitleLink.js b/frontend/src/Album/AlbumTitleLink.js index 8b4dfe212..e55fadfc0 100644 --- a/frontend/src/Album/AlbumTitleLink.js +++ b/frontend/src/Album/AlbumTitleLink.js @@ -4,10 +4,11 @@ import Link from 'Components/Link/Link'; function AlbumTitleLink({ foreignAlbumId, title, disambiguation }) { const link = `/album/${foreignAlbumId}`; + const albumTitle = `${title}${disambiguation ? ` (${disambiguation})` : ''}`; return ( - - {title}{disambiguation ? ` (${disambiguation})` : ''} + + {albumTitle} ); } diff --git a/frontend/src/Artist/Artist.ts b/frontend/src/Artist/Artist.ts index d89e32f34..813dbea08 100644 --- a/frontend/src/Artist/Artist.ts +++ b/frontend/src/Artist/Artist.ts @@ -23,7 +23,6 @@ export interface Ratings { interface Artist extends ModelBase { added: string; - artistMetadataId: string; foreignArtistId: string; cleanName: string; ended: boolean; diff --git a/frontend/src/Store/Selectors/createArtistAlbumsSelector.ts b/frontend/src/Store/Selectors/createArtistAlbumsSelector.ts index 2ae54a10c..baffd87ec 100644 --- a/frontend/src/Store/Selectors/createArtistAlbumsSelector.ts +++ b/frontend/src/Store/Selectors/createArtistAlbumsSelector.ts @@ -11,7 +11,7 @@ function createArtistAlbumsSelector(artistId: number) { const { isFetching, isPopulated, error, items } = albums; const filteredAlbums = items.filter( - (album) => album.artist.artistMetadataId === artist.artistMetadataId + (album) => album.artistId === artist.id ); return { diff --git a/src/Lidarr.Api.V1/Artist/ArtistResource.cs b/src/Lidarr.Api.V1/Artist/ArtistResource.cs index 288208fcf..a71791ba0 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistResource.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistResource.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text.Json.Serialization; using Lidarr.Api.V1.Albums; using Lidarr.Http.REST; -using Newtonsoft.Json; using NzbDrone.Common.Extensions; using NzbDrone.Core.MediaCover; using NzbDrone.Core.Music; @@ -32,7 +32,10 @@ namespace Lidarr.Api.V1.Artist public string Disambiguation { get; set; } public List Links { get; set; } + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public AlbumResource NextAlbum { get; set; } + + [JsonIgnore(Condition = JsonIgnoreCondition.Never)] public AlbumResource LastAlbum { get; set; } public List Images { get; set; } @@ -74,7 +77,6 @@ namespace Lidarr.Api.V1.Artist return new ArtistResource { Id = model.Id, - ArtistMetadataId = model.ArtistMetadataId, ArtistName = model.Name, diff --git a/src/Lidarr.Api.V1/openapi.json b/src/Lidarr.Api.V1/openapi.json index d3d5e381c..b48424105 100644 --- a/src/Lidarr.Api.V1/openapi.json +++ b/src/Lidarr.Api.V1/openapi.json @@ -8670,10 +8670,6 @@ "type": "integer", "format": "int32" }, - "artistMetadataId": { - "type": "integer", - "format": "int32" - }, "status": { "$ref": "#/components/schemas/ArtistStatusType" }, diff --git a/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs index 5d57b2755..4d762c5a0 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AlbumRepositoryTests/AlbumRepositoryFixture.cs @@ -193,7 +193,7 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests GivenMultipleAlbums(); var result = _albumRepo.GetNextAlbums(new[] { _artist.ArtistMetadataId }); - result.Should().BeEquivalentTo(_albums.Take(1), AlbumComparerOptions); + result.Should().BeEquivalentTo(_albums.Skip(1).Take(1), AlbumComparerOptions); } [Test] @@ -202,7 +202,7 @@ namespace NzbDrone.Core.Test.MusicTests.AlbumRepositoryTests GivenMultipleAlbums(); var result = _albumRepo.GetLastAlbums(new[] { _artist.ArtistMetadataId }); - result.Should().BeEquivalentTo(_albums.Skip(2).Take(1), AlbumComparerOptions); + result.Should().BeEquivalentTo(_albums.Skip(3).Take(1), AlbumComparerOptions); } private EquivalencyAssertionOptions AlbumComparerOptions(EquivalencyAssertionOptions opts) => opts.ComparingByMembers() diff --git a/src/NzbDrone.Core/Music/Repositories/AlbumRepository.cs b/src/NzbDrone.Core/Music/Repositories/AlbumRepository.cs index 9d8602f2c..3c69cf42b 100644 --- a/src/NzbDrone.Core/Music/Repositories/AlbumRepository.cs +++ b/src/NzbDrone.Core/Music/Repositories/AlbumRepository.cs @@ -46,13 +46,13 @@ namespace NzbDrone.Core.Music var now = DateTime.UtcNow; var inner = Builder() - .Select("MIN(\"Albums\".\"Id\") as id, MAX(\"Albums\".\"ReleaseDate\") as date") - .Where(x => artistMetadataIds.Contains(x.ArtistMetadataId) && x.ReleaseDate < now) + .Select("\"Albums\".\"ArtistMetadataId\" AS artist_metadata_id, MAX(\"Albums\".\"ReleaseDate\") AS date") + .Where(x => artistMetadataIds.Contains(x.ArtistMetadataId) && x.Monitored == true && x.ReleaseDate < now) .GroupBy(x => x.ArtistMetadataId) .AddSelectTemplate(typeof(Album)); var outer = Builder() - .Join($"({inner.RawSql}) ids on ids.id = \"Albums\".\"Id\" and ids.date = \"Albums\".\"ReleaseDate\"") + .Join($"({inner.RawSql}) ids ON ids.artist_metadata_id = \"Albums\".\"ArtistMetadataId\" AND ids.date = \"Albums\".\"ReleaseDate\"") .AddParameters(inner.Parameters); return Query(outer); @@ -63,13 +63,13 @@ namespace NzbDrone.Core.Music var now = DateTime.UtcNow; var inner = Builder() - .Select("MIN(\"Albums\".\"Id\") as id, MIN(\"Albums\".\"ReleaseDate\") as date") - .Where(x => artistMetadataIds.Contains(x.ArtistMetadataId) && x.ReleaseDate > now) + .Select("\"Albums\".\"ArtistMetadataId\" AS artist_metadata_id, MIN(\"Albums\".\"ReleaseDate\") AS date") + .Where(x => artistMetadataIds.Contains(x.ArtistMetadataId) && x.Monitored == true && x.ReleaseDate > now) .GroupBy(x => x.ArtistMetadataId) .AddSelectTemplate(typeof(Album)); var outer = Builder() - .Join($"({inner.RawSql}) ids on ids.id = \"Albums\".\"Id\" and ids.date = \"Albums\".\"ReleaseDate\"") + .Join($"({inner.RawSql}) ids ON ids.artist_metadata_id = \"Albums\".\"ArtistMetadataId\" AND ids.date = \"Albums\".\"ReleaseDate\"") .AddParameters(inner.Parameters); return Query(outer); From 56679861a01232a5881a81d0a7593c452452b04f Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 14 Jul 2024 21:48:23 +0300 Subject: [PATCH 030/333] Mapping `ArtistMetadataId` is needed for last/next monitored albums --- src/Lidarr.Api.V1/Artist/ArtistController.cs | 6 ++++-- src/Lidarr.Api.V1/Artist/ArtistResource.cs | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Lidarr.Api.V1/Artist/ArtistController.cs b/src/Lidarr.Api.V1/Artist/ArtistController.cs index 24d7855e1..e5829ff96 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistController.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistController.cs @@ -204,8 +204,10 @@ namespace Lidarr.Api.V1.Artist private void LinkNextPreviousAlbums(params ArtistResource[] artists) { - var nextAlbums = _albumService.GetNextAlbumsByArtistMetadataId(artists.Select(x => x.ArtistMetadataId)); - var lastAlbums = _albumService.GetLastAlbumsByArtistMetadataId(artists.Select(x => x.ArtistMetadataId)); + var artistMetadataIds = artists.Select(x => x.ArtistMetadataId).Distinct().ToList(); + + var nextAlbums = _albumService.GetNextAlbumsByArtistMetadataId(artistMetadataIds); + var lastAlbums = _albumService.GetLastAlbumsByArtistMetadataId(artistMetadataIds); foreach (var artistResource in artists) { diff --git a/src/Lidarr.Api.V1/Artist/ArtistResource.cs b/src/Lidarr.Api.V1/Artist/ArtistResource.cs index a71791ba0..73fbe4240 100644 --- a/src/Lidarr.Api.V1/Artist/ArtistResource.cs +++ b/src/Lidarr.Api.V1/Artist/ArtistResource.cs @@ -77,6 +77,7 @@ namespace Lidarr.Api.V1.Artist return new ArtistResource { Id = model.Id, + ArtistMetadataId = model.ArtistMetadataId, ArtistName = model.Name, From 633feaa02342b646277557610e78133c7eb1aeaf Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sun, 14 Jul 2024 23:19:20 +0300 Subject: [PATCH 031/333] Fixed disable options for SelectInput --- frontend/src/Components/Form/MonitorAlbumsSelectInput.js | 2 +- frontend/src/Components/Form/SelectInput.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/Components/Form/MonitorAlbumsSelectInput.js b/frontend/src/Components/Form/MonitorAlbumsSelectInput.js index f3cefd29e..d48284c38 100644 --- a/frontend/src/Components/Form/MonitorAlbumsSelectInput.js +++ b/frontend/src/Components/Form/MonitorAlbumsSelectInput.js @@ -25,7 +25,7 @@ function MonitorAlbumsSelectInput(props) { if (includeMixed) { values.unshift({ key: 'mixed', - value: '(Mixed)', + value: `(${translate('Mixed')})`, isDisabled: true }); } diff --git a/frontend/src/Components/Form/SelectInput.js b/frontend/src/Components/Form/SelectInput.js index 553501afc..d43560134 100644 --- a/frontend/src/Components/Form/SelectInput.js +++ b/frontend/src/Components/Form/SelectInput.js @@ -52,6 +52,7 @@ class SelectInput extends Component { const { key, value: optionValue, + isDisabled: optionIsDisabled = false, ...otherOptionProps } = option; @@ -59,6 +60,7 @@ class SelectInput extends Component {