diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs index cc4dd431c..efb3d43a8 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/DownloadClientRootFolderCheckFixture.cs @@ -6,6 +6,7 @@ using NzbDrone.Common.Disk; using NzbDrone.Core.Download; using NzbDrone.Core.Download.Clients; using NzbDrone.Core.HealthCheck.Checks; +using NzbDrone.Core.Localization; using NzbDrone.Core.RootFolders; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common; @@ -43,6 +44,10 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks _downloadClient.Setup(s => s.GetStatus()) .Returns(_clientStatus); + Mocker.GetMock() + .Setup(s => s.GetLocalizedString(It.IsAny())) + .Returns("Some Warning Message"); + Mocker.GetMock() .Setup(s => s.GetDownloadClients()) .Returns(new IDownloadClient[] { _downloadClient.Object }); diff --git a/src/NzbDrone.Core/HealthCheck/Checks/AppDataLocationCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/AppDataLocationCheck.cs index 56b7fd35a..705ca4e82 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/AppDataLocationCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/AppDataLocationCheck.cs @@ -1,5 +1,6 @@ using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Extensions; +using NzbDrone.Core.Localization; namespace NzbDrone.Core.HealthCheck.Checks { @@ -7,7 +8,8 @@ namespace NzbDrone.Core.HealthCheck.Checks { private readonly IAppFolderInfo _appFolderInfo; - public AppDataLocationCheck(IAppFolderInfo appFolderInfo) + public AppDataLocationCheck(IAppFolderInfo appFolderInfo, ILocalizationService localizationService) + : base(localizationService) { _appFolderInfo = appFolderInfo; } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/CalibreRootFolderCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/CalibreRootFolderCheck.cs index 98bd262be..0d2774cb0 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/CalibreRootFolderCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/CalibreRootFolderCheck.cs @@ -8,6 +8,7 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Books.Calibre; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Download.Clients; +using NzbDrone.Core.Localization; using NzbDrone.Core.RemotePathMappings; using NzbDrone.Core.RootFolders; @@ -27,7 +28,9 @@ namespace NzbDrone.Core.HealthCheck.Checks IRootFolderService rootFolderService, ICalibreProxy calibreProxy, IOsInfo osInfo, - Logger logger) + Logger logger, + ILocalizationService localizationService) + : base(localizationService) { _diskProvider = diskProvider; _rootFolderService = rootFolderService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientCheck.cs index c47407d93..22ebf4531 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientCheck.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using NLog; using NzbDrone.Core.Download; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -15,7 +16,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IProvideDownloadClient _downloadClientProvider; private readonly Logger _logger; - public DownloadClientCheck(IProvideDownloadClient downloadClientProvider, Logger logger) + public DownloadClientCheck(IProvideDownloadClient downloadClientProvider, Logger logger, ILocalizationService localizationService) + : base(localizationService) { _downloadClientProvider = downloadClientProvider; _logger = logger; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs index 2b1e3cda9..3a10dbbce 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientRootFolderCheck.cs @@ -5,6 +5,7 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Download; using NzbDrone.Core.Download.Clients; +using NzbDrone.Core.Localization; using NzbDrone.Core.RemotePathMappings; using NzbDrone.Core.RootFolders; using NzbDrone.Core.ThingiProvider.Events; @@ -25,7 +26,9 @@ namespace NzbDrone.Core.HealthCheck.Checks public DownloadClientRootFolderCheck(IProvideDownloadClient downloadClientProvider, IRootFolderService rootFolderService, - Logger logger) + Logger logger, + ILocalizationService localizationService) + : base(localizationService) { _downloadClientProvider = downloadClientProvider; _rootFolderService = rootFolderService; @@ -47,7 +50,7 @@ namespace NzbDrone.Core.HealthCheck.Checks { if (rootFolders.Any(r => r.Path.PathEquals(folder.FullPath))) { - return new HealthCheck(GetType(), HealthCheckResult.Warning, $"Download client {client.Definition.Name} places downloads in the root folder {folder.FullPath}. You should not download to a root folder.", "#downloads_in_root_folder"); + return new HealthCheck(GetType(), HealthCheckResult.Warning, string.Format(_localizationService.GetLocalizedString("DownloadClientCheckDownloadingToRoot"), client.Definition.Name, folder.FullPath), "#downloads_in_root_folder"); } } } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientStatusCheck.cs index d51afc417..37b3a1aab 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientStatusCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/DownloadClientStatusCheck.cs @@ -1,6 +1,7 @@ using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Core.Download; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -13,7 +14,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IDownloadClientFactory _providerFactory; private readonly IDownloadClientStatusService _providerStatusService; - public DownloadClientStatusCheck(IDownloadClientFactory providerFactory, IDownloadClientStatusService providerStatusService) + public DownloadClientStatusCheck(IDownloadClientFactory providerFactory, IDownloadClientStatusService providerStatusService, ILocalizationService localizationService) + : base(localizationService) { _providerFactory = providerFactory; _providerStatusService = providerStatusService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/FpcalcCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/FpcalcCheck.cs index b8d94ca39..22e420fd8 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/FpcalcCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/FpcalcCheck.cs @@ -1,6 +1,7 @@ using System; using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration.Events; +using NzbDrone.Core.Localization; using NzbDrone.Core.Parser; namespace NzbDrone.Core.HealthCheck.Checks @@ -12,7 +13,9 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IConfigService _configService; public FpcalcCheck(IFingerprintingService fingerprintingService, - IConfigService configService) + IConfigService configService, + ILocalizationService localizationService) + : base(localizationService) { _fingerprintingService = fingerprintingService; _configService = configService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/ImportListStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/ImportListStatusCheck.cs index 0cd0d2888..f76f678bc 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/ImportListStatusCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/ImportListStatusCheck.cs @@ -1,6 +1,7 @@ using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Core.ImportLists; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -13,7 +14,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IImportListFactory _providerFactory; private readonly IImportListStatusService _providerStatusService; - public ImportListStatusCheck(IImportListFactory providerFactory, IImportListStatusService providerStatusService) + public ImportListStatusCheck(IImportListFactory providerFactory, IImportListStatusService providerStatusService, ILocalizationService localizationService) + : base(localizationService) { _providerFactory = providerFactory; _providerStatusService = providerStatusService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/ImportMechanismCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/ImportMechanismCheck.cs index b201cf7c4..2ce2ebb9d 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/ImportMechanismCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/ImportMechanismCheck.cs @@ -1,6 +1,7 @@ using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration.Events; using NzbDrone.Core.Download; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -12,7 +13,8 @@ namespace NzbDrone.Core.HealthCheck.Checks { private readonly IConfigService _configService; - public ImportMechanismCheck(IConfigService configService) + public ImportMechanismCheck(IConfigService configService, ILocalizationService localizationService) + : base(localizationService) { _configService = configService; } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs index 7539a6ffd..3f5d44419 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerLongTermStatusCheck.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -14,7 +15,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IIndexerFactory _providerFactory; private readonly IIndexerStatusService _providerStatusService; - public IndexerLongTermStatusCheck(IIndexerFactory providerFactory, IIndexerStatusService providerStatusService) + public IndexerLongTermStatusCheck(IIndexerFactory providerFactory, IIndexerStatusService providerStatusService, ILocalizationService localizationService) + : base(localizationService) { _providerFactory = providerFactory; _providerStatusService = providerStatusService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerRssCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerRssCheck.cs index 03dbb88f3..60fca9798 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerRssCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerRssCheck.cs @@ -1,5 +1,6 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -12,7 +13,8 @@ namespace NzbDrone.Core.HealthCheck.Checks { private readonly IIndexerFactory _indexerFactory; - public IndexerRssCheck(IIndexerFactory indexerFactory) + public IndexerRssCheck(IIndexerFactory indexerFactory, ILocalizationService localizationService) + : base(localizationService) { _indexerFactory = indexerFactory; } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerSearchCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerSearchCheck.cs index b7b5a4e64..466e8bf59 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerSearchCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerSearchCheck.cs @@ -1,5 +1,6 @@ using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -12,7 +13,8 @@ namespace NzbDrone.Core.HealthCheck.Checks { private readonly IIndexerFactory _indexerFactory; - public IndexerSearchCheck(IIndexerFactory indexerFactory) + public IndexerSearchCheck(IIndexerFactory indexerFactory, ILocalizationService localizationService) + : base(localizationService) { _indexerFactory = indexerFactory; } diff --git a/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs index 64504e687..6e15bc982 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/IndexerStatusCheck.cs @@ -2,6 +2,7 @@ using System; using System.Linq; using NzbDrone.Common.Extensions; using NzbDrone.Core.Indexers; +using NzbDrone.Core.Localization; using NzbDrone.Core.ThingiProvider.Events; namespace NzbDrone.Core.HealthCheck.Checks @@ -14,7 +15,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IIndexerFactory _providerFactory; private readonly IIndexerStatusService _providerStatusService; - public IndexerStatusCheck(IIndexerFactory providerFactory, IIndexerStatusService providerStatusService) + public IndexerStatusCheck(IIndexerFactory providerFactory, IIndexerStatusService providerStatusService, ILocalizationService localizationService) + : base(localizationService) { _providerFactory = providerFactory; _providerStatusService = providerStatusService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/MountCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/MountCheck.cs index 10017564f..3b5cbaf74 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/MountCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/MountCheck.cs @@ -2,6 +2,7 @@ using System.Linq; using NzbDrone.Common.Disk; using NzbDrone.Common.Extensions; using NzbDrone.Core.Books; +using NzbDrone.Core.Localization; namespace NzbDrone.Core.HealthCheck.Checks { @@ -10,7 +11,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IDiskProvider _diskProvider; private readonly IAuthorService _authorService; - public MountCheck(IDiskProvider diskProvider, IAuthorService authorService) + public MountCheck(IDiskProvider diskProvider, IAuthorService authorService, ILocalizationService localizationService) + : base(localizationService) { _diskProvider = diskProvider; _authorService = authorService; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/ProxyCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/ProxyCheck.cs index ca9e3fd5a..0a0d98b7e 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/ProxyCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/ProxyCheck.cs @@ -6,6 +6,7 @@ using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration.Events; +using NzbDrone.Core.Localization; namespace NzbDrone.Core.HealthCheck.Checks { @@ -18,7 +19,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IHttpRequestBuilderFactory _cloudRequestBuilder; - public ProxyCheck(IReadarrCloudRequestBuilder cloudRequestBuilder, IConfigService configService, IHttpClient client, Logger logger) + public ProxyCheck(IReadarrCloudRequestBuilder cloudRequestBuilder, IConfigService configService, IHttpClient client, Logger logger, ILocalizationService localizationService) + : base(localizationService) { _configService = configService; _client = client; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs index 9b82560dd..af5563ed8 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/RemotePathMappingCheck.cs @@ -9,6 +9,7 @@ using NzbDrone.Core.Configuration; using NzbDrone.Core.Datastore.Events; using NzbDrone.Core.Download; using NzbDrone.Core.Download.Clients; +using NzbDrone.Core.Localization; using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.RemotePathMappings; using NzbDrone.Core.ThingiProvider.Events; @@ -33,7 +34,9 @@ namespace NzbDrone.Core.HealthCheck.Checks IProvideDownloadClient downloadClientProvider, IConfigService configService, IOsInfo osInfo, - Logger logger) + Logger logger, + ILocalizationService localizationService) + : base(localizationService) { _diskProvider = diskProvider; _downloadClientProvider = downloadClientProvider; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs index 7ea90b178..8a4795a0c 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/RootFolderCheck.cs @@ -3,6 +3,7 @@ using NzbDrone.Common.Disk; using NzbDrone.Core.Books; using NzbDrone.Core.Books.Events; using NzbDrone.Core.ImportLists; +using NzbDrone.Core.Localization; using NzbDrone.Core.MediaFiles.Events; using NzbDrone.Core.RootFolders; @@ -19,7 +20,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IDiskProvider _diskProvider; private readonly IRootFolderService _rootFolderService; - public RootFolderCheck(IAuthorService authorService, IImportListFactory importListFactory, IDiskProvider diskProvider, IRootFolderService rootFolderService) + public RootFolderCheck(IAuthorService authorService, IImportListFactory importListFactory, IDiskProvider diskProvider, IRootFolderService rootFolderService, ILocalizationService localizationService) + : base(localizationService) { _authorService = authorService; _importListFactory = importListFactory; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/SystemTimeCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/SystemTimeCheck.cs index 63000274e..f2021e7c2 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/SystemTimeCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/SystemTimeCheck.cs @@ -3,6 +3,7 @@ using NLog; using NzbDrone.Common.Cloud; using NzbDrone.Common.Http; using NzbDrone.Common.Serializer; +using NzbDrone.Core.Localization; namespace NzbDrone.Core.HealthCheck.Checks { @@ -12,7 +13,8 @@ namespace NzbDrone.Core.HealthCheck.Checks private readonly IHttpRequestBuilderFactory _cloudRequestBuilder; private readonly Logger _logger; - public SystemTimeCheck(IHttpClient client, IReadarrCloudRequestBuilder cloudRequestBuilder, Logger logger) + public SystemTimeCheck(IHttpClient client, IReadarrCloudRequestBuilder cloudRequestBuilder, Logger logger, ILocalizationService localizationService) + : base(localizationService) { _client = client; _cloudRequestBuilder = cloudRequestBuilder.Services; diff --git a/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs b/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs index da6800bea..692452c59 100644 --- a/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs +++ b/src/NzbDrone.Core/HealthCheck/Checks/UpdateCheck.cs @@ -5,6 +5,7 @@ using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Extensions; using NzbDrone.Core.Configuration; using NzbDrone.Core.Configuration.Events; +using NzbDrone.Core.Localization; using NzbDrone.Core.Update; namespace NzbDrone.Core.HealthCheck.Checks @@ -22,7 +23,9 @@ namespace NzbDrone.Core.HealthCheck.Checks IAppFolderInfo appFolderInfo, ICheckUpdateService checkUpdateService, IConfigFileProvider configFileProvider, - IOsInfo osInfo) + IOsInfo osInfo, + ILocalizationService localizationService) + : base(localizationService) { _diskProvider = diskProvider; _appFolderInfo = appFolderInfo; diff --git a/src/NzbDrone.Core/HealthCheck/HealthCheckBase.cs b/src/NzbDrone.Core/HealthCheck/HealthCheckBase.cs index d9c715ca9..24a90037e 100644 --- a/src/NzbDrone.Core/HealthCheck/HealthCheckBase.cs +++ b/src/NzbDrone.Core/HealthCheck/HealthCheckBase.cs @@ -1,7 +1,15 @@ +using NzbDrone.Core.Localization; + namespace NzbDrone.Core.HealthCheck { public abstract class HealthCheckBase : IProvideHealthCheck { + public readonly ILocalizationService _localizationService; + public HealthCheckBase(ILocalizationService localizationService) + { + _localizationService = localizationService; + } + public abstract HealthCheck Check(); public virtual bool CheckOnStartup => true; diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index 1f3029113..1d68fd762 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -176,6 +176,7 @@ "DiskSpace": "Disk Space", "Docker": "Docker", "DownloadClient": "Download Client", + "DownloadClientCheckDownloadingToRoot": "Download client {0} places downloads in the root folder {1}. You should not download to a root folder.", "DownloadClientSettings": "Download Client Settings", "DownloadClients": "Download Clients", "DownloadFailedCheckDownloadClientForMoreDetails": "Download failed: check download client for more details",