diff --git a/frontend/src/Activity/Blocklist/Blocklist.js b/frontend/src/Activity/Blocklist/Blocklist.js index 39150b1fb..b2af5a035 100644 --- a/frontend/src/Activity/Blocklist/Blocklist.js +++ b/frontend/src/Activity/Blocklist/Blocklist.js @@ -158,7 +158,7 @@ class Blocklist extends Component { { !isFetching && !!error && - {translate('UnableToLoadBlocklist')} + {translate('BlocklistLoadError')} } @@ -210,7 +210,7 @@ class Blocklist extends Component { isOpen={isConfirmRemoveModalOpen} kind={kinds.DANGER} title={translate('RemoveSelected')} - message={translate('RemoveSelectedItemBlocklistMessageText')} + message={translate('RemoveSelectedBlocklistMessageText')} confirmLabel={translate('RemoveSelected')} onConfirm={this.onRemoveSelectedConfirmed} onCancel={this.onConfirmRemoveModalClose} diff --git a/frontend/src/Activity/History/Details/HistoryDetails.js b/frontend/src/Activity/History/Details/HistoryDetails.js index a582d856a..b3ae7cb2c 100644 --- a/frontend/src/Activity/History/Details/HistoryDetails.js +++ b/frontend/src/Activity/History/Details/HistoryDetails.js @@ -88,7 +88,7 @@ function HistoryDetails(props) { nzbInfoUrl ? - Info URL + {translate('InfoUrl')} @@ -110,7 +110,7 @@ function HistoryDetails(props) { { downloadId ? : null @@ -153,7 +153,7 @@ function HistoryDetails(props) { { downloadId ? : null @@ -228,13 +228,13 @@ function HistoryDetails(props) { switch (reason) { case 'Manual': - reasonMessage = translate('FileWasDeletedByViaUI'); + reasonMessage = translate('DeletedReasonManual'); break; case 'MissingFromDisk': - reasonMessage = translate('MissingFromDisk'); + reasonMessage = translate('DeletedReasonMissingFromDisk'); break; case 'Upgrade': - reasonMessage = translate('FileWasDeletedByUpgrade'); + reasonMessage = translate('DeletedReasonUpgrade'); break; default: reasonMessage = ''; @@ -313,7 +313,7 @@ function HistoryDetails(props) { { downloadId ? : null diff --git a/frontend/src/Activity/History/Details/HistoryDetailsModal.js b/frontend/src/Activity/History/Details/HistoryDetailsModal.js index 56147ec98..19fda4907 100644 --- a/frontend/src/Activity/History/Details/HistoryDetailsModal.js +++ b/frontend/src/Activity/History/Details/HistoryDetailsModal.js @@ -15,19 +15,19 @@ import styles from './HistoryDetailsModal.css'; function getHeaderTitle(eventType) { switch (eventType) { case 'grabbed': - return 'Grabbed'; + return translate('Grabbed'); case 'downloadFailed': - return 'Download Failed'; + return translate('DownloadFailed'); case 'downloadFolderImported': - return 'Movie Imported'; + return translate('MovieImported'); case 'movieFileDeleted': - return 'Movie File Deleted'; + return translate('MovieFileDeleted'); case 'movieFileRenamed': - return 'Movie File Renamed'; + return translate('MovieFileRenamed'); case 'downloadIgnored': - return 'Download Ignored'; + return translate('DownloadIgnored'); default: - return 'Unknown'; + return translate('Unknown'); } } diff --git a/frontend/src/Activity/History/History.js b/frontend/src/Activity/History/History.js index b8309ba2a..3afa2a740 100644 --- a/frontend/src/Activity/History/History.js +++ b/frontend/src/Activity/History/History.js @@ -85,7 +85,7 @@ class History extends Component { { !isFetchingAny && hasError && - {translate('UnableToLoadHistory')} + {translate('HistoryLoadError')} } @@ -95,7 +95,7 @@ class History extends Component { isPopulated && !hasError && !items.length && - {translate('NoHistory')} + {translate('NoHistoryFound')} } diff --git a/frontend/src/Activity/History/HistoryEventTypeCell.js b/frontend/src/Activity/History/HistoryEventTypeCell.js index c2dfc2885..d2427c0da 100644 --- a/frontend/src/Activity/History/HistoryEventTypeCell.js +++ b/frontend/src/Activity/History/HistoryEventTypeCell.js @@ -3,6 +3,7 @@ import React from 'react'; import Icon from 'Components/Icon'; import TableRowCell from 'Components/Table/Cells/TableRowCell'; import { icons, kinds } from 'Helpers/Props'; +import translate from 'Utilities/String/translate'; import styles from './HistoryEventTypeCell.css'; function getIconName(eventType) { @@ -38,21 +39,21 @@ function getIconKind(eventType) { function getTooltip(eventType, data) { switch (eventType) { case 'grabbed': - return `Movie grabbed from ${data.indexer} and sent to ${data.downloadClient}`; + return translate('MovieGrabbedHistoryTooltip', { indexer: data.indexer, downloadClient: data.downloadClient }); case 'movieFolderImported': - return 'Movie imported from movie folder'; + return translate('MovieFolderImportedTooltip'); case 'downloadFolderImported': - return 'Movie downloaded successfully and picked up from download client'; + return translate('MovieImportedTooltip'); case 'downloadFailed': - return 'Movie download failed'; + return translate('MovieDownloadFailedTooltip'); case 'movieFileDeleted': - return 'Movie file deleted'; + return translate('MovieFileDeletedTooltip'); case 'movieFileRenamed': - return 'Movie file renamed'; + return translate('MovieFileRenamedTooltip'); case 'downloadIgnored': - return 'Movie Download Ignored'; + return translate('MovieDownloadIgnoredTooltip'); default: - return 'Unknown event'; + return translate('UnknownEventTooltip'); } } diff --git a/frontend/src/Activity/Queue/Queue.js b/frontend/src/Activity/Queue/Queue.js index 54cff620e..33de69644 100644 --- a/frontend/src/Activity/Queue/Queue.js +++ b/frontend/src/Activity/Queue/Queue.js @@ -233,7 +233,7 @@ class Queue extends Component { { !isRefreshing && hasError ? - {translate('FailedToLoadQueue')} + {translate('QueueLoadError')} : null } diff --git a/frontend/src/Activity/Queue/QueueOptions.js b/frontend/src/Activity/Queue/QueueOptions.js index 27b6e2273..63a1fc422 100644 --- a/frontend/src/Activity/Queue/QueueOptions.js +++ b/frontend/src/Activity/Queue/QueueOptions.js @@ -61,7 +61,7 @@ class QueueOptions extends Component { type={inputTypes.CHECK} name="includeUnknownMovieItems" value={includeUnknownMovieItems} - helpText={translate('IncludeUnknownMovieItemsHelpText')} + helpText={translate('ShownUnknownMovieItemsHelpText')} onChange={this.onOptionChange} /> diff --git a/frontend/src/Activity/Queue/RemoveQueueItemModal.js b/frontend/src/Activity/Queue/RemoveQueueItemModal.js index 153e496c5..d79ef665c 100644 --- a/frontend/src/Activity/Queue/RemoveQueueItemModal.js +++ b/frontend/src/Activity/Queue/RemoveQueueItemModal.js @@ -115,11 +115,12 @@ class RemoveQueueItemModal extends Component { {translate('BlocklistRelease')} + @@ -149,7 +150,7 @@ class RemoveQueueItemModal extends Component { kind={kinds.DANGER} onPress={this.onRemoveConfirmed} > - Remove + {translate('Remove')} diff --git a/frontend/src/Activity/Queue/RemoveQueueItemsModal.js b/frontend/src/Activity/Queue/RemoveQueueItemsModal.js index 72ae4c718..754ec77be 100644 --- a/frontend/src/Activity/Queue/RemoveQueueItemsModal.js +++ b/frontend/src/Activity/Queue/RemoveQueueItemsModal.js @@ -123,7 +123,7 @@ class RemoveQueueItemsModal extends Component { type={inputTypes.CHECK} name="blocklist" value={blocklist} - helpText={translate('BlocklistHelpText')} + helpText={translate('BlocklistReleaseHelpText')} onChange={this.onBlocklistChange} /> diff --git a/frontend/src/Activity/Queue/TimeleftCell.js b/frontend/src/Activity/Queue/TimeleftCell.js index f2aa1390a..5677af2ee 100644 --- a/frontend/src/Activity/Queue/TimeleftCell.js +++ b/frontend/src/Activity/Queue/TimeleftCell.js @@ -27,7 +27,7 @@ function TimeleftCell(props) { return ( - @@ -41,7 +41,7 @@ function TimeleftCell(props) { return ( - diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index ba74e49d4..e3bb7a778 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -108,8 +108,9 @@ "BindAddress": "Bind Address", "BindAddressHelpText": "Valid IP address, localhost or '*' for all interfaces", "Blocklist": "Blocklist", - "BlocklistHelpText": "Prevents Radarr from automatically grabbing this release again", + "BlocklistLoadError": "Unable to load blocklist", "BlocklistRelease": "Blocklist Release", + "BlocklistReleaseHelpText": "Prevents Radarr from automatically grabbing this release again", "BlocklistReleases": "Blocklist Releases", "Blocklisted": "Blocklisted", "Branch": "Branch", @@ -227,7 +228,7 @@ "DefaultNameCopiedSpecification": "{name} - Copy", "DelayProfile": "Delay Profile", "DelayProfiles": "Delay Profiles", - "DelayingDownloadUntilInterp": "Delaying download until {0} at {1}", + "DelayingDownloadUntil": "Delaying download until {date} at {time}", "Delete": "Delete", "DeleteAutoTag": "Delete Auto Tag", "DeleteAutoTagHelpText": "Are you sure you want to delete the auto tag '{name}'?", @@ -281,6 +282,9 @@ "DeleteTheMovieFolder": "The movie folder '{path}' and all its content will be deleted.", "Deleted": "Deleted", "DeletedMsg": "Movie was deleted from TMDb", + "DeletedReasonManual": "File was deleted by via UI", + "DeletedReasonMissingFromDisk": "Radarr was unable to find the file on disk so the file was unlinked from the movie in the database", + "DeletedReasonUpgrade": "File was deleted to import an upgrade", "DestinationPath": "Destination Path", "DestinationRelativePath": "Destination Relative Path", "DetailedProgressBar": "Detailed Progress Bar", @@ -314,6 +318,7 @@ "DownloadClientsLoadError": "Unable to load download clients", "DownloadClientsSettingsSummary": "Download clients, download handling and remote path mappings", "DownloadFailed": "Download failed", + "DownloadIgnored": "Download Ignored", "DownloadPropersAndRepacks": "Propers and Repacks", "DownloadPropersAndRepacksHelpText1": "Whether or not to automatically upgrade to Propers/Repacks", "DownloadPropersAndRepacksHelpText2": "Use 'Do not Prefer' to sort by custom format score over Propers/Repacks", @@ -390,7 +395,6 @@ "FailedDownloadHandling": "Failed Download Handling", "FailedLoadingSearchResults": "Failed to load search results, please try again.", "FailedToLoadMovieFromAPI": "Failed to load movie from API", - "FailedToLoadQueue": "Failed to load Queue", "False": "False", "FeatureRequests": "Feature Requests", "File": "File", @@ -398,8 +402,6 @@ "FileManagement": "File Management", "FileNameTokens": "File Name Tokens", "FileNames": "File Names", - "FileWasDeletedByUpgrade": "File was deleted to import an upgrade", - "FileWasDeletedByViaUI": "File was deleted via the UI", "Filename": "Filename", "Files": "Files", "Filter": "Filter", @@ -428,7 +430,7 @@ "Global": "Global", "GoToInterp": "Go to {0}", "Grab": "Grab", - "GrabID": "Grab ID", + "GrabId": "Grab ID", "GrabRelease": "Grab Release", "GrabReleaseMessageText": "Radarr was unable to determine which movie this release was for. Radarr may be unable to automatically import this release. Do you want to grab '{0}'?", "GrabSelected": "Grab Selected", @@ -442,6 +444,7 @@ "HiddenClickToShow": "Hidden, click to show", "HideAdvanced": "Hide Advanced", "History": "History", + "HistoryLoadError": "Unable to load history", "HomePage": "Home Page", "Host": "Host", "Hostname": "Hostname", @@ -494,7 +497,6 @@ "IncludeHealthWarningsHelpText": "Include Health Warnings", "IncludeRadarrRecommendations": "Include Radarr Recommendations", "IncludeRecommendationsHelpText": "Include Radarr recommended movies in discovery view", - "IncludeUnknownMovieItemsHelpText": "Show items without a movie in the queue. This could include removed movies or anything else in Radarr's category", "IncludeUnmonitored": "Include Unmonitored", "Indexer": "Indexer", "IndexerDownloadClientHealthCheckMessage": "Indexers with invalid download clients: {0}.", @@ -517,6 +519,7 @@ "Indexers": "Indexers", "IndexersSettingsSummary": "Indexers and release restrictions", "Info": "Info", + "InfoUrl": "Info URL", "InstallLatest": "Install Latest", "InstanceName": "Instance Name", "InstanceNameHelpText": "Instance name in tab and for Syslog app name", @@ -623,7 +626,6 @@ "MinutesNinety": "90 Minutes: {0}", "MinutesSixty": "60 Minutes: {0}", "Missing": "Missing", - "MissingFromDisk": "Radarr was unable to find the file on disk so the file was unlinked from the movie in the database", "MissingMonitoredAndConsideredAvailable": "Missing (Monitored)", "MissingNotMonitored": "Missing (Unmonitored)", "Mode": "Mode", @@ -656,12 +658,22 @@ "MovieCollectionMultipleMissingRoots": "Multiple root folders are missing for movie collections: {0}", "MovieDetailsNextMovie": "Movie Details: Next Movie", "MovieDetailsPreviousMovie": "Movie Details: Previous Movie", + "MovieDownloadFailedTooltip": "Movie download failed", + "MovieDownloadIgnoredTooltip": "Movie Download Ignored", "MovieEditor": "Movie Editor", "MovieExcludedFromAutomaticAdd": "Movie Excluded From Automatic Add", + "MovieFileDeleted": "Movie File Deleted", + "MovieFileDeletedTooltip": "Movie file deleted", + "MovieFileRenamed": "Movie File Renamed", + "MovieFileRenamedTooltip": "Movie file renamed", "MovieFiles": "Movie Files", "MovieFilesTotaling": "Movie Files Totaling", "MovieFolderFormat": "Movie Folder Format", + "MovieFolderImportedTooltip": "Movie imported from movie folder", + "MovieGrabbedHistoryTooltip": "Movie grabbed from {indexer} and sent to {downloadClient}", "MovieID": "Movie ID", + "MovieImported": "Movie Imported", + "MovieImportedTooltip": "Movie downloaded successfully and picked up from download client", "MovieIndex": "Movie Index", "MovieIndexScrollBottom": "Movie Index: Scroll Bottom", "MovieIndexScrollTop": "Movie Index: Scroll Top", @@ -705,6 +717,7 @@ "NoEventsFound": "No events found", "NoHistory": "No history", "NoHistoryBlocklist": "No history blocklist", + "NoHistoryFound": "No history found", "NoImportListsFound": "No import lists found", "NoIndexersFound": "No indexers found", "NoLeaveIt": "No, Leave It", @@ -850,6 +863,7 @@ "QualitySettingsSummary": "Quality sizes and naming", "Queue": "Queue", "QueueIsEmpty": "Queue is empty", + "QueueLoadError": "Failed to load Queue", "Queued": "Queued", "QuickImport": "Move Automatically", "RSS": "RSS", @@ -941,8 +955,8 @@ "RemoveQueueItemConfirmation": "Are you sure you want to remove '{sourceTitle}' from the queue?", "RemoveRootFolder": "Remove root folder", "RemoveSelected": "Remove Selected", + "RemoveSelectedBlocklistMessageText": "Are you sure you want to remove the selected items from the blocklist?", "RemoveSelectedItem": "Remove Selected Item", - "RemoveSelectedItemBlocklistMessageText": "Are you sure you want to remove the selected items from the blocklist?", "RemoveSelectedItemQueueMessageText": "Are you sure you want to remove 1 item from the queue?", "RemoveSelectedItems": "Remove Selected Items", "RemoveSelectedItemsQueueMessageText": "Are you sure you want to remove {selectedCount} items from the queue?", @@ -989,7 +1003,7 @@ "Result": "Result", "Retention": "Retention", "RetentionHelpText": "Usenet only: Set to zero to set for unlimited retention", - "RetryingDownloadInterp": "Retrying download {0} at {1}", + "RetryingDownloadOn": "Retrying download on {date} at {time}", "RootFolder": "Root Folder", "RootFolderCheckMultipleMessage": "Multiple root folders are missing: {0}", "RootFolderCheckSingleMessage": "Missing root folder: {0}", @@ -1102,6 +1116,7 @@ "ShowUnknownMovieItems": "Show Unknown Movie Items", "ShowYear": "Show Year", "ShownClickToHide": "Shown, click to hide", + "ShownUnknownMovieItemsHelpText": "Show items without a movie in the queue. This could include removed movies or anything else in Radarr's category", "Shutdown": "Shutdown", "Size": "Size", "SizeLimit": "Size Limit", @@ -1208,13 +1223,11 @@ "UnableToLoadAltTitle": "Unable to load alternative titles.", "UnableToLoadAutoTagging": "Unable to load auto tagging", "UnableToLoadBackups": "Unable to load backups", - "UnableToLoadBlocklist": "Unable to load blocklist", "UnableToLoadCollections": "Unable to load collections", "UnableToLoadCustomFormats": "Unable to load Custom Formats", "UnableToLoadDelayProfiles": "Unable to load Delay Profiles", "UnableToLoadDownloadClientOptions": "Unable to load download client options", "UnableToLoadGeneralSettings": "Unable to load General settings", - "UnableToLoadHistory": "Unable to load history", "UnableToLoadIndexerOptions": "Unable to load indexer options", "UnableToLoadIndexers": "Unable to load Indexers", "UnableToLoadListExclusions": "Unable to load List Exclusions", @@ -1237,6 +1250,8 @@ "UnableToUpdateRadarrDirectly": "Unable to update Radarr directly,", "Unavailable": "Unavailable", "Ungroup": "Ungroup", + "Unknown": "Unknown", + "UnknownEventTooltip": "Unknown event", "Unlimited": "Unlimited", "UnmappedFilesOnly": "Unmapped Files Only", "UnmappedFolders": "Unmapped Folders",