diff --git a/frontend/src/AddSeries/AddNewSeries/AddNewSeries.js b/frontend/src/AddSeries/AddNewSeries/AddNewSeries.js index 343265e98..331d4849e 100644 --- a/frontend/src/AddSeries/AddNewSeries/AddNewSeries.js +++ b/frontend/src/AddSeries/AddNewSeries/AddNewSeries.js @@ -9,6 +9,7 @@ import PageContent from 'Components/Page/PageContent'; import PageContentBody from 'Components/Page/PageContentBody'; import { icons, kinds } from 'Helpers/Props'; import getErrorMessage from 'Utilities/Object/getErrorMessage'; +import translate from 'Utilities/String/translate'; import AddNewSeriesSearchResultConnector from './AddNewSeriesSearchResultConnector'; import styles from './AddNewSeries.css'; @@ -87,7 +88,7 @@ class AddNewSeries extends Component { const isFetching = this.state.isFetching; return ( - +
@@ -126,7 +127,7 @@ class AddNewSeries extends Component { !isFetching && !!error ?
- Failed to load search results, please try again. + {translate('AddNewSeriesError')}
{getErrorMessage(error)}
: null @@ -151,11 +152,11 @@ class AddNewSeries extends Component { { !isFetching && !error && !items.length && !!term &&
-
Couldn't find any results for '{term}'
-
You can also search using TVDB ID of a show. eg. tvdb:71663
+
{translate('CouldNotFindResults', { term })}
+
{translate('SearchByTvdbId')}
- Why can't I find my show? + {translate('WhyCantIFindMyShow')}
@@ -166,9 +167,9 @@ class AddNewSeries extends Component { null :
- It's easy to add a new series, just start typing the name the series you want to add. + {translate('AddNewSeriesHelpText')}
-
You can also search using TVDB ID of a show. eg. tvdb:71663
+
{translate('SearchByTvdbId')}
} @@ -176,14 +177,14 @@ class AddNewSeries extends Component { !term && !hasExistingSeries ?
- You haven't added any series yet, do you want to import some or all of your series first? + {translate('NoSeriesHaveBeenAdded')}
: diff --git a/frontend/src/AddSeries/AddNewSeries/AddNewSeriesModalContent.js b/frontend/src/AddSeries/AddNewSeries/AddNewSeriesModalContent.js index 02bacebe3..285c00ecb 100644 --- a/frontend/src/AddSeries/AddNewSeries/AddNewSeriesModalContent.js +++ b/frontend/src/AddSeries/AddNewSeries/AddNewSeriesModalContent.js @@ -120,7 +120,7 @@ class AddNewSeriesModalContent extends Component {
- Root Folder + {translate('RootFolder')} @@ -141,7 +141,7 @@ class AddNewSeriesModalContent extends Component { - Monitor + {translate('Monitor')} } - title="Monitoring Options" + title={translate('MonitoringOptions')} body={} position={tooltipPositions.RIGHT} /> @@ -165,7 +165,7 @@ class AddNewSeriesModalContent extends Component { - Quality Profile + {translate('QualityProfile')} - Series Type + {translate('SeriesType')} } - title="Series Types" + title={translate('SeriesTypes')} body={} position={tooltipPositions.RIGHT} /> @@ -198,14 +198,12 @@ class AddNewSeriesModalContent extends Component { onChange={onInputChange} {...seriesType} value={this.state.seriesType} - helpText={translate( - 'Series type is used for renaming, parsing and searching' - )} + helpText={translate('SeriesTypesHelpText')} /> - Season Folder + {translate('SeasonFolder')} - Tags + {translate('Tags')} : null } @@ -181,7 +182,7 @@ class AddNewSeriesSearchResult extends Component { kind={kinds.INFO} size={sizes.LARGE} > - Upcoming + {translate('Upcoming')} : null } diff --git a/frontend/src/AddSeries/ImportSeries/Import/ImportSeries.js b/frontend/src/AddSeries/ImportSeries/Import/ImportSeries.js index 1b5d40256..eecdf8495 100644 --- a/frontend/src/AddSeries/ImportSeries/Import/ImportSeries.js +++ b/frontend/src/AddSeries/ImportSeries/Import/ImportSeries.js @@ -6,6 +6,7 @@ import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import PageContent from 'Components/Page/PageContent'; import PageContentBody from 'Components/Page/PageContentBody'; import { kinds } from 'Helpers/Props'; +import translate from 'Utilities/String/translate'; import selectAll from 'Utilities/Table/selectAll'; import toggleSelected from 'Utilities/Table/toggleSelected'; import ImportSeriesFooterConnector from './ImportSeriesFooterConnector'; @@ -97,7 +98,7 @@ class ImportSeries extends Component { } = this.state; return ( - + { rootFoldersFetching ? : null @@ -106,7 +107,7 @@ class ImportSeries extends Component { { !rootFoldersFetching && !!rootFoldersError ? - Unable to load root folders + {translate('RootFoldersLoadError')} : null } @@ -117,7 +118,7 @@ class ImportSeries extends Component { rootFoldersPopulated && !unmappedFolders.length ? - All series in {path} have been imported + {translate('AllSeriesInRootFolderHaveBeenImported', { path })} : null } diff --git a/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesFooter.js b/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesFooter.js index 9f1911432..a2e4cffff 100644 --- a/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesFooter.js +++ b/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesFooter.js @@ -10,6 +10,7 @@ import LoadingIndicator from 'Components/Loading/LoadingIndicator'; import PageContentFooter from 'Components/Page/PageContentFooter'; import Popover from 'Components/Tooltip/Popover'; import { icons, inputTypes, kinds, tooltipPositions } from 'Helpers/Props'; +import translate from 'Utilities/String/translate'; import styles from './ImportSeriesFooter.css'; const MIXED = 'mixed'; @@ -124,7 +125,7 @@ class ImportSeriesFooter extends Component {
- Monitor + {translate('Monitor')}
- Quality Profile + {translate('QualityProfile')}
- Series Type + {translate('SeriesType')}
- Season Folder + {translate('SeasonFolder')}
- Import {selectedCount} Series + {translate('ImportCountSeries', { selectedCount })} { @@ -203,7 +204,7 @@ class ImportSeriesFooter extends Component { kind={kinds.WARNING} onPress={onCancelLookupPress} > - Cancel Processing + {translate('CancelProcessing')} : null } @@ -215,7 +216,7 @@ class ImportSeriesFooter extends Component { kind={kinds.SUCCESS} onPress={onLookupPress} > - Start Processing + {translate('StartProcessing')} : null } @@ -231,7 +232,7 @@ class ImportSeriesFooter extends Component { { isLookingUpSeries ? - 'Processing Folders' : + translate('ProcessingFolders') : null } @@ -245,7 +246,7 @@ class ImportSeriesFooter extends Component { kind={kinds.WARNING} /> } - title="Import Errors" + title={translate('ImportErrors')} body={
    { diff --git a/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesHeader.js b/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesHeader.js index d6ce86bad..6f44b9754 100644 --- a/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesHeader.js +++ b/frontend/src/AddSeries/ImportSeries/Import/ImportSeriesHeader.js @@ -8,6 +8,7 @@ import VirtualTableHeaderCell from 'Components/Table/VirtualTableHeaderCell'; import VirtualTableSelectAllHeaderCell from 'Components/Table/VirtualTableSelectAllHeaderCell'; import Popover from 'Components/Tooltip/Popover'; import { icons, tooltipPositions } from 'Helpers/Props'; +import translate from 'Utilities/String/translate'; import styles from './ImportSeriesHeader.css'; function ImportSeriesHeader(props) { @@ -29,14 +30,14 @@ function ImportSeriesHeader(props) { className={styles.folder} name="folder" > - Folder + {translate('Folder')} - Monitor + {translate('Monitor')} } - title="Monitoring Options" + title={translate('MonitoringOptions')} body={} position={tooltipPositions.RIGHT} /> @@ -55,14 +56,14 @@ function ImportSeriesHeader(props) { className={styles.qualityProfile} name="qualityProfileId" > - Quality Profile + {translate('QualityProfile')} - Series Type + {translate('SeriesType')} } - title="Series Type" + title={translate('SeriesType')} body={} position={tooltipPositions.RIGHT} /> @@ -81,14 +82,14 @@ function ImportSeriesHeader(props) { className={styles.seasonFolder} name="seasonFolder" > - Season Folder + {translate('SeasonFolder')} - Series + {translate('Series')} ); diff --git a/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesSearchResult.js b/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesSearchResult.js index e9605ed07..60848ce85 100644 --- a/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesSearchResult.js +++ b/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesSearchResult.js @@ -34,7 +34,7 @@ function ImportSeriesSearchResult(props) { - No match found! + {translate('NoMatchFound')}
: null } @@ -189,7 +190,7 @@ class ImportSeriesSelectSeries extends Component { kind={kinds.WARNING} /> - Search failed, please try again later. + {translate('SearchFailedError')}
: null } diff --git a/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesTitle.js b/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesTitle.js index 1c698429b..c7ea7b961 100644 --- a/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesTitle.js +++ b/frontend/src/AddSeries/ImportSeries/Import/SelectSeries/ImportSeriesTitle.js @@ -2,6 +2,7 @@ import PropTypes from 'prop-types'; import React from 'react'; import Label from 'Components/Label'; import { kinds } from 'Helpers/Props'; +import translate from 'Utilities/String/translate'; import styles from './ImportSeriesTitle.css'; function ImportSeriesTitle(props) { @@ -38,7 +39,7 @@ function ImportSeriesTitle(props) { : null } diff --git a/frontend/src/AddSeries/ImportSeries/SelectFolder/ImportSeriesSelectFolder.js b/frontend/src/AddSeries/ImportSeries/SelectFolder/ImportSeriesSelectFolder.js index a8d683fe5..8c8dda91e 100644 --- a/frontend/src/AddSeries/ImportSeries/SelectFolder/ImportSeriesSelectFolder.js +++ b/frontend/src/AddSeries/ImportSeries/SelectFolder/ImportSeriesSelectFolder.js @@ -6,10 +6,12 @@ import FileBrowserModal from 'Components/FileBrowser/FileBrowserModal'; import Icon from 'Components/Icon'; import Button from 'Components/Link/Button'; import LoadingIndicator from 'Components/Loading/LoadingIndicator'; +import InlineMarkdown from 'Components/Markdown/InlineMarkdown'; import PageContent from 'Components/Page/PageContent'; import PageContentBody from 'Components/Page/PageContentBody'; import { icons, kinds, sizes } from 'Helpers/Props'; import RootFolders from 'RootFolder/RootFolders'; +import translate from 'Utilities/String/translate'; import styles from './ImportSeriesSelectFolder.css'; class ImportSeriesSelectFolder extends Component { @@ -55,9 +57,11 @@ class ImportSeriesSelectFolder extends Component { } = this.props; const hasRootFolders = items.length > 0; + const goodFolderExample = (isWindows) ? 'C:\\tv shows' : '/tv shows'; + const badFolderExample = (isWindows) ? 'C:\\tv shows\\the simpsons' : '/tv shows/the simpsons'; return ( - + { isFetching && !isPopulated ? @@ -67,7 +71,7 @@ class ImportSeriesSelectFolder extends Component { { !isFetching && error ? - Unable to load root folders : + {translate('RootFoldersLoadError')} : null } @@ -75,20 +79,20 @@ class ImportSeriesSelectFolder extends Component { !error && isPopulated &&
- Import series you already have + {translate('LibraryImportHeader')}
- Some tips to ensure the import goes smoothly: + {translate('LibraryImportTips')}
  • - Make sure that your files include the quality in their filenames. eg. episode.s02e15.bluray.mkv +
  • - Point Sonarr to the folder containing all of your tv shows, not a specific one. eg. "{isWindows ? 'C:\\tv shows' : '/tv shows'}" and not "{isWindows ? 'C:\\tv shows\\the simpsons' : '/tv shows/the simpsons'}" Additionally, each series must be in its own folder within the root/library folder. +
  • - Do not use for importing downloads from your download client, this is only for existing organized libraries, not unsorted files. + {translate('LibraryImportTipsDontUseDownloadsFolder')}
@@ -96,7 +100,7 @@ class ImportSeriesSelectFolder extends Component { { hasRootFolders ?
-
+
- Unable to add root folder + {translate('RootFolderLoadError')}
    { @@ -149,8 +153,8 @@ class ImportSeriesSelectFolder extends Component { /> { hasRootFolders ? - 'Choose another folder' : - 'Start Import' + translate('ChooseAnotherFolder') : + translate('StartImport') }
diff --git a/frontend/src/AddSeries/SeriesMonitoringOptionsPopoverContent.js b/frontend/src/AddSeries/SeriesMonitoringOptionsPopoverContent.js index 6a08f05af..c1fa934d5 100644 --- a/frontend/src/AddSeries/SeriesMonitoringOptionsPopoverContent.js +++ b/frontend/src/AddSeries/SeriesMonitoringOptionsPopoverContent.js @@ -1,53 +1,54 @@ import React from 'react'; import DescriptionList from 'Components/DescriptionList/DescriptionList'; import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem'; +import translate from 'Utilities/String/translate'; function SeriesMonitoringOptionsPopoverContent() { return ( ); diff --git a/frontend/src/AddSeries/SeriesTypePopoverContent.js b/frontend/src/AddSeries/SeriesTypePopoverContent.js index e57d49a9e..c71dcbb4d 100644 --- a/frontend/src/AddSeries/SeriesTypePopoverContent.js +++ b/frontend/src/AddSeries/SeriesTypePopoverContent.js @@ -1,23 +1,24 @@ import React from 'react'; import DescriptionList from 'Components/DescriptionList/DescriptionList'; import DescriptionListItem from 'Components/DescriptionList/DescriptionListItem'; +import translate from 'Utilities/String/translate'; function SeriesTypePopoverContent() { return ( ); diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index a11957c4b..27c664ef9 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -26,6 +26,12 @@ "AddListExclusionError": "Unable to add a new list exclusion, please try again.", "AddNew": "Add New", "AddNewRestriction": "Add new restriction", + "AddNewSeries": "Add New Series", + "AddNewSeriesError": "Failed to load search results, please try again.", + "AddNewSeriesHelpText": "It's easy to add a new series, just start typing the name the series you want to add.", + "AddNewSeriesRootFolderHelpText": "'{folder}' subfolder will be created automatically", + "AddNewSeriesSearchForCutoffUnmetEpisodes": "Start search for cutoff unmet episodes", + "AddNewSeriesSearchForMissingEpisodes": "Start search for missing episodes", "AddNotification": "Add Notification", "AddNotificationError": "Unable to add a new notification, please try again.", "AddQualityProfile": "Add Quality Profile", @@ -34,6 +40,7 @@ "AddRemotePathMapping": "Add Remote Path Mapping", "AddRemotePathMappingError": "Unable to add a new remote path mapping, please try again.", "AddRootFolder": "Add Root Folder", + "AddSeriesWithTitle": "Add {title}", "Added": "Added", "AddingTag": "Adding tag", "AfterManualRefresh": "After Manual Refresh", @@ -41,13 +48,17 @@ "AirDate": "Air Date", "All": "All", "AllResultsAreHiddenByTheAppliedFilter": "All results are hidden by the applied filter", + "AllSeriesInRootFolderHaveBeenImported": "All series in {path} have been imported", "AllTitles": "All Titles", + "AlreadyInYourLibrary": "Already in your library", "Always": "Always", "AnalyseVideoFiles": "Analyse video files", "AnalyseVideoFilesHelpText": "Extract video information such as resolution, runtime and codec information from files. This requires Sonarr to read parts of the file which may cause high disk or network activity during scans.", "Analytics": "Analytics", "AnalyticsEnabledHelpText": "Send anonymous usage and error information to Sonarr's servers. This includes information on your browser, which Sonarr WebUI pages you use, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes.", + "Anime": "Anime", "AnimeEpisodeFormat": "Anime Episode Format", + "AnimeTypeDescription": "Episodes released using an absolute episode number", "ApiKey": "API Key", "ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file", "AppDataDirectory": "AppData directory", @@ -114,6 +125,7 @@ "CalendarLoadError": "Unable to load the calendar", "Cancel": "Cancel", "CancelPendingTask": "Are you sure you want to cancel this pending task?", + "CancelProcessing": "Cancel Processing", "CertificateValidation": "Certificate Validation", "CertificateValidationHelpText": "Change how strict HTTPS certification validation is. Do not change unless you understand the risks.", "Certification": "Certification", @@ -122,6 +134,7 @@ "ChmodFolder": "chmod Folder", "ChmodFolderHelpText": "Octal, applied during import/rename to media folders and files (without execute bits)", "ChmodFolderHelpTextWarning": "This only works if the user running sonarr is the owner of the file. It's better to ensure the download client sets the permissions properly.", + "ChooseAnotherFolder": "Choose another folder", "ChownGroup": "chown Group", "ChownGroupHelpText": "Group name or gid. Use gid for remote file systems.", "ChownGroupHelpTextWarning": "This only works if the user running sonarr is the owner of the file. It's better to ensure the download client uses the same group as sonarr.", @@ -150,10 +163,11 @@ "CopyToClipboard": "Copy to Clipboard", "CopyUsingHardlinksHelpText": "Hardlinks allow Sonarr to import seeding torrents to the series folder without taking extra disk space or copying the entire contents of the file. Hardlinks will only work if the source and destination are on the same volume", "CopyUsingHardlinksHelpTextWarning": "Occasionally, file locks may prevent renaming files that are being seeded. You may temporarily disable seeding and use Sonarr's rename function as a work around.", + "CouldNotFindResults": "Couldn't find any results for '{term}'", "CountDownloadClientsSelected": "{count} download client(s) selected", "CountImportListsSelected": "{count} import list(s) selected", "CountIndexersSelected": "{count} indexer(s) selected", - "CountSeasons": "{count} seasons", + "CountSeasons": "{count} Seasons", "CreateEmptySeriesFolders": "Create Empty Series Folders", "CreateEmptySeriesFoldersHelpText": "Create missing series folders during disk scan", "CreateGroup": "Create Group", @@ -172,6 +186,7 @@ "CutoffUnmet": "Cutoff Unmet", "Daily": "Daily", "DailyEpisodeFormat": "Daily Episode Format", + "DailyTypeDescription": "Episodes released daily or less frequently that use year-month-day (2023-08-04)", "Dash": "Dash", "Date": "Date", "Dates": "Dates", @@ -320,6 +335,7 @@ "Events": "Events", "Example": "Example", "Exception": "Exception", + "Existing": "Existing", "ExistingTag": "Existing tag", "ExportCustomFormat": "Export Custom Format", "Extend": "Extend", @@ -370,7 +386,10 @@ "Images": "Images", "Implementation": "Implementation", "Import": "Import", + "ImportCountSeries": "Import {selectedCount} Series", "ImportCustomFormat": "Import Custom Format", + "ImportErrors": "Import Errors", + "ImportExistingSeries": "Import Existing Series", "ImportExtraFiles": "Import Extra Files", "ImportExtraFilesHelpText": "Import matching extra files (subtitles, nfo, etc) after importing an episode file", "ImportList": "Import List", @@ -389,6 +408,7 @@ "ImportMechanismHandlingDisabledHealthCheckMessage": "Enable Completed Download Handling", "ImportScriptPath": "Import Script Path", "ImportScriptPathHelpText": "The path to the script to use for importing", + "ImportSeries": "Import Series", "ImportUsingScript": "Import Using Script", "ImportUsingScriptHelpText": "Copy files for importing using a script (ex. for transcoding)", "Imported": "Imported", @@ -436,6 +456,11 @@ "LatestSeason": "Latest Season", "LiberaWebchat": "Libera Webchat", "LibraryImport": "Library Import", + "LibraryImportHeader": "Import series you already have", + "LibraryImportTips": "Some tips to ensure the import goes smoothly:", + "LibraryImportTipsDontUseDownloadsFolder": "Do not use for importing downloads from your download client, this is only for existing organized libraries, not unsorted files.", + "LibraryImportTipsQualityInFilename": "Make sure that your files include the quality in their filenames. eg. `episode.s02e15.bluray.mkv`", + "LibraryImportTipsUseRootFolder": "Point Sonarr to the folder containing all of your tv shows, not a specific one. eg. \"`{goodFolderExample}`\" and not \"`{badFolderExample}`\". Additionally, each series must be in its own folder within the root/library folder.", "ListExclusionsLoadError": "Unable to load List Exclusions", "ListOptionsLoadError": "Unable to load list options", "ListQualityProfileHelpText": "Quality Profile list items will be added with", @@ -502,6 +527,23 @@ "MissingEpisodes": "Missing Episodes", "Mode": "Mode", "Monday": "Monday", + "Monitor": "Monitor", + "MonitorAllEpisodes": "All Episodes", + "MonitorAllEpisodesDescription": "Monitor all episodes except specials", + "MonitorExistingEpisodes": "Existing Episodes", + "MonitorExistingEpisodesDescription": "Monitor episodes that have files or have not aired yet", + "MonitorFirstSeason": "First Season", + "MonitorFirstSeasonDescription": "Monitor all episodes of the first season. All other seasons will be ignored", + "MonitorFutureEpisodes": "Future Episodes", + "MonitorFutureEpisodesDescription": "Monitor episodes that have not aired yet", + "MonitorLatestSeason": "Latest Season", + "MonitorLatestSeasonDescription": "Monitor all episodes of the latest season that aired within the last 90 days and all future seasons", + "MonitorMissingEpisodes": "Missing Episodes", + "MonitorMissingEpisodesDescription": "Monitor episodes that do not have files or have not aired yet", + "MonitorNone": "None", + "MonitorNoneDescription": "No episodes will be monitored", + "MonitorSpecials": "Monitor Specials", + "MonitorSpecialsDescription": "Monitor all special episodes without changing the monitored status of other episodes", "Monitored": "Monitored", "MonitoredOnly": "Monitored Only", "MonitoringOptions": "Monitoring Options", @@ -542,9 +584,11 @@ "NoLimitForAnyRuntime": "No limit for any runtime", "NoLinks": "No links", "NoLogFiles": "No log files", + "NoMatchFound": "No match found!", "NoMinimumForAnyRuntime": "No minimum for any runtime", "NoResultsFound": "No results found", "NoSeasons": "No seasons", + "NoSeriesHaveBeenAdded": "You haven't added any series yet, do you want to import some or all of your series first?", "NoTagsHaveBeenAddedYet": "No tags have been added yet", "NoUpdatesAreAvailable": "No updates are available", "None": "None", @@ -567,7 +611,7 @@ "OnSeriesDelete": "On Series Delete", "OnUpgrade": "On Upgrade", "OneMinute": "1 Minute", - "OneSeason": "1 season", + "OneSeason": "1 Season", "OnlyForBulkSeasonReleases": "Only for Bulk Season Releases", "OnlyTorrent": "Only Torrent", "OnlyUsenet": "Only Usenet", @@ -605,6 +649,7 @@ "Priority": "Priority", "PriorityHelpText": "Prioritize multiple Download Clients. Round-Robin is used for clients with the same priority.", "PrioritySettings": "Priority: {priority}", + "ProcessingFolders": "Processing Folders", "Profiles": "Profiles", "ProfilesSettingsSummary": "Quality, Language Delay and Release profiles", "Progress": "Progress", @@ -767,6 +812,8 @@ "Score": "Score", "Script": "Script", "ScriptPath": "Script Path", + "SearchByTvdbId": "You can also search using TVDB ID of a show. eg. tvdb:71663", + "SearchFailedError": "Search failed, please try again later.", "SearchForMonitoredEpisodes": "Search for monitored episodes", "SearchIsNotSupportedWithThisIndexer": "Search is not supported with this indexer", "Season": "Season", @@ -791,6 +838,7 @@ "SeriesTitleToExcludeHelpText": "The name of the series to exclude", "SeriesType": "Series Type", "SeriesTypes": "Series Types", + "SeriesTypesHelpText": "Series type is used for renaming, parsing and searching", "SetPermissions": "Set Permissions", "SetPermissionsLinuxHelpText": "Should chmod be run when files are imported/renamed?", "SetPermissionsLinuxHelpTextWarning": "If you're unsure what these settings do, do not alter them.", @@ -826,7 +874,11 @@ "SslCertPath": "SSL Cert Path", "SslCertPathHelpText": "Path to pfx file", "SslPort": "SSL Port", + "Standard": "Standard", "StandardEpisodeFormat": "Standard Episode Format", + "StandardTypeDescription": "Episodes released with SxxEyy pattern", + "StartImport": "Start Import", + "StartProcessing": "Start Processing", "Started": "Started", "StartupDirectory": "Startup directory", "Status": "Status", @@ -894,9 +946,12 @@ "UnmappedFolders": "Unmapped Folders", "UnmonitorDeletedEpisodes": "Unmonitor Deleted Episodes", "UnmonitorDeletedEpisodesHelpText": "Episodes deleted from disk are automatically unmonitored in Sonarr", + "UnmonitorSpecials": "Unmonitor Specials", + "UnmonitorSpecialsDescription": "Unmonitor all special episodes without changing the monitored status of other episodes", "Unmonitored": "Unmonitored", "UnmonitoredOnly": "Unmonitored Only", "UnsavedChanges": "Unsaved Changes", + "Upcoming": "Upcoming", "UpdateAutomaticallyHelpText": "Automatically download and install updates. You will still be able to install from System: Updates", "UpdateAvailableHealthCheckMessage": "New update is available", "UpdateMechanismHelpText": "Use Sonarr's built-in updater or a script", @@ -937,6 +992,7 @@ "Warn": "Warn", "WeekColumnHeader": "Week Column Header", "WeekColumnHeaderHelpText": "Shown above each column when week is the active view", + "WhyCantIFindMyShow": "Why can't I find my show?", "Wiki": "Wiki", "WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?", "Year": "Year",