Translation update, updating inline div tags and placeHolder attributes

This commit is contained in:
nitsua 2020-09-05 14:46:39 -04:00 committed by Qstick
parent 914d8f9937
commit f286f99bb6
53 changed files with 313 additions and 96 deletions

View File

@ -65,13 +65,15 @@ class Blacklist extends Component {
{
!isFetching && !!error &&
<div>Unable to load blacklist</div>
<div>
{translate('UnableToLoadBlacklist')}
</div>
}
{
isPopulated && !error && !items.length &&
<div>
No history blacklist
{translate('NoHistory')}
</div>
}

View File

@ -83,7 +83,9 @@ class History extends Component {
{
!isFetchingAny && hasError &&
<div>Unable to load history</div>
<div>
{translate('UnableToLoadHistory')}
</div>
}
{

View File

@ -127,7 +127,7 @@ class AddNewMovie extends Component {
!isFetching && !!error ?
<div className={styles.message}>
<div className={styles.helpText}>
Failed to load search results, please try again.
{translate('FailedLoadingSearchResults')}
</div>
<div>{getErrorMessage(error)}</div>
</div> : null
@ -152,11 +152,15 @@ class AddNewMovie extends Component {
{
!isFetching && !error && !items.length && !!term &&
<div className={styles.message}>
<div className={styles.noResults}>Couldn't find any results for '{term}'</div>
<div>You can also search using TMDB ID or IMDB ID of a movie. eg. tmdb:71663</div>
<div className={styles.noResults}>
(translate('CouldNotFindResults', [term]))
</div>
<div>
{translate('YouCanAlsoSearch')}
</div>
<div>
<Link to="https://github.com/Radarr/Radarr/wiki/FAQ#why-cant-i-add-a-new-movie-when-i-know-the-tmdb-id">
Why can't I find my movie?
{translate('CantFindMovie')}
</Link>
</div>
</div>
@ -169,7 +173,9 @@ class AddNewMovie extends Component {
<div className={styles.helpText}>
{translate('AddNewMessage')}
</div>
<div>{translate('AddNewTmdbIdMessage')}</div>
<div>
{translate('AddNewTmdbIdMessage')}
</div>
</div>
}
@ -177,7 +183,7 @@ class AddNewMovie extends Component {
!term && !hasExistingMovies ?
<div className={styles.message}>
<div className={styles.noMoviesText}>
You haven't added any movies yet, do you want to import some or all of your movies first?
{translate('HaveNotAddedMovies')}
</div>
<div>
<Button

View File

@ -104,7 +104,9 @@ class ImportMovie extends Component {
{
!rootFoldersFetching && !!rootFoldersError ?
<div>Unable to load root folders</div> :
<div>
{translate('UnableToLoadRootFolders')}
</div> :
null
}

View File

@ -86,7 +86,9 @@ class ImportMovieSelectFolder extends Component {
{
!isFetching && !!error &&
<div>Unable to load root folders</div>
<div>
{translate('UnableToLoadRootFolders')}
</div>
}
{

View File

@ -1,6 +1,7 @@
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import LoadingIndicator from 'Components/Loading/LoadingIndicator';
import translate from 'Utilities/String/translate';
import AgendaConnector from './Agenda/AgendaConnector';
import * as calendarViews from './calendarViews';
import CalendarDaysConnector from './Day/CalendarDaysConnector';
@ -30,7 +31,9 @@ class Calendar extends Component {
{
!isFetching && !!error &&
<div>Unable to load the calendar</div>
<div>
{translate('UnableToLoadTheCalendar')}
</div>
}
{

View File

@ -135,7 +135,7 @@ class FileBrowserModalContent extends Component {
<PathInput
className={styles.pathInput}
placeholder="Start typing or select a path below"
placeholder={translate('StartTypingOrSelectAPathBelow')}
hasFileBrowser={false}
{...otherProps}
value={this.state.currentPath}
@ -149,7 +149,9 @@ class FileBrowserModalContent extends Component {
>
{
!!error &&
<div>Error loading contents</div>
<div>
{translate('ErrorLoadingContents')}
</div>
}
{

View File

@ -376,7 +376,9 @@ class DiscoverMovie extends Component {
{
!isFetching && !!error &&
<div>Unable to load movies</div>
<div>
{translate('UnableToLoadMovies')}
</div>
}
{

View File

@ -154,7 +154,7 @@ class DiscoverMoviePoster extends Component {
isExcluded &&
<div
className={styles.excluded}
title={translate('Exluded')}
title={translate('Excluded')}
/>
}

View File

@ -88,7 +88,9 @@ class SelectLanguageModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to load languages</div>
<div>
{translate('UnableToLoadLanguages')}
</div>
}
{

View File

@ -183,7 +183,7 @@ class SelectMovieModalContent extends Component {
>
<TextInput
className={styles.filterInput}
placeholder="Search movies"
placeholder={translate('FilterPlaceHolder')}
name="filter"
value={filter}
autoFocus={true}

View File

@ -92,7 +92,9 @@ class SelectQualityModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to load qualities</div>
<div>
{translate('UnableToLoadQualities')}
</div>
}
{

View File

@ -581,17 +581,23 @@ class MovieDetails extends Component {
<div className={styles.contentContainer}>
{
!isFetching && movieFilesError &&
<div>Loading movie files failed</div>
<div>
{translate('LoadingMovieFilesFailed')}
</div>
}
{
!isFetching && movieCreditsError &&
<div>Loading movie credits failed</div>
<div>
{translate('LoadingMovieCreditsFailed')}
</div>
}
{
!isFetching && extraFilesError &&
<div>Loading movie extra files failed</div>
<div>
{translate('LoadingMovieExtraFilesFailed')}
</div>
}
<Tabs selectedIndex={this.state.tabIndex} onSelect={(tabIndex) => this.setState({ selectedTabIndex: tabIndex })}>

View File

@ -94,10 +94,10 @@ class TagsModalContent extends Component {
value={applyTags}
values={applyTagsOptions}
helpTexts={[
'How to apply tags to the selected movies',
'Add: Add the tags the existing list of tags',
'Remove: Remove the entered tags',
'Replace: Replace the tags with the entered tags (enter no tags to clear all tags)'
translate('ApplyTagsHelpTexts1'),
translate('ApplyTagsHelpTexts2'),
translate('ApplyTagsHelpTexts3'),
translate('ApplyTagsHelpTexts4')
]}
onChange={this.onInputChange}
/>

View File

@ -44,12 +44,16 @@ class MovieIndexFooter extends PureComponent {
<div>
<div className={styles.legendItem}>
<div className={styles.ended} />
<div>Downloaded and Monitored</div>
<div>
{translate('DownloadedAndMonitored')}
</div>
</div>
<div className={styles.legendItem}>
<div className={styles.availNotMonitored} />
<div>Downloaded, but not Monitored</div>
<div>
{translate('DownloadedButNotMonitored')}
</div>
</div>
<div className={styles.legendItem}>
@ -58,7 +62,9 @@ class MovieIndexFooter extends PureComponent {
colorImpairedMode && 'colorImpaired'
)}
/>
<div>Missing, Monitored and considered Available</div>
<div>
{translate('MissingMonitoredAndConsideredAvailable')}
</div>
</div>
<div className={styles.legendItem}>
@ -67,12 +73,16 @@ class MovieIndexFooter extends PureComponent {
colorImpairedMode && 'colorImpaired'
)}
/>
<div>Missing, not Monitored</div>
<div>
{translate('MissingNotMonitored')}
</div>
</div>
<div className={styles.legendItem}>
<div className={styles.continuing} />
<div>Unreleased</div>
<div>
{translate('Unreleased')}
</div>
</div>
</div>

View File

@ -92,7 +92,9 @@ class SelectQualityModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to load qualities</div>
<div>
{translate('UnableToLoadQualities')}
</div>
}
{

View File

@ -103,7 +103,9 @@ class OrganizePreviewModalContent extends Component {
{
!isFetching && error &&
<div>Error loading previews</div>
<div>
{translate('ErrorLoadingPreviews')}
</div>
}
{

View File

@ -44,7 +44,9 @@ function RootFolders(props) {
if (!isFetching && !!error) {
return (
<div>Unable to load root folders</div>
<div>
{translate('UnableToLoadRootFolders')}
</div>
);
}

View File

@ -101,7 +101,9 @@ class EditCustomFormatModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to add a new custom format, please try again.</div>
<div>
{translate('UnableToAddANewCustomFormatPleaseTryAgain')}
</div>
}
{

View File

@ -42,7 +42,9 @@ class AddSpecificationModalContent extends Component {
{
!isSchemaFetching && !!schemaError &&
<div>Unable to add a new condition, please try again.</div>
<div>
{translate('UnableToAddANewConditionPleaseTryAgain')}
</div>
}
{
@ -50,8 +52,13 @@ class AddSpecificationModalContent extends Component {
<div>
<Alert kind={kinds.INFO}>
<div>Radarr supports custom conditions against the release properties below.</div>
<div>Visit <Link to='https://github.com/Radarr/Radarr/wiki/Custom-Formats-Aphrodite'>GitHub</Link> for more details.</div>
<div>
{translate('RadarrSupportsCustomConditionsAgainstTheReleasePropertiesBelow')}
</div>
<div>
{translate('VisitGithubCustomFormatsAphrodite')}
<Link to="https://github.com/Radarr/Radarr/wiki/Custom-Formats-Aphrodite">GitHub</Link>
</div>
</Alert>
<div className={styles.specifications}>

View File

@ -51,8 +51,14 @@ function EditSpecificationModalContent(props) {
{
fields && fields.some((x) => x.label === 'Regular Expression') &&
<Alert kind={kinds.INFO}>
<div>This condition matches using Regular Expressions. See <Link to="https://www.regular-expressions.info/tutorial.html">here</Link> for details. Note that the characters <code>{'\\^$.|?*+()[{'}</code> have special meanings and need escaping with a <code>\</code></div>
<div>Regular expressions can be tested <Link to="http://regexstorm.net/tester">here</Link>.</div>
<div>
<div dangerouslySetInnerHTML={{ __html: translate('ThisConditionMatchesUsingRegularExpressions', ['<code>\\^$.|?*+()[{</code>', '<code>\\</code>']) }} />
{translate('MoreDetails')} <Link to="https://www.regular-expressions.info/tutorial.html">{translate('LinkHere')}</Link>
</div>
<div>
{translate('RegularExpressionsCanBeTested')}
<Link to="http://regexstorm.net/tester">{translate('LinkHere')}</Link>
</div>
</Alert>
}

View File

@ -43,7 +43,9 @@ class AddDownloadClientModalContent extends Component {
{
!isSchemaFetching && !!schemaError &&
<div>Unable to add a new downloadClient, please try again.</div>
<div>
{translate('UnableToAddANewDownloadClientPleaseTryAgain')}
</div>
}
{
@ -51,8 +53,12 @@ class AddDownloadClientModalContent extends Component {
<div>
<Alert kind={kinds.INFO}>
<div>Radarr supports any downloadClient that uses the Newznab standard, as well as other downloadClients listed below.</div>
<div>For more information on the individual downloadClients, clink on the info buttons.</div>
<div>
{translate('RadarrSupportsAnyDownloadClient')}
</div>
<div>
{translate('ForMoreInformationOnTheIndividualDownloadClients')}
</div>
</Alert>
<FieldSet legend={translate('Usenet')}>

View File

@ -64,7 +64,9 @@ class EditDownloadClientModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to add a new download client, please try again.</div>
<div>
{translate('UnableToAddANewDownloadClientPleaseTryAgain')}
</div>
}
{

View File

@ -28,7 +28,9 @@ function DownloadClientOptions(props) {
{
!isFetching && error &&
<div>Unable to load download client options</div>
<div>
{translate('UnableToLoadDownloadClientOptions')}
</div>
}
{

View File

@ -52,7 +52,9 @@ function EditRemotePathMappingModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new remote path mapping, please try again.</div>
<div>
{translate('UnableToAddANewRemotePathMappingPleaseTryAgain')}
</div>
}
{

View File

@ -126,7 +126,9 @@ class GeneralSettings extends Component {
{
!isFetching && error &&
<div>Unable to load General settings</div>
<div>
{translate('UnableToLoadGeneralSettings')}
</div>
}
{

View File

@ -50,7 +50,9 @@ function EditImportExclusionModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new list exclusion, please try again.</div>
<div>
{translate('UnableToAddANewListExclusionPleaseTryAgain')}
</div>
}
{

View File

@ -43,7 +43,9 @@ class AddImportListModalContent extends Component {
{
!isSchemaFetching && !!schemaError &&
<div>Unable to add a new list, please try again.</div>
<div>
{translate('UnableToAddANewListPleaseTryAgain')}
</div>
}
{
@ -51,8 +53,12 @@ class AddImportListModalContent extends Component {
<div>
<Alert kind={kinds.INFO}>
<div>Radarr supports any RSS movie lists as well as the one stated below.</div>
<div>For more information on the individual importLists, clink on the info buttons.</div>
<div>
{translate('RadarrSupportsAnyRSSMovieListsAsWellAsTheOneStatedBelow')}
</div>
<div>
{translate('ForMoreInformationOnTheIndividualImportListsClinkOnTheInfoButtons')}
</div>
</Alert>
{

View File

@ -63,7 +63,9 @@ function EditImportListModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new list, please try again.</div>
<div>
{translate('UnableToAddANewListPleaseTryAgain')}
</div>
}
{

View File

@ -35,7 +35,9 @@ function ImportListOptions(props) {
{
!isFetching && error &&
<div>Unable to load list options</div>
<div>
{translate('UnableToLoadListOptions')}
</div>
}
{

View File

@ -43,7 +43,9 @@ class AddIndexerModalContent extends Component {
{
!isSchemaFetching && !!schemaError &&
<div>Unable to add a new indexer, please try again.</div>
<div>
{translate('UnableToAddANewIndexerPleaseTryAgain')}
</div>
}
{
@ -51,8 +53,12 @@ class AddIndexerModalContent extends Component {
<div>
<Alert kind={kinds.INFO}>
<div>Radarr supports any indexer that uses the Newznab standard, as well as other indexers listed below.</div>
<div>For more information on the individual indexers, click on the info buttons.</div>
<div>
{translate('RadarrSupportsAnyIndexer')}
</div>
<div>
{translate('ForMoreInformationOnTheIndividualIndexers')}
</div>
</Alert>
<FieldSet legend={translate('Usenet')}>

View File

@ -60,7 +60,9 @@ function EditIndexerModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new indexer, please try again.</div>
<div>
{translate('UnableToAddANewIndexerPleaseTryAgain')}
</div>
}
{

View File

@ -28,7 +28,9 @@ function IndexerOptions(props) {
{
!isFetching && error &&
<div>Unable to load indexer options</div>
<div>
{translate('UnableToLoadIndexerOptions')}
</div>
}
{

View File

@ -51,7 +51,7 @@ function EditRestrictionModalContent(props) {
name="required"
helpText={translate('RequiredHelpText')}
kind={kinds.SUCCESS}
placeholder="Add new restriction"
placeholder={translate('RequiredPlaceHolder')}
{...required}
onChange={onInputChange}
/>
@ -65,7 +65,7 @@ function EditRestrictionModalContent(props) {
name="ignored"
helpText={translate('IgnoredHelpText')}
kind={kinds.DANGER}
placeholder="Add new restriction"
placeholder={translate('IgnoredPlaceHolder')}
{...ignored}
onChange={onInputChange}
/>

View File

@ -66,7 +66,9 @@ class MediaManagement extends Component {
{
!isFetching && error &&
<FieldSet legend={translate('NamingSettings')}>
<div>Unable to load Media Management settings</div>
<div>
{translate('UnableToLoadMediaManagementSettings')}
</div>
</FieldSet>
}
@ -197,8 +199,8 @@ class MediaManagement extends Component {
type={inputTypes.TEXT}
name="extraFileExtensions"
helpTexts={[
'Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)',
'Examples: ".sub, .nfo" or "sub,nfo"'
translate('ExtraFileExtensionsHelpTexts1'),
translate('ExtraFileExtensionsHelpTexts2')
]}
onChange={onInputChange}
{...settings.extraFileExtensions}
@ -353,8 +355,8 @@ class MediaManagement extends Component {
type={inputTypes.TEXT}
name="fileChmod"
helpTexts={[
'Octal, applied to media files when imported/renamed by Radarr',
'The same mode is applied to movie/sub folders with the execute bit added, e.g., 0644 becomes 0755'
translate('FileChmodHelpTexts1'),
translate('FileChmodHelpTexts2')
]}
onChange={onInputChange}
{...settings.fileChmod}

View File

@ -110,7 +110,9 @@ class Naming extends Component {
{
!isFetching && error &&
<div>Unable to load Naming settings</div>
<div>
{translate('UnableToLoadNamingSettings')}
</div>
}
{

View File

@ -32,7 +32,9 @@ function MetadataOptions(props) {
{
!isFetching && error &&
<div>Unable to load indexer options</div>
<div>
{translate('UnableToLoadIndexerOptions')}
</div>
}
{

View File

@ -39,7 +39,9 @@ class AddNotificationModalContent extends Component {
{
!isSchemaFetching && !!schemaError &&
<div>Unable to add a new notification, please try again.</div>
<div>
{translate('UnableToAddANewNotificationPleaseTryAgain')}
</div>
}
{

View File

@ -59,7 +59,9 @@ function EditNotificationModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new notification, please try again.</div>
<div>
{translate('UnableToAddANewNotificationPleaseTryAgain')}
</div>
}
{

View File

@ -90,7 +90,7 @@ function NotificationEventItems(props) {
<FormInputGroup
type={inputTypes.CHECK}
name="onDelete"
helpText="On Delete"
helpText={translate('OnDeleteHelpText')}
isDisabled={!supportsOnDelete.value}
{...onDelete}
onChange={onInputChange}

View File

@ -57,7 +57,9 @@ function EditDelayProfileModalContent(props) {
{
!isFetching && !!error &&
<div>Unable to add a new quality profile, please try again.</div>
<div>
{translate('UnableToAddANewQualityProfilePleaseTryAgain')}
</div>
}
{

View File

@ -146,7 +146,9 @@ class EditQualityProfileModalContent extends Component {
{
!isFetching && !!error &&
<div>Unable to add a new quality profile, please try again.</div>
<div>
{translate('UnableToAddANewQualityProfilePleaseTryAgain')}
</div>
}
{

View File

@ -1,6 +1,7 @@
import PropTypes from 'prop-types';
import React from 'react';
import formatBytes from 'Utilities/Number/formatBytes';
import translate from 'Utilities/String/translate';
function QualityDefinitionLimits(props) {
const {
@ -18,9 +19,15 @@ function QualityDefinitionLimits(props) {
return (
<div>
<div>60 Minutes: {sixty}</div>
<div>90 Minutes: {ninety}</div>
<div>120 Minutes: {hundredTwenty}</div>
<div>
{translate('MinutesSixty', [sixty])}
</div>
<div>
{translate('MinutesNinety', [ninety])}
</div>
<div>
{translate('MinutesHundredTwenty', [hundredTwenty])}
</div>
</div>
);
}

View File

@ -35,7 +35,9 @@ function TagDetailsModalContent(props) {
<ModalBody>
{
!isTagUsed &&
<div>Tag is not used and can be deleted</div>
<div>
{translate('TagIsNotUsedAndCanBeDeleted')}
</div>
}
{

View File

@ -14,7 +14,9 @@ function Tags(props) {
if (!items.length) {
return (
<div>No tags have been added yet</div>
<div>
{translate('NoTagsHaveBeenAddedYet')}
</div>
);
}

View File

@ -80,7 +80,9 @@ class UISettings extends Component {
{
!isFetching && error &&
<div>Unable to load UI settings</div>
<div>
{translate('UnableToLoadUISettings')}
</div>
}
{

View File

@ -102,12 +102,16 @@ class Backups extends Component {
{
!isFetching && !!error &&
<div>Unable to load backups</div>
<div>
{translate('UnableToLoadBackups')}
</div>
}
{
noBackups &&
<div>No backups are available</div>
<div>
{translate('NoBackupsAreAvailable')}
</div>
}
{

View File

@ -168,7 +168,9 @@ class RestoreBackupModalContent extends Component {
/>
</div>
<div>Restore</div>
<div>
{translate('Restore')}
</div>
</div>
<div className={styles.step}>
@ -179,7 +181,9 @@ class RestoreBackupModalContent extends Component {
/>
</div>
<div>Restart</div>
<div>
{translate('Restart')}
</div>
</div>
<div className={styles.step}>
@ -190,7 +194,9 @@ class RestoreBackupModalContent extends Component {
/>
</div>
<div>Reload</div>
<div>
{translate('Reload')}
</div>
</div>
</div>
</ModalBody>

View File

@ -32,7 +32,9 @@ function LogsTableDetailsModal(props) {
</ModalHeader>
<ModalBody>
<div>Message</div>
<div>
{translate('Message')}
</div>
<Scroller
className={styles.detailsText}
@ -44,7 +46,9 @@ function LogsTableDetailsModal(props) {
{
!!exception &&
<div>
<div>Exception</div>
<div>
{translate('Exception')}
</div>
<Scroller
className={styles.detailsText}
scrollDirection={scrollDirections.HORIZONTAL}

View File

@ -118,7 +118,9 @@ class LogFiles extends Component {
{
!isFetching && !items.length &&
<div>No log files</div>
<div>
{translate('NoLogFiles')}
</div>
}
</PageContentBody>
</PageContent>

View File

@ -58,7 +58,9 @@ class Updates extends Component {
{
noUpdates &&
<div>No updates are available</div>
<div>
{translate('NoUpdatesAreAvailable')}
</div>
}
{
@ -162,7 +164,9 @@ class Updates extends Component {
{
!hasChanges &&
<div>Maintenance release</div>
<div>
{translate('MaintenanceRelease')}
</div>
}
{

View File

@ -25,12 +25,8 @@ const translations = getTranslations();
export default function translate(key, args = '') {
if (args) {
const translatedKey = translate(key);
return translatedKey.replace(/(\{\{\d\}\}|\{\d\})/g, (translatedKeyDbl) => {
if (translatedKeyDbl.substring(0, 2) === '{{') {
return translatedKeyDbl;
}
const match = parseInt(translatedKey.match(/\d/)[0]);
return args[match];
return translatedKey.replace(/\{(\d+)\}/g, (match, index) => {
return args[index];
});
}

View File

@ -34,6 +34,10 @@
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
"Apply": "Apply",
"ApplyTags": "Apply Tags",
"ApplyTagsHelpTexts1": "How to apply tags to the selected movies",
"ApplyTagsHelpTexts2": "Add: Add the tags the existing list of tags",
"ApplyTagsHelpTexts3": "Remove: Remove the entered tags",
"ApplyTagsHelpTexts4": "Replace: Replace the tags with the entered tags (enter no tags to clear all tags)",
"AreYouSureYouWantToDeleteThisDelayProfile": "Are you sure you want to delete this delay profile?",
"AreYouSureYouWantToDeleteThisImportListExclusion": "Are you sure you want to delete this import list exclusion?",
"AreYouSureYouWantToDeleteThisRemotePathMapping": "Are you sure you want to delete this remote path mapping?",
@ -67,6 +71,7 @@
"Calendar": "Calendar",
"Cancel": "Cancel",
"CancelPendingTask": "Are you sure you want to cancel this pending task?",
"CantFindMovie": "Why can't I find my movie?",
"Cast": "Cast",
"CertificateValidation": "Certificate Validation",
"CertificateValidationHelpText": "Change how strict HTTPS certification validation is",
@ -104,6 +109,7 @@
"ConnectSettingsSummary": "Notifications, connections to media servers/players and custom scripts",
"CopyUsingHardlinksHelpText": "Use Hardlinks when trying to copy files from torrents that are still being seeded",
"CopyUsingHardlinksHelpTextWarning": "Occasionally, file locks may prevent renaming files that are being seeded. You may temporarily disable seeding and use Radarr's rename function as a work around.",
"CouldNotFindResults": "Couldn't find any results for '{0}'",
"CreateEmptyMovieFolders": "Create empty movie folders",
"CreateEmptyMovieFoldersHelpText": "Create missing movie folders during disk scan",
"CreateGroup": "Create group",
@ -170,6 +176,8 @@
"DownloadClientStatusCheckSingleClientMessage": "Download clients unavailable due to failures: {0}",
"DownloadClientUnavailable": "Download client is unavailable",
"Downloaded": "Downloaded",
"DownloadedAndMonitored": "Downloaded and Monitored",
"DownloadedButNotMonitored": "Downloaded, but not Monitored",
"DownloadFailed": "Download failed",
"DownloadFailedCheckDownloadClientForMoreDetails": "Download failed: check download client for more details",
"DownloadFailedInterp": "Download failed: {0}",
@ -202,15 +210,23 @@
"EnableSslHelpText": " Requires restart running as administrator to take effect",
"Ended": "Ended",
"Error": "Error",
"ErrorLoadingContents": "Error loading contents",
"ErrorLoadingPreviews": "Error loading previews",
"Events": "Events",
"EventType": "Event Type",
"Exception": "Exception",
"Excluded": "Excluded",
"ExcludeMovie": "Exclude Movie",
"ExistingMovies": "Existing Movie(s)",
"ExistingTag": "Existing tag",
"Exluded": "Exluded",
"Extension": "Extension",
"ExtraFileExtensionsHelpTexts1": "Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)",
"ExtraFileExtensionsHelpTexts2": "Examples: '.sub, .nfo' or 'sub,nfo'",
"Failed": "Failed",
"FailedDownloadHandling": "Failed Download Handling",
"FailedLoadingSearchResults": "Failed to load search results, please try again.",
"FileChmodHelpTexts1": "Octal, applied to media files when imported/renamed by Radarr",
"FileChmodHelpTexts2": "The same mode is applied to movie/sub folders with the execute bit added, e.g., 0644 becomes 0755",
"FileChmodMode": "File chmod mode",
"FileDateHelpText": "Change file date on import/rescan",
"FileManagement": "File Management",
@ -219,6 +235,7 @@
"Files": "Files",
"Filesize": "Filesize",
"Filter": "Filter",
"FilterPlaceHolder": "Search movies",
"FirstDayOfWeek": "First Day of Week",
"Fixed": "Fixed",
"Folder": "Folder",
@ -226,6 +243,9 @@
"FollowPerson": "Follow Person",
"Forecast": "Forecast",
"Formats": "Formats",
"ForMoreInformationOnTheIndividualDownloadClients": "For more information on the individual download clients, clink on the info buttons.",
"ForMoreInformationOnTheIndividualImportListsClinkOnTheInfoButtons": "For more information on the individual import lists, clink on the info buttons.",
"ForMoreInformationOnTheIndividualIndexers": "For more information on the individual indexers, click on the info buttons.",
"FreeSpace": "Free Space",
"General": "General",
"GeneralSettings": "General Settings",
@ -241,6 +261,7 @@
"GrabSelected": "Grab Selected",
"Group": "Group",
"HardlinkCopyFiles": "Hardlink/Copy Files",
"HaveNotAddedMovies": "You haven't added any movies yet, do you want to import some or all of your movies first?",
"Health": "Health",
"HealthNoIssues": "No issues with your configuration",
"HelpText": "Interval in minutes. Set to zero to disable (this will stop all automatic release grabbing)",
@ -257,6 +278,7 @@
"IgnoredAddresses": "Ignored Addresses",
"IgnoreDeletedMovies": "Ignore Deleted Movies",
"IgnoredHelpText": "The release will be rejected if it contains one or more of the terms (case insensitive)",
"IgnoredPlaceHolder": "Add new restriction",
"IllRestartLater": "I'll restart later",
"Import": "Import",
"Imported": "Imported",
@ -307,6 +329,7 @@
"LastWriteTime": "Last Write Time",
"LaunchBrowserHelpText": " Open a web browser and navigate to the Radarr homepage on app start.",
"Level": "Level",
"LinkHere": "here",
"Links": "Links",
"ListExclusions": "List Exclusions",
"Lists": "Lists",
@ -314,6 +337,9 @@
"ListsSettingsSummary": "Import Lists, list exclusions",
"ListSyncLevelHelpText": "Movies in library will be removed or unmonitored if not in your list",
"ListUpdateInterval": "List Update Interval",
"LoadingMovieCreditsFailed": "Loading movie credits failed",
"LoadingMovieExtraFilesFailed": "Loading movie extra files failed",
"LoadingMovieFilesFailed": "Loading movie files failed",
"Local": "Local",
"Location": "Location",
"LogFiles": "Log Files",
@ -322,6 +348,7 @@
"LogLevel": "Log Level",
"LogLevelTraceHelpTextWarning": "Trace logging should only be enabled temporarily",
"Logs": "Logs",
"MaintenanceRelease": "Maintenance release",
"Manual": "Manual",
"ManualImport": "Manual Import",
"MarkAsFailed": "Mark as Failed",
@ -349,7 +376,12 @@
"MinimumFreeSpace": "Minimum Free Space",
"MinimumFreeSpaceWhenImportingHelpText": "Prevent import if it would leave less than this amount of disk space available",
"MinimumLimits": "Minimum Limits",
"MinutesHundredTwenty": "120 Minutes: {0}",
"MinutesNinety": "90 Minutes: {0}",
"MinutesSixty": "60 Minutes: {0}",
"Missing": "Missing",
"MissingMonitoredAndConsideredAvailable": "Missing, Monitored and considered Available",
"MissingNotMonitored": "Missing, not Monitored",
"Mode": "Mode",
"Monitor": "Monitor",
"Monitored": "Monitored",
@ -363,6 +395,7 @@
"MonoVersionCheckOldNotSupportedMessage": "Currently installed Mono version {0} is old and unsupported. Please upgrade Mono to version {1}.",
"MonoVersionCheckUpgradeRecommendedMessage": "Currently installed Mono version {0} is supported but upgrading to {1} is recommended.",
"Month": "Month",
"MoreDetails": "More details",
"MoreInfo": "More Info",
"MountCheckMessage": "Mount containing a movie path is mounted read-only: ",
"MoveFiles": "Move Files",
@ -395,16 +428,22 @@
"NegateHelpText": "If checked, the custom format will not apply if this {0} condition matches.",
"NetCore": ".NET Core",
"New": "New",
"NoBackupsAreAvailable": "No backups are available",
"NoChange": "No Change",
"NoChanges": "No Changes",
"NoHistory": "No history",
"NoLeaveIt": "No, Leave It",
"NoLimitForAnyRuntime": "No limit for any runtime",
"NoLogFiles": "No log files",
"NoMinimumForAnyRuntime": "No minimum for any runtime",
"NoTagsHaveBeenAddedYet": "No tags have been added yet",
"NotAvailable": "Not Available",
"NotificationTriggers": "Notification Triggers",
"NotMonitored": "Not Monitored",
"NoUpdatesAreAvailable": "No updates are available",
"OAuthPopupMessage": "Pop-ups are being blocked by your browser",
"Ok": "Ok",
"OnDeleteHelpText": "On Delete",
"OnDownloadHelpText": "Be notified when movies are successfully imported",
"OnGrabHelpText": "On Grab",
"OnHealthIssueHelpText": "On Health Issue",
@ -473,6 +512,10 @@
"Queued": "Queued",
"QuickImport": "Quick Import",
"Radarr": "Radarr",
"RadarrSupportsAnyDownloadClient": "Radarr supports any download client that uses the Newznab standard, as well as other download clients listed below.",
"RadarrSupportsAnyIndexer": "Radarr supports any indexer that uses the Newznab standard, as well as other indexers listed below.",
"RadarrSupportsAnyRSSMovieListsAsWellAsTheOneStatedBelow": "Radarr supports any RSS movie lists as well as the one stated below.",
"RadarrSupportsCustomConditionsAgainstTheReleasePropertiesBelow": "Radarr supports custom conditions against the release properties below.",
"RadarrTags": "Radarr Tags",
"Ratings": "Ratings",
"ReadTheWikiForMoreInformation": "Read the Wiki for more information",
@ -489,6 +532,7 @@
"RefreshAndScan": "Refresh & Scan",
"RefreshInformationAndScanDisk": "Refresh information and scan disk",
"RefreshMovie": "Refresh movie",
"RegularExpressionsCanBeTested": "Regular expressions can be tested ",
"RejectionCount": "Rejection Count",
"RelativePath": "Relative Path",
"ReleaseBranchCheckOfficialBranchMessage": "Branch {0} is not a valid Radarr release branch, you will not receive updates",
@ -523,6 +567,7 @@
"ReplaceIllegalCharacters": "Replace Illegal Characters",
"ReplaceIllegalCharactersHelpText": "Replace illegal characters. If unchecked, Radarr will remove them instead",
"RequiredHelpText": "This {0} condition must match for the custom format to apply. Otherwise a single {1} match is sufficient.",
"RequiredPlaceHolder": "Add new restriction",
"RescanAfterRefreshHelpText": "Rescan the movie folder after refreshing the movie",
"RescanAfterRefreshHelpTextWarning": "Radarr will not automatically detect changes to files when not set to 'Always'",
"RescanMovieFolderAfterRefresh": "Rescan Movie Folder after Refresh",
@ -532,6 +577,7 @@
"RestartNow": "Restart Now",
"RestartRadarr": "Restart Radarr",
"RestartRequiredHelpTextWarning": "Requires restart to take effect",
"Restore": "Restore",
"RestoreBackup": "Restore Backup",
"Restrictions": "Restrictions",
"Result": "Result",
@ -629,6 +675,7 @@
"SSLCertPathHelpText": "Path to pfx file",
"SSLPort": "SSL Port",
"StandardMovieFormat": "Standard Movie Format",
"StartTypingOrSelectAPathBelow": "Start typing or select a path below",
"StartupDirectory": "Startup directory",
"Status": "Status",
"Studio": "Studio",
@ -641,6 +688,7 @@
"TableOptions": "Table Options",
"TableOptionsColumnsMessage": "Choose which columns are visible and which order they appear in",
"TagCannotBeDeletedWhileInUse": "Cannot be deleted while in use",
"TagIsNotUsedAndCanBeDeleted": "Tag is not used and can be deleted",
"Tags": "Tags",
"TagsHelpText": "Applies to movies with at least one matching tag",
"TagsSettingsSummary": "See all tags and how they are used. Unused tags can be removed",
@ -650,6 +698,7 @@
"TestAllClients": "Test All Clients",
"TestAllIndexers": "Test All Indexers",
"TestAllLists": "Test All Lists",
"ThisConditionMatchesUsingRegularExpressions": "This condition matches using Regular Expressions. Note that the characters {0} have special meanings and need escaping with a {1}",
"Time": "Time",
"TimeFormat": "Time Format",
"Timeleft": "Timeleft",
@ -666,24 +715,49 @@
"UI": "UI",
"UISettings": "UI Settings",
"UISettingsSummary": "Calendar, date and color impaired options",
"UnableToAddANewConditionPleaseTryAgain": "Unable to add a new condition, please try again.",
"UnableToAddANewCustomFormatPleaseTryAgain": "Unable to add a new custom format, please try again.",
"UnableToAddANewDownloadClientPleaseTryAgain": "Unable to add a new download client, please try again.",
"UnableToAddANewIndexerPleaseTryAgain": "Unable to add a new indexer, please try again.",
"UnableToAddANewListExclusionPleaseTryAgain": "Unable to add a new list exclusion, please try again.",
"UnableToAddANewListPleaseTryAgain": "Unable to add a new list, please try again.",
"UnableToAddANewNotificationPleaseTryAgain": "Unable to add a new notification, please try again.",
"UnableToAddANewQualityProfilePleaseTryAgain": "Unable to add a new quality profile, please try again.",
"UnableToAddANewRemotePathMappingPleaseTryAgain": "Unable to add a new remote path mapping, please try again.",
"UnableToLoadBackups": "Unable to load backups",
"UnableToLoadBlacklist": "Unable to load blacklist",
"UnableToLoadCustomFormats": "Unable to load Custom Formats",
"UnableToLoadDelayProfiles": "Unable to load Delay Profiles",
"UnableToLoadDownloadClientOptions": "Unable to load download client options",
"UnableToLoadDownloadClients": "Unable to load download clients",
"UnableToLoadGeneralSettings": "Unable to load General settings",
"UnableToLoadHistory": "Unable to load history",
"UnableToLoadIndexerOptions": "Unable to load indexer options",
"UnableToLoadIndexers": "Unable to load Indexers",
"UnableToLoadLanguages": "Unable to load languages",
"UnableToLoadListExclusions": "Unable to load List Exclusions",
"UnableToLoadListOptions": "Unable to load list options",
"UnableToLoadLists": "Unable to load Lists",
"UnableToLoadMediaManagementSettings": "Unable to load Media Management settings",
"UnableToLoadMetadata": "Unable to load Metadata",
"UnableToLoadMovies": "Unable to load movies",
"UnableToLoadNamingSettings": "Unable to load Naming settings",
"UnableToLoadNotifications": "Unable to load Notifications",
"UnableToLoadQualities": "Unable to load qualities",
"UnableToLoadQualityDefinitions": "Unable to load Quality Definitions",
"UnableToLoadQualityProfiles": "Unable to load Quality Profiles",
"UnableToLoadRemotePathMappings": "Unable to load Remote Path Mappings",
"UnableToLoadRestrictions": "Unable to load Restrictions",
"UnableToLoadRootFolders": "Unable to load root folders",
"UnableToLoadTags": "Unable to load Tags",
"UnableToLoadTheCalendar": "Unable to load the calendar",
"UnableToLoadUISettings": "Unable to load UI settings",
"Unavailable": "Unavailable",
"Ungroup": "Ungroup",
"UnmappedFolders": "Unmapped Folders",
"Unmonitored": "Unmonitored",
"UnmonitoredHelpText": "Include unmonitored movies in the iCal feed",
"Unreleased": "Unreleased",
"UnsavedChanges": "Unsaved Changes",
"UnselectAll": "Unselect All",
"UpdateAll": "Update All",
@ -709,6 +783,7 @@
"Version": "Version",
"VideoCodec": "Video Codec",
"View": "View",
"VisitGithubCustomFormatsAphrodite": "Visit Github for more details: ",
"WaitingToImport": "Waiting to Import",
"WaitingToProcess": "Waiting to Process",
"Wanted": "Wanted",
@ -718,5 +793,6 @@
"WhitelistedHardcodedSubsHelpText": "Subtitle tags set here will not be considered hardcoded",
"WhitelistedSubtitleTags": "Whitelisted Subtitle Tags",
"Year": "Year",
"YesCancel": "Yes, Cancel"
"YesCancel": "Yes, Cancel",
"YouCanAlsoSearch": "You can also search using TMDb ID or IMDb ID of a movie. eg. tmdb:71663"
}