1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-09-17 15:02:34 +02:00

More Translations, Column Headings, Settings page

This commit is contained in:
Qstick 2020-07-19 11:42:03 -04:00
parent fc7091ef0c
commit 9603f9fdb5
14 changed files with 162 additions and 109 deletions

View File

@ -102,7 +102,7 @@ class CalendarPage extends Component {
<PageToolbar> <PageToolbar>
<PageToolbarSection> <PageToolbarSection>
<PageToolbarButton <PageToolbarButton
label="iCal Link" label={translate('iCalLink')}
iconName={icons.CALENDAR} iconName={icons.CALENDAR}
onPress={this.onGetCalendarLinkPress} onPress={this.onGetCalendarLinkPress}
/> />
@ -110,14 +110,14 @@ class CalendarPage extends Component {
<PageToolbarSeparator /> <PageToolbarSeparator />
<PageToolbarButton <PageToolbarButton
label={translate('RSSSync')} label={translate('RssSync')}
iconName={icons.RSS} iconName={icons.RSS}
isSpinning={isRssSyncExecuting} isSpinning={isRssSyncExecuting}
onPress={onRssSyncPress} onPress={onRssSyncPress}
/> />
<PageToolbarButton <PageToolbarButton
label="Search for Missing" label={translate('SearchForMissing')}
iconName={icons.SEARCH} iconName={icons.SEARCH}
isDisabled={!missingMovieIds.length} isDisabled={!missingMovieIds.length}
isSpinning={isSearchingForMissing} isSpinning={isSearchingForMissing}
@ -155,7 +155,7 @@ class CalendarPage extends Component {
{ {
movieError && movieError &&
<div className={styles.errorMessage}> <div className={styles.errorMessage}>
{getErrorMessage(movieError, 'Failed to load movie from API')} {getErrorMessage(movieError, 'Failed to load movies from API')}
</div> </div>
} }

View File

@ -117,7 +117,7 @@ const links = [
to: '/settings/general' to: '/settings/general'
}, },
{ {
title: translate('UI'), title: translate('Ui'),
to: '/settings/ui' to: '/settings/ui'
} }
] ]

View File

@ -352,15 +352,15 @@ class MovieIndex extends Component {
const isLoaded = !!(!error && isPopulated && items.length && scroller); const isLoaded = !!(!error && isPopulated && items.length && scroller);
const hasNoMovie = !totalItems; const hasNoMovie = !totalItems;
const searchIndexLabel = selectedFilterKey === 'all' ? translate('SearchAll') : 'Search Filtered'; const searchIndexLabel = selectedFilterKey === 'all' ? translate('SearchAll') : translate('SearchFiltered');
const searchEditorLabel = selectedMovieIds.length > 0 ? 'Search Selected' : translate('SearchAll'); const searchEditorLabel = selectedMovieIds.length > 0 ? translate('SearchSelected') : translate('SearchAll');
return ( return (
<PageContent> <PageContent>
<PageToolbar> <PageToolbar>
<PageToolbarSection> <PageToolbarSection>
<PageToolbarButton <PageToolbarButton
label={isMovieEditorActive && selectedMovieIds.length > 0 ? 'Update Selected' : translate('UpdateAll')} label={isMovieEditorActive && selectedMovieIds.length > 0 ? translate('UpdateSelected') : translate('UpdateAll')}
iconName={icons.REFRESH} iconName={icons.REFRESH}
spinningName={icons.REFRESH} spinningName={icons.REFRESH}
isSpinning={isRefreshingMovie} isSpinning={isRefreshingMovie}
@ -588,7 +588,7 @@ class MovieIndex extends Component {
<ConfirmModal <ConfirmModal
isOpen={isConfirmSearchModalOpen} isOpen={isConfirmSearchModalOpen}
kind={kinds.DANGER} kind={kinds.DANGER}
title="Mass Movie Search" title={translate('MassMovieSearch')}
message={ message={
<div> <div>
<div> <div>
@ -599,7 +599,7 @@ class MovieIndex extends Component {
</div> </div>
</div> </div>
} }
confirmLabel="Search" confirmLabel={translate('Search')}
onConfirm={this.onSearchConfirmed} onConfirm={this.onSearchConfirmed}
onCancel={this.onConfirmSearchModalClose} onCancel={this.onConfirmSearchModalClose}
/> />

View File

@ -18,33 +18,33 @@ function Settings() {
className={styles.link} className={styles.link}
to="/settings/mediamanagement" to="/settings/mediamanagement"
> >
Media Management {translate('MediaManagement')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Naming and file management settings {translate('MediaManagementSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/profiles" to="/settings/profiles"
> >
Profiles {translate('Profiles')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Quality, Language and Delay profiles {translate('ProfilesSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/quality" to="/settings/quality"
> >
Quality {translate('Quality')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Quality sizes and naming {translate('QualitySettingsSummary')}
</div> </div>
<Link <Link
@ -55,40 +55,40 @@ function Settings() {
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Custom Formats and Settings {translate('CustomFormatsSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/indexers" to="/settings/indexers"
> >
Indexers {translate('Indexers')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Indexers and release restrictions {translate('IndexersSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/downloadclients" to="/settings/downloadclients"
> >
Download Clients {translate('DownloadClients')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Download clients, download handling and remote path mappings {translate('DownloadClientsSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/netimports" to="/settings/netimports"
> >
Lists {translate('Lists')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Import Lists, list exclusions {translate('ListsSettingsSummary')}
</div> </div>
<Link <Link
@ -99,51 +99,51 @@ function Settings() {
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Notifications, connections to media servers/players and custom scripts {translate('ConnectSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/metadata" to="/settings/metadata"
> >
Metadata {translate('Metadata')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Create metadata files when movies are imported or refreshed {translate('MetadataSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/tags" to="/settings/tags"
> >
Tags {translate('Tags')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
See all tags and how they are used. Unused tags can be removed {translate('TagsSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/general" to="/settings/general"
> >
General {translate('General')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Port, SSL, username/password, proxy, analytics and updates {translate('GeneralSettingsSummary')}
</div> </div>
<Link <Link
className={styles.link} className={styles.link}
to="/settings/ui" to="/settings/ui"
> >
UI {translate('Ui')}
</Link> </Link>
<div className={styles.summary}> <div className={styles.summary}>
Calendar, date and color impaired options {translate('UiSettingsSummary')}
</div> </div>
</PageContentBody> </PageContentBody>
</PageContent> </PageContent>

View File

@ -29,31 +29,31 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'movies.sortTitle', name: 'movies.sortTitle',
label: 'Movie Title', label: translate('MovieTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'sourceTitle', name: 'sourceTitle',
label: 'Source Title', label: translate('SourceTitle'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'languages', name: 'languages',
label: 'Language', label: translate('Languages'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: 'Quality', label: translate('Quality'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'customFormats', name: 'customFormats',
label: 'Formats', label: translate('Formats'),
isSortable: false, isSortable: false,
isVisible: true isVisible: true
}, },
@ -65,13 +65,13 @@ export const defaultState = {
}, },
{ {
name: 'indexer', name: 'indexer',
label: 'Indexer', label: translate('Indexer'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: 'Actions', columnLabel: translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View File

@ -61,7 +61,7 @@ export const defaultState = {
}, },
{ {
key: 'monitored', key: 'monitored',
label: 'Monitored Only', label: translate('MonitoredOnly'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',

View File

@ -66,57 +66,57 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'status', name: 'status',
columnLabel: 'Status', columnLabel: translate('Status'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'sortTitle', name: 'sortTitle',
label: 'Movie Title', label: translate('MovieTitle'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'studio', name: 'studio',
label: 'Studio', label: translate('Studio'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'inCinemas', name: 'inCinemas',
label: 'In Cinemas', label: translate('InCinemas'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'physicalRelease', name: 'physicalRelease',
label: 'Physical Release', label: translate('PhysicalRelease'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'genres', name: 'genres',
label: 'Genres', label: translate('Genres'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'ratings', name: 'ratings',
label: 'Rating', label: translate('Ratings'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'certification', name: 'certification',
label: 'Certification', label: translate('Certification'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: 'Actions', columnLabel: translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View File

@ -30,31 +30,31 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'eventType', name: 'eventType',
columnLabel: 'Event Type', columnLabel: translate('EventType'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'movies.sortTitle', name: 'movies.sortTitle',
label: 'Movie', label: translate('Movie'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'languages', name: 'languages',
label: 'Language', label: translate('Languages'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: 'Quality', label: translate('Quality'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'customFormats', name: 'customFormats',
label: 'Formats', label: translate('Formats'),
isSortable: false, isSortable: false,
isVisible: true isVisible: true
}, },
@ -66,22 +66,22 @@ export const defaultState = {
}, },
{ {
name: 'downloadClient', name: 'downloadClient',
label: 'Download Client', label: translate('DownloadClient'),
isVisible: false isVisible: false
}, },
{ {
name: 'indexer', name: 'indexer',
label: 'Indexer', label: translate('Indexer'),
isVisible: false isVisible: false
}, },
{ {
name: 'releaseGroup', name: 'releaseGroup',
label: 'Release Group', label: translate('ReleaseGroup'),
isVisible: false isVisible: false
}, },
{ {
name: 'details', name: 'details',
columnLabel: 'Details', columnLabel: translate('Details'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }
@ -97,7 +97,7 @@ export const defaultState = {
}, },
{ {
key: 'grabbed', key: 'grabbed',
label: 'Grabbed', label: translate('Grabbed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -108,7 +108,7 @@ export const defaultState = {
}, },
{ {
key: 'imported', key: 'imported',
label: 'Imported', label: translate('Imported'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -119,7 +119,7 @@ export const defaultState = {
}, },
{ {
key: 'failed', key: 'failed',
label: 'Failed', label: translate('Failed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -130,7 +130,7 @@ export const defaultState = {
}, },
{ {
key: 'deleted', key: 'deleted',
label: 'Deleted', label: translate('Deleted'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -141,7 +141,7 @@ export const defaultState = {
}, },
{ {
key: 'renamed', key: 'renamed',
label: 'Renamed', label: translate('Renamed'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',
@ -152,7 +152,7 @@ export const defaultState = {
}, },
{ {
key: 'ignored', key: 'ignored',
label: 'Ignored', label: translate('Ignored'),
filters: [ filters: [
{ {
key: 'eventType', key: 'eventType',

View File

@ -27,7 +27,7 @@ export const filters = [
}, },
{ {
key: 'monitored', key: 'monitored',
label: 'Monitored Only', label: translate('MonitoredOnly'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -38,7 +38,7 @@ export const filters = [
}, },
{ {
key: 'unmonitored', key: 'unmonitored',
label: 'Unmonitored Only', label: translate('Unmonitored'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -49,7 +49,7 @@ export const filters = [
}, },
{ {
key: 'missing', key: 'missing',
label: 'Missing', label: translate('Missing'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -65,7 +65,7 @@ export const filters = [
}, },
{ {
key: 'wanted', key: 'wanted',
label: 'Wanted', label: translate('Wanted'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',
@ -86,7 +86,7 @@ export const filters = [
}, },
{ {
key: 'cutoffunmet', key: 'cutoffunmet',
label: 'Cut-off Unmet', label: translate('CutoffUnmet'),
filters: [ filters: [
{ {
key: 'monitored', key: 'monitored',

View File

@ -10,6 +10,7 @@ import { createThunk, handleThunks } from 'Store/thunks';
import createHandleActions from './Creators/createHandleActions'; import createHandleActions from './Creators/createHandleActions';
import { set, updateItem } from './baseActions'; import { set, updateItem } from './baseActions';
import { filters, filterPredicates, sortPredicates } from './movieActions'; import { filters, filterPredicates, sortPredicates } from './movieActions';
import translate from 'Utilities/String/translate';
// //
// Variables // Variables
@ -65,123 +66,123 @@ export const defaultState = {
}, },
{ {
name: 'status', name: 'status',
columnLabel: 'Release Status', columnLabel: translate('ReleaseStatus'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'sortTitle', name: 'sortTitle',
label: 'Movie Title', label: translate('MovieTitle'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'collection', name: 'collection',
label: 'Collection', label: translate('Collection'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'studio', name: 'studio',
label: 'Studio', label: translate('Studio'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'qualityProfileId', name: 'qualityProfileId',
label: 'Quality Profile', label: translate('QualityProfile'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'added', name: 'added',
label: 'Added', label: translate('Added'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'year', name: 'year',
label: 'Year', label: translate('Year'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'inCinemas', name: 'inCinemas',
label: 'In Cinemas', label: translate('InCinemas'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'digitalRelease', name: 'digitalRelease',
label: 'Digital Release', label: translate('DigitalRelease'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'physicalRelease', name: 'physicalRelease',
label: 'Physical Release', label: translate('PhysicalRelease'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'runtime', name: 'runtime',
label: 'Runtime', label: translate('Runtime'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'minimumAvailability', name: 'minimumAvailability',
label: 'Min Availability', label: translate('MinAvailability'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'path', name: 'path',
label: 'Path', label: translate('Path'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'sizeOnDisk', name: 'sizeOnDisk',
label: 'Size on Disk', label: translate('SizeOnDisk'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'genres', name: 'genres',
label: 'Genres', label: translate('Genres'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'movieStatus', name: 'movieStatus',
label: 'Status', label: translate('Status'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'ratings', name: 'ratings',
label: 'Rating', label: translate('Ratings'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'certification', name: 'certification',
label: 'Certification', label: translate('Certification'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'tags', name: 'tags',
label: 'Tags', label: translate('Tags'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: 'Actions', columnLabel: translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View File

@ -11,6 +11,7 @@ import createFetchHandler from './Creators/createFetchHandler';
import createHandleActions from './Creators/createHandleActions'; import createHandleActions from './Creators/createHandleActions';
import createServerSideCollectionHandlers from './Creators/createServerSideCollectionHandlers'; import createServerSideCollectionHandlers from './Creators/createServerSideCollectionHandlers';
import { set, updateItem } from './baseActions'; import { set, updateItem } from './baseActions';
import translate from 'Utilities/String/translate';
// //
// Variables // Variables
@ -57,86 +58,86 @@ export const defaultState = {
columns: [ columns: [
{ {
name: 'status', name: 'status',
columnLabel: 'Status', columnLabel: translate('Status'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
}, },
{ {
name: 'movies.sortTitle', name: 'movies.sortTitle',
label: 'Movie', label: translate('Movie'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'languages', name: 'languages',
label: 'Languages', label: translate('Languages'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'quality', name: 'quality',
label: 'Quality', label: translate('Quality'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'customFormats', name: 'customFormats',
label: 'Formats', label: translate('Formats'),
isSortable: false, isSortable: false,
isVisible: true isVisible: true
}, },
{ {
name: 'protocol', name: 'protocol',
label: 'Protocol', label: translate('Protocol'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'indexer', name: 'indexer',
label: 'Indexer', label: translate('Indexer'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'downloadClient', name: 'downloadClient',
label: 'Download Client', label: translate('DownloadClient'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'size', name: 'size',
label: 'Size', label: translate('Size'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'title', name: 'title',
label: 'Release Title', label: translate('ReleaseTitle'),
isSortable: true, isSortable: true,
isVisible: false isVisible: false
}, },
{ {
name: 'outputPath', name: 'outputPath',
label: 'Output Path', label: translate('OutputPath'),
isSortable: false, isSortable: false,
isVisible: false isVisible: false
}, },
{ {
name: 'estimatedCompletionTime', name: 'estimatedCompletionTime',
label: 'Timeleft', label: translate('Timeleft'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'progress', name: 'progress',
label: 'Progress', label: translate('Progress'),
isSortable: true, isSortable: true,
isVisible: true isVisible: true
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: 'Actions', columnLabel: translate('Actions'),
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false
} }

View File

@ -108,7 +108,7 @@ export const defaultState = {
}, },
{ {
name: 'actions', name: 'actions',
columnLabel: 'Actions', columnLabel: translate('Actions'),
isSortable: true, isSortable: true,
isVisible: true, isVisible: true,
isModifiable: false isModifiable: false

View File

@ -19,12 +19,12 @@ import translate from 'Utilities/String/translate';
const columns = [ const columns = [
{ {
name: 'filename', name: 'filename',
label: 'Filename', label: translate('Filename'),
isVisible: true isVisible: true
}, },
{ {
name: 'lastWriteTime', name: 'lastWriteTime',
label: 'Last Write Time', label: translate('LastWriteTime'),
isVisible: true isVisible: true
}, },
{ {
@ -67,7 +67,7 @@ class LogFiles extends Component {
/> />
<PageToolbarButton <PageToolbarButton
label={translate('Clear')} label={translate('Delete')}
iconName={icons.CLEAR} iconName={icons.CLEAR}
isSpinning={deleteFilesExecuting} isSpinning={deleteFilesExecuting}
onPress={onDeleteFilesPress} onPress={onDeleteFilesPress}

View File

@ -1,6 +1,8 @@
{ {
"About": "About", "About": "About",
"Actions": "Actions",
"Activity": "Activity", "Activity": "Activity",
"Added": "Added",
"AddExclusion": "Add Exclusion", "AddExclusion": "Add Exclusion",
"AddMovies": "Add Movies", "AddMovies": "Add Movies",
"AddNew": "Add New", "AddNew": "Add New",
@ -16,33 +18,46 @@
"Blacklist": "Blacklist", "Blacklist": "Blacklist",
"Calendar": "Calendar", "Calendar": "Calendar",
"Cast": "Cast", "Cast": "Cast",
"Certification": "Certification",
"ChooseAnotherFolder": "Choose another Folder", "ChooseAnotherFolder": "Choose another Folder",
"Clear": "Clear", "Clear": "Clear",
"Collection": "Collection",
"CompletedDownloadHandling": "Completed Download Handling", "CompletedDownloadHandling": "Completed Download Handling",
"Connect": "Connect", "Connect": "Connect",
"Connections": "Connections", "Connections": "Connections",
"ConnectSettingsSummary": "Notifications, connections to media servers/players and custom scripts",
"Crew": "Crew", "Crew": "Crew",
"CustomFilters": "Custom Filters", "CustomFilters": "Custom Filters",
"CustomFormats": "Custom Formats", "CustomFormats": "Custom Formats",
"CustomFormatsSettingsSummary": "Custom Formats and Settings",
"CutoffUnmet": "Cut-off Unmet",
"Date": "Date", "Date": "Date",
"Dates": "Dates", "Dates": "Dates",
"Day": "Day", "Day": "Day",
"DelayProfiles": "Delay Profiles", "DelayProfiles": "Delay Profiles",
"Delete": "Delete", "Delete": "Delete",
"Deleted": "Deleted",
"Details": "Details",
"DigitalRelease": "Digital Release",
"Discover": "Discover", "Discover": "Discover",
"DiskSpace": "Disk Space", "DiskSpace": "Disk Space",
"DotNetVersionCheckNotRecommendedMessage": "Currently installed .Net Framework {0} is supported but we recommend upgrading to at least {1}.", "DotNetVersionCheckNotRecommendedMessage": "Currently installed .Net Framework {0} is supported but we recommend upgrading to at least {1}.",
"DotNetVersionCheckOldUnsupportedMessage": "Currently installed .Net Framework {0} is old and unsupported. Please upgrade the .Net Framework to at least {1}.", "DotNetVersionCheckOldUnsupportedMessage": "Currently installed .Net Framework {0} is old and unsupported. Please upgrade the .Net Framework to at least {1}.",
"DownloadClient": "Download Client",
"DownloadClientCheckNoneAvailableMessage": "No download client is available", "DownloadClientCheckNoneAvailableMessage": "No download client is available",
"DownloadClientCheckUnableToCommunicateMessage": "Unable to communicate with {0}.", "DownloadClientCheckUnableToCommunicateMessage": "Unable to communicate with {0}.",
"DownloadClients": "Download Clients", "DownloadClients": "Download Clients",
"DownloadClientsSettingsSummary": "Download clients, download handling and remote path mappings",
"DownloadClientStatusCheckAllClientMessage": "All download clients are unavailable due to failures", "DownloadClientStatusCheckAllClientMessage": "All download clients are unavailable due to failures",
"DownloadClientStatusCheckSingleClientMessage": "Download clients unavailable due to failures: {0}", "DownloadClientStatusCheckSingleClientMessage": "Download clients unavailable due to failures: {0}",
"Downloaded": "Downloaded", "Downloaded": "Downloaded",
"Edit": "Edit", "Edit": "Edit",
"Events": "Events", "Events": "Events",
"EventType": "Event Type",
"Failed": "Failed",
"FailedDownloadHandling": "Failed Download Handling", "FailedDownloadHandling": "Failed Download Handling",
"FileManagement": "File Management", "FileManagement": "File Management",
"Filename": "Filename",
"Files": "Files", "Files": "Files",
"Filesize": "Filesize", "Filesize": "Filesize",
"Filter": "Filter", "Filter": "Filter",
@ -51,41 +66,55 @@
"Formats": "Formats", "Formats": "Formats",
"FreeSpace": "Free Space", "FreeSpace": "Free Space",
"General": "General", "General": "General",
"GeneralSettingsSummary": "Port, SSL, username/password, proxy, analytics and updates",
"Genres": "Genres",
"Grabbed": "Grabbed",
"GrabSelected": "Grab Selected", "GrabSelected": "Grab Selected",
"Health": "Health", "Health": "Health",
"HideAdvanced": "Hide Advanced", "HideAdvanced": "Hide Advanced",
"History": "History", "History": "History",
"Host": "Host", "Host": "Host",
"iCalLink": "iCal Link", "iCalLink": "iCal Link",
"Ignored": "Ignored",
"Import": "Import", "Import": "Import",
"Imported": "Imported",
"ImportFirstTip": "Make sure that your files include the quality in their filenames. eg.", "ImportFirstTip": "Make sure that your files include the quality in their filenames. eg.",
"ImportHeader": "Import movies you already have", "ImportHeader": "Import movies you already have",
"ImportMechanismHealthCheckMessage": "Enable Completed Download Handling", "ImportMechanismHealthCheckMessage": "Enable Completed Download Handling",
"ImportSecondTip": "Point Radarr to the folder containing all of your movies, not a specific one. eg.", "ImportSecondTip": "Point Radarr to the folder containing all of your movies, not a specific one. eg.",
"ImportTipsMessage": "Some tips to ensure the import goes smoothly:", "ImportTipsMessage": "Some tips to ensure the import goes smoothly:",
"InCinemas": "In Cinemas",
"Indexer": "Indexer",
"IndexerRssHealthCheckNoAvailableIndexers": "All rss-capable indexers are temporarily unavailable due to recent indexer errors", "IndexerRssHealthCheckNoAvailableIndexers": "All rss-capable indexers are temporarily unavailable due to recent indexer errors",
"IndexerRssHealthCheckNoIndexers": "No indexers available with RSS sync enabled, Radarr will not grab new releases automatically", "IndexerRssHealthCheckNoIndexers": "No indexers available with RSS sync enabled, Radarr will not grab new releases automatically",
"Indexers": "Indexers", "Indexers": "Indexers",
"IndexerSearchCheckNoAutomaticMessage": "No indexers available with Automatic Search enabled, Radarr will not provide any automatic search results", "IndexerSearchCheckNoAutomaticMessage": "No indexers available with Automatic Search enabled, Radarr will not provide any automatic search results",
"IndexerSearchCheckNoAvailableIndexersMessage": "All search-capable indexers are temporarily unavailable due to recent indexer errors", "IndexerSearchCheckNoAvailableIndexersMessage": "All search-capable indexers are temporarily unavailable due to recent indexer errors",
"IndexerSearchCheckNoInteractiveMessage": "No indexers available with Interactive Search enabled, Radarr will not provide any interactive search results", "IndexerSearchCheckNoInteractiveMessage": "No indexers available with Interactive Search enabled, Radarr will not provide any interactive search results",
"IndexersSettingsSummary": "Indexers and release restrictions",
"IndexerStatusCheckAllClientMessage": "All indexers are unavailable due to failures", "IndexerStatusCheckAllClientMessage": "All indexers are unavailable due to failures",
"IndexerStatusCheckSingleClientMessage": "Indexers unavailable due to failures: {0}", "IndexerStatusCheckSingleClientMessage": "Indexers unavailable due to failures: {0}",
"Language": "Language", "Language": "Language",
"Languages": "Languages", "Languages": "Languages",
"LastWriteTime": "Last Write Time",
"ListExclusions": "List Exclusions", "ListExclusions": "List Exclusions",
"Lists": "Lists", "Lists": "Lists",
"ListsSettingsSummary": "Import Lists, list exclusions",
"LogFiles": "LogFiles", "LogFiles": "LogFiles",
"LogFilesLocationMessage": "Log files are located in:", "LogFilesLocationMessage": "Log files are located in:",
"Logging": "Logging", "Logging": "Logging",
"ManualImport": "Manual Import", "ManualImport": "Manual Import",
"MassMovieSearch": "Mass Movie Search",
"MediaInfoDllCheckMessage": "MediaInfo Library could not be loaded {0}", "MediaInfoDllCheckMessage": "MediaInfo Library could not be loaded {0}",
"MediaManagement": "Media Management", "MediaManagement": "Media Management",
"MediaManagementSettingsSummary": "Naming and file management settings",
"Metadata": "Metadata", "Metadata": "Metadata",
"MetadataSettingsSummary": "Create metadata files when movies are imported or refreshed",
"MinAvailability": "Min Availability", "MinAvailability": "Min Availability",
"MinimumAvailability": "MinimumAvailability", "MinimumAvailability": "MinimumAvailability",
"Missing": "Missing", "Missing": "Missing",
"Monitor": "Monitor", "Monitor": "Monitor",
"MonitoredOnly": "Monitored Only",
"MonoNotNetCoreCheckMessage": "Please upgrade to the .NET Core version of Radarr", "MonoNotNetCoreCheckMessage": "Please upgrade to the .NET Core version of Radarr",
"MonoTlsCheckMessage": "Radarr Mono 4.x tls workaround still enabled, consider removing MONO_TLS_PROVIDER=legacy environment option", "MonoTlsCheckMessage": "Radarr Mono 4.x tls workaround still enabled, consider removing MONO_TLS_PROVIDER=legacy environment option",
"Month": "Month", "Month": "Month",
@ -96,14 +125,20 @@
"MovieIndex": "Movie Index", "MovieIndex": "Movie Index",
"MovieNaming": "Movie Naming", "MovieNaming": "Movie Naming",
"Movies": "Movies", "Movies": "Movies",
"MovieTitle": "Movie Title",
"NetImportStatusCheckAllClientMessage": "All lists are unavailable due to failures", "NetImportStatusCheckAllClientMessage": "All lists are unavailable due to failures",
"NetImportStatusCheckSingleClientMessage": "Lists unavailable due to failures: {0}", "NetImportStatusCheckSingleClientMessage": "Lists unavailable due to failures: {0}",
"NoChange": "No Change", "NoChange": "No Change",
"NoChanges": "No Changes", "NoChanges": "No Changes",
"Options": "Options", "Options": "Options",
"OutputPath": "Output Path",
"Path": "Path", "Path": "Path",
"PhysicalRelease": "Physical Release",
"PreviewRename": "Preview Rename", "PreviewRename": "Preview Rename",
"Profiles": "Profiles", "Profiles": "Profiles",
"ProfilesSettingsSummary": "Quality, Language and Delay profiles",
"Progress": "Progress",
"Protocol": "Protocol",
"Proxy": "Proxy", "Proxy": "Proxy",
"ProxyCheckBadRequestMessage": "Failed to test proxy. StatusCode: {0}", "ProxyCheckBadRequestMessage": "Failed to test proxy. StatusCode: {0}",
"ProxyCheckFailedToTestMessage": "Failed to test proxy: {0}", "ProxyCheckFailedToTestMessage": "Failed to test proxy: {0}",
@ -113,15 +148,21 @@
"QualityDefinitions": "Quality Definitions", "QualityDefinitions": "Quality Definitions",
"QualityProfile": "Quality Profile", "QualityProfile": "Quality Profile",
"QualityProfiles": "Quality Profiles", "QualityProfiles": "Quality Profiles",
"QualitySettingsSummary": "Quality sizes and naming",
"Queue": "Queue", "Queue": "Queue",
"Ratings": "Ratings",
"Refresh": "Refresh", "Refresh": "Refresh",
"RefreshAndScan": "Refresh & Scan", "RefreshAndScan": "Refresh & Scan",
"ReleaseBranchCheckOfficialBranchMessage": "Branch {0} is not a valid Radarr release branch, you will not receive updates", "ReleaseBranchCheckOfficialBranchMessage": "Branch {0} is not a valid Radarr release branch, you will not receive updates",
"ReleaseBranchCheckPreviousVersionMessage": "Branch {0} is for a previous version of Radarr, set branch to 'Aphrodite' for further updates", "ReleaseBranchCheckPreviousVersionMessage": "Branch {0} is for a previous version of Radarr, set branch to 'Aphrodite' for further updates",
"ReleaseGroup": "Release Group",
"ReleaseStatus": "Release Status",
"ReleaseTitle": "Release Title",
"RemotePathMappings": "Remote Path Mappings", "RemotePathMappings": "Remote Path Mappings",
"RemovedMovieCheckMultipleMessage": "Movies {0} were removed from TMDb", "RemovedMovieCheckMultipleMessage": "Movies {0} were removed from TMDb",
"RemovedMovieCheckSingleMessage": "Movie {0} was removed from TMDb", "RemovedMovieCheckSingleMessage": "Movie {0} was removed from TMDb",
"RemoveSelected": "Remove Selected", "RemoveSelected": "Remove Selected",
"Renamed": "Renamed",
"RenameFiles": "Rename Files", "RenameFiles": "Rename Files",
"RestoreBackup": "Restore Backup", "RestoreBackup": "Restore Backup",
"Restrictions": "Restrictions", "Restrictions": "Restrictions",
@ -130,6 +171,7 @@
"RootFolderCheckSingleMessage": "Missing root folder: {0}", "RootFolderCheckSingleMessage": "Missing root folder: {0}",
"RootFolders": "Root Folders", "RootFolders": "Root Folders",
"RSSSync": "RSS Sync", "RSSSync": "RSS Sync",
"Runtime": "Runtime",
"SaveChanges": "Save Changes", "SaveChanges": "Save Changes",
"Scheduled": "Scheduled", "Scheduled": "Scheduled",
"Search": "Search", "Search": "Search",
@ -142,15 +184,21 @@
"SetTags": "Set Tags", "SetTags": "Set Tags",
"Settings": "Settings", "Settings": "Settings",
"ShowAdvanced": "Show Advanced", "ShowAdvanced": "Show Advanced",
"Size": "Size",
"SizeOnDisk": "Size on Disk",
"Sort": "Sort", "Sort": "Sort",
"SourceTitle": "Source Title",
"Status": "Status", "Status": "Status",
"Studio": "Studio", "Studio": "Studio",
"Style": "Style", "Style": "Style",
"System": "System", "System": "System",
"Tags": "Tags", "Tags": "Tags",
"TagsSettingsSummary": "See all tags and how they are used. Unused tags can be removed",
"Tasks": "Tasks", "Tasks": "Tasks",
"Timeleft": "Timeleft",
"Titles": "Titles", "Titles": "Titles",
"UI": "UI", "UI": "UI",
"UISettingsSummary": "Calendar, date and color impaired options",
"UnmappedFolders": "Unmapped Folders", "UnmappedFolders": "Unmapped Folders",
"Unmonitored": "Unmonitored", "Unmonitored": "Unmonitored",
"UnselectAll": "Unselect All", "UnselectAll": "Unselect All",
@ -159,6 +207,9 @@
"UpdateCheckStartupTranslocationMessage": "Cannot install update because startup folder '{0}' is in an App Translocation folder.", "UpdateCheckStartupTranslocationMessage": "Cannot install update because startup folder '{0}' is in an App Translocation folder.",
"UpdateCheckUINotWritableMessage": "Cannot install update because UI folder '{0}' is not writable by the user '{1}'.", "UpdateCheckUINotWritableMessage": "Cannot install update because UI folder '{0}' is not writable by the user '{1}'.",
"Updates": "Updates", "Updates": "Updates",
"UpdateSelected": "Update Selected",
"View": "View", "View": "View",
"Week": "Week" "Wanted": "Wanted",
"Week": "Week",
"Year": "Year"
} }