Fixed: Added Various Missing Translations

cleanup en.json of unused translates

Fixes #1397

Closes Sonarr PR # 4791 'Fixed: Better wording of MissingFromDisk'
pull/1461/head
bakerboy448 3 years ago committed by ta264
parent bc3764dcda
commit 94adb4d582

@ -215,13 +215,13 @@ function HistoryDetails(props) {
switch (reason) {
case 'Manual':
reasonMessage = 'File was deleted by via UI';
reasonMessage = translate('FileWasDeletedByViaUI');
break;
case 'MissingFromDisk':
reasonMessage = 'Readarr was unable to find the file on disk so it was removed';
reasonMessage = translate('MissingFromDisk');
break;
case 'Upgrade':
reasonMessage = 'File was deleted to import an upgrade';
reasonMessage = translate('FileWasDeletedByUpgrade');
break;
default:
reasonMessage = '';

@ -223,14 +223,14 @@ class Queue extends Component {
{
!isRefreshing && hasError &&
<div>
Failed to load Queue
{translate('FailedToLoadQueue')}
</div>
}
{
isAllPopulated && !hasError && !items.length &&
<div>
Queue is empty
{translate('QueueIsEmpty')}
</div>
}

@ -39,7 +39,9 @@ function AppUpdatedModalContent(props) {
<div>
{
!update.changes &&
<div className={styles.maintenance}>Maintenance release</div>
<div className={styles.maintenance}>
{translate('MaintenanceRelease')}
</div>
}
{

@ -77,7 +77,7 @@ class DeleteBookModalContent extends Component {
type={inputTypes.CHECK}
name="deleteFiles"
value={deleteFiles}
helpText={'Delete book files'}
helpText={translate('DeleteFilesHelpText')}
kind={kinds.DANGER}
isDisabled={files.length === 0}
onChange={this.onDeleteFilesChange}

@ -8,6 +8,7 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { inputTypes } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import FilterBuilderRow from './FilterBuilderRow';
import styles from './FilterBuilderModalContent.css';
@ -165,7 +166,9 @@ class FilterBuilderModalContent extends Component {
</div>
</div>
<div className={styles.label}>Filters</div>
<div className={styles.label}>
{translate('Filters')}
</div>
<div className={styles.rows}>
{

@ -167,7 +167,9 @@ class AddNewItem extends Component {
{
!isFetching && !error && !items.length && !!term &&
<div className={styles.message}>
<div className={styles.noResults}>Couldn't find any results for '{term}'</div>
<div className={styles.noResults}>
{translate('CouldntFindAnyResultsForTerm', [term])}
</div>
<div>
You can also search using the
<Link to="https://goodreads.com"> Goodreads ID </Link>
@ -179,7 +181,9 @@ class AddNewItem extends Component {
{
!term &&
<div className={styles.message}>
<div className={styles.helpText}>It's easy to add a new author or book, just start typing the name of the item you want to add.</div>
<div className={styles.helpText}>
{translate('ItsEasyToAddANewAuthorOrBookJustStartTypingTheNameOfTheItemYouWantToAdd')}
</div>
<div>
You can also search using the
<Link to="https://goodreads.com"> Goodreads ID </Link>

@ -51,9 +51,15 @@ class RemotePathMappings extends Component {
{...otherProps}
>
<div className={styles.remotePathMappingsHeader}>
<div className={styles.host}>Host</div>
<div className={styles.path}>Remote Path</div>
<div className={styles.path}>Local Path</div>
<div className={styles.host}>
{translate('Host')}
</div>
<div className={styles.path}>
{translate('RemotePath')}
</div>
<div className={styles.path}>
{translate('LocalPath')}
</div>
</div>
<div>

@ -51,8 +51,12 @@ class ImportListExclusions extends Component {
{...otherProps}
>
<div className={styles.importListExclusionsHeader}>
<div className={styles.foreignId}>Foreign Id</div>
<div className={styles.name}>Name</div>
<div className={styles.foreignId}>
{translate('ForeignId')}
</div>
<div className={styles.name}>
{translate('Name')}
</div>
</div>
<div>

@ -73,10 +73,18 @@ class DelayProfiles extends Component {
{...otherProps}
>
<div className={styles.delayProfilesHeader}>
<div className={styles.column}>Protocol</div>
<div className={styles.column}>Usenet Delay</div>
<div className={styles.column}>Torrent Delay</div>
<div className={styles.tags}>Tags</div>
<div className={styles.column}>
{translate('Protocol')}
</div>
<div className={styles.column}>
{translate('UsenetDelay')}
</div>
<div className={styles.column}>
{translate('TorrentDelay')}
</div>
<div className={styles.tags}>
{translate('Tags')}
</div>
</div>
<div className={styles.delayProfiles}>

@ -25,9 +25,15 @@ class QualityDefinitions extends Component {
{...otherProps}
>
<div className={styles.header}>
<div className={styles.quality}>Quality</div>
<div className={styles.title}>Title</div>
<div className={styles.sizeLimit}>Size Limit</div>
<div className={styles.quality}>
{translate('Quality')}
</div>
<div className={styles.title}>
{translate('Title')}
</div>
<div className={styles.sizeLimit}>
{translate('SizeLimit')}
</div>
{
advancedSettings ?
<div className={styles.kilobitsPerSecond}>

@ -18,121 +18,121 @@ function Settings() {
className={styles.link}
to="/settings/mediamanagement"
>
Media Management
{translate('MediaManagement')}
</Link>
<div className={styles.summary}>
Naming, file management settings and root folders
{translate('MediaManagementSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/profiles"
>
Profiles
{translate('Profiles')}
</Link>
<div className={styles.summary}>
Quality, Metadata, Delay, and Release profiles
{translate('ProfilesSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/quality"
>
Quality
{translate('Quality')}
</Link>
<div className={styles.summary}>
Quality sizes and naming
{translate('QualitySettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/indexers"
>
Indexers
{translate('Indexers')}
</Link>
<div className={styles.summary}>
Indexers and indexer options
{translate('IndexersSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/downloadclients"
>
Download Clients
{translate('DownloadClients')}
</Link>
<div className={styles.summary}>
Download clients, download handling and remote path mappings
{translate('DownloadClientsSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/importlists"
>
Import Lists
{translate('Lists')}
</Link>
<div className={styles.summary}>
Import Lists
{translate('ListsSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/connect"
>
Connect
{translate('Connect')}
</Link>
<div className={styles.summary}>
Notifications, connections to media servers/players and custom scripts
{translate('ConnectSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/metadata"
>
Metadata
{translate('Metadata')}
</Link>
<div className={styles.summary}>
Create metadata files when books are imported or author are refreshed
{translate('MetadataSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/tags"
>
Tags
{translate('Tags')}
</Link>
<div className={styles.summary}>
Manage author, profile, restriction, and notification tags
{translate('TagsSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/general"
>
General
{translate('General')}
</Link>
<div className={styles.summary}>
Port, SSL, username/password, proxy, analytics and updates
{translate('GeneralSettingsSummary')}
</div>
<Link
className={styles.link}
to="/settings/ui"
>
UI
{translate('UI')}
</Link>
<div className={styles.summary}>
Calendar, date and color impaired options
{translate('UISettingsSummary')}
</div>
</PageContentBody>
</PageContent>

@ -113,9 +113,9 @@ export const defaultState = {
},
{
name: 'size',
label: 'Size',
label: translate('Size'),
isSortable: true,
isVisibile: false
isVisible: false
},
{
name: 'outputPath',
@ -454,4 +454,3 @@ export const reducers = createHandleActions({
})
}, defaultState, section);

@ -199,7 +199,7 @@ class QueuedTaskRow extends Component {
</span>
{
clientUserAgent ?
<span className={styles.userAgent} title="User-Agent provided by the app that called the API">
<span className={styles.userAgent} title={translate('UserAgentProvidedByTheAppThatCalledTheAPI')}>
from: {clientUserAgent}
</span> :
null

@ -15,27 +15,27 @@ const columns = [
},
{
name: 'commandName',
label: 'Name',
label: translate('Name'),
isVisible: true
},
{
name: 'queued',
label: 'Queued',
label: translate('Queued'),
isVisible: true
},
{
name: 'started',
label: 'Started',
label: translate('Started'),
isVisible: true
},
{
name: 'ended',
label: 'Ended',
label: translate('Ended'),
isVisible: true
},
{
name: 'duration',
label: 'Duration',
label: translate('Duration'),
isVisible: true
},
{

@ -1,4 +1,5 @@
import moment from 'moment';
import translate from 'Utilities/String/translate';
import formatTime from './formatTime';
import isToday from './isToday';
import isTomorrow from './isTomorrow';
@ -10,15 +11,15 @@ function getRelativeDay(date, includeRelativeDate) {
}
if (isYesterday(date)) {
return 'Yesterday, ';
return translate('Yesterday');
}
if (isToday(date)) {
return 'Today, ';
return translate('Today');
}
if (isTomorrow(date)) {
return 'Tomorrow, ';
return translate('Tomorrow');
}
return '';

@ -3,7 +3,6 @@
"45MinutesFourtyFive": "45 Minutes: {0}",
"60MinutesSixty": "60 Minutes: {0}",
"About": "About",
"Absolute": "Absolute",
"Actions": "Actions",
"AddedAuthorSettings": "Added Author Settings",
"AddImportListExclusionHelpText": "Prevent book from being added to Readarr by Import Lists or Author Refresh",
@ -26,8 +25,6 @@
"AllowFingerprintingHelpTextWarning": "This requires Readarr to read parts of the file which will slow down scans and may cause high disk or network activity.",
"AlreadyInYourLibrary": "Already in your library",
"AlternateTitles": "Alternate Titles",
"AlternateTitleslength1Title": "Title",
"AlternateTitleslength1Titles": "Titles",
"Analytics": "Analytics",
"AnalyticsEnabledHelpText": "Send anonymous usage and error information to Readarr's servers. This includes information on your browser, which Readarr WebUI pages you use, error reporting as well as OS and runtime version. We will use this information to prioritize features and bug fixes.",
"AnalyticsEnabledHelpTextWarning": "Requires restart to take effect",
@ -68,18 +65,14 @@
"BlocklistRelease": "Blocklist Release",
"Book": "Book",
"BookAvailableButMissing": "Book Available, but Missing",
"BookDownloaded": "Book Downloaded",
"BookEditor": "Book Editor",
"BookFileCountBookCountTotalTotalBookCountInterp": "{0} / {1} (Total: {2})",
"BookFileCounttotalBookCountBooksDownloadedInterp": "{0}/{1} books downloaded",
"BookFilesCountMessage": "No book files",
"BookHasNotAired": "Book has not aired",
"BookIndex": "Book Index",
"BookIsDownloading": "Book is downloading",
"BookIsDownloadingInterp": "Book is downloading - {0}% {1}",
"BookIsNotMonitored": "Book is not monitored",
"BookList": "Book List",
"BookMissingFromDisk": "Book missing from disk",
"BookMonitoring": "Book Monitoring",
"BookNaming": "Book Naming",
"Books": "Books",
@ -129,6 +122,7 @@
"Component": "Component",
"Connections": "Connections",
"ConnectSettings": "Connect Settings",
"ConnectSettingsSummary": "Notifications, connections to media servers/players and custom scripts",
"ConsoleLogLevel": "Console Log Level",
"Continuing": "Continuing",
"ContinuingAllBooksDownloaded": "Continuing (All books downloaded)",
@ -136,6 +130,7 @@
"ContinuingNoAdditionalBooksAreExpected": "No additional books are expected",
"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 Readarr's rename function as a work around.",
"CouldntFindAnyResultsForTerm": "Couldn't find any results for '{0}'",
"Country": "Country",
"CreateEmptyAuthorFolders": "Create empty author folders",
"CreateEmptyAuthorFoldersHelpText": "Create missing author folders during disk scan",
@ -186,7 +181,7 @@
"DeleteTagMessageText": "Are you sure you want to delete the tag '{0}'?",
"DestinationPath": "Destination Path",
"DetailedProgressBar": "Detailed Progress Bar",
"DetailedProgressBarHelpText": "Show text on progess bar",
"DetailedProgressBarHelpText": "Show text on progress bar",
"Development": "Development",
"Disabled": "Disabled",
"DiscCount": "Disc Count",
@ -225,8 +220,6 @@
"Ended": "Ended",
"EndedAllBooksDownloaded": "Ended (All books downloaded)",
"EntityName": "Entity Name",
"Episode": "Episode",
"EpisodeDoesNotHaveAnAbsoluteEpisodeNumber": "Episode does not have an absolute episode number",
"ErrorLoadingContents": "Error loading contents",
"ErrorLoadingPreviews": "Error loading previews",
"Exception": "Exception",
@ -236,6 +229,7 @@
"ExtraFileExtensionsHelpTexts1": "Comma separated list of extra files to import (.nfo will be imported as .nfo-orig)",
"ExtraFileExtensionsHelpTexts2": "Examples: \".sub, .nfo\" or \"sub,nfo\"",
"FailedDownloadHandling": "Failed Download Handling",
"FailedToLoadQueue": "Failed to load Queue",
"FileDateHelpText": "Change file date on import/rescan",
"FileDetails": "File Details",
"FileManagement": "File Management",
@ -243,9 +237,12 @@
"FileNames": "File Names",
"Files": "Files",
"FilesTotal": "Files ({0})",
"FileWasDeletedByUpgrade": "File was deleted to import an upgrade",
"FileWasDeletedByViaUI": "File was deleted via the UI",
"FilterAnalyticsEvents": "Filter Analytics Events",
"FilterAuthor": "Filter Author",
"FilterPlaceHolder": "Filter Book",
"Filters": "Filters",
"FilterSentryEventsHelpText": "Filter known user error events from being sent as Analytics",
"FirstBook": "First Book",
"FirstDayOfWeek": "First Day of Week",
@ -260,6 +257,7 @@
"FutureDays": "Future Days",
"FutureDaysHelpText": "Days for iCal feed to look into the future",
"GeneralSettings": "General Settings",
"GeneralSettingsSummary": "Port, SSL, username/password, proxy, analytics and updates",
"Global": "Global",
"GoToAuthorListing": "Go to author listing",
"GoToInterp": "Go to {0}",
@ -311,6 +309,7 @@
"IndexerPriority": "Indexer Priority",
"Indexers": "Indexers",
"IndexerSettings": "Indexer Settings",
"IndexersSettingsSummary": "Download clients, download handling and remote path mappings",
"Interval": "Interval",
"ISBN": "ISBN",
"IsCalibreLibraryHelpText": "Use Calibre Content Server to manipulate library",
@ -326,12 +325,14 @@
"IsShowingMonitoredMonitorSelected": "Monitor Selected",
"IsShowingMonitoredUnmonitorSelected": "Unmonitor Selected",
"IsTagUsedCannotBeDeletedWhileInUse": "Cannot be deleted while in use",
"ItsEasyToAddANewAuthorOrBookJustStartTypingTheNameOfTheItemYouWantToAdd": "It's easy to add a New Author or Book just start typing the name of the item you want to add",
"Label": "Label",
"Language": "Language",
"LatestBook": "Latest Book",
"LaunchBrowserHelpText": " Open a web browser and navigate to Readarr homepage on app start.",
"Level": "Level",
"LibraryHelpText": "Calibre content server library name. Leave blank for default.",
"ListsSettingsSummary": "Import Lists",
"LoadingBookFilesFailed": "Loading book files failed",
"LoadingBooksFailed": "Loading books failed",
"Local": "Local",
@ -347,7 +348,7 @@
"LogSQL": "Log SQL",
"LogSqlHelpText": "Log all SQL queries from Readarr",
"LongDateFormat": "Long Date Format",
"MaintenanceRelease": "Maintenance release",
"MaintenanceRelease": "Maintenance Release: bug fixes and other improvements. See Github Commit History for more details",
"ManualDownload": "Manual Download",
"ManualImport": "Manual Import",
"MarkAsFailed": "Mark as Failed",
@ -360,8 +361,7 @@
"Mechanism": "Mechanism",
"MediaInfo": "Media Info",
"MediaManagementSettings": "Media Management Settings",
"Medium": "Medium",
"MediumFormat": "Medium Format",
"MediaManagementSettingsSummary": "Naming, file management settings and root folders",
"Message": "Message",
"MetadataConsumers": "Metadata Consumers",
"MetadataProfile": "Metadata Profile",
@ -369,6 +369,7 @@
"MetadataProfiles": "Metadata Profiles",
"MetadataProviderSource": "Metadata Provider Source",
"MetadataSettings": "Metadata Settings",
"MetadataSettingsSummary": "Create metadata files when books are imported or author are refreshed",
"MetadataSource": "Metadata Source",
"MetadataSourceHelpText": "Alternative Metadata Source (Leave blank for default)",
"MIA": "MIA",
@ -385,6 +386,7 @@
"MissingBooks": "Missing Books",
"MissingBooksAuthorMonitored": "Missing Books (Author monitored)",
"MissingBooksAuthorNotMonitored": "Missing Books (Author not monitored)",
"MissingFromDisk": "Readarr was unable to find the file on disk so the file was unlinked from the book in the database",
"Mode": "Mode",
"MonitorAuthor": "Monitor Author",
"MonitorBook": "Monitor Book",
@ -485,6 +487,7 @@
"PreviewRetag": "Preview Retag",
"PriorityHelpText": "Indexer Priority from 1 (Highest) to 50 (Lowest). Default: 25.",
"Profiles": "Profiles",
"ProfilesSettingsSummary": "Quality, Metadata, Delay, and Release profiles",
"Progress": "Progress",
"Proper": "Proper",
"PropersAndRepacks": "Propers and Repacks",
@ -503,7 +506,9 @@
"QualityProfileIdHelpText": "Quality Profile list items should be added with",
"QualityProfiles": "Quality Profiles",
"QualitySettings": "Quality Settings",
"QualitySettingsSummary": "Quality sizes and naming",
"Queue": "Queue",
"QueueIsEmpty": "Queue is empty",
"ReadarrSupportsAnyDownloadClientThatUsesTheNewznabStandardAsWellAsOtherDownloadClientsListedBelow": "Readarr supports any downloadClient that uses the Newznab standard, as well as other downloadClients listed below.",
"ReadarrSupportsAnyIndexerThatUsesTheNewznabStandardAsWellAsOtherIndexersListedBelow": "Readarr supports any indexer that uses the Newznab standard, as well as other indexers listed below.",
"ReadarrSupportsMultipleListsForImportingBooksAndAuthorsIntoTheDatabase": "Readarr supports multiple lists for importing Books and Authors into the database.",
@ -519,6 +524,7 @@
"Redownload": "Redownload",
"Refresh": "Refresh",
"RefreshAuthor": "Refresh Author",
"RefreshBook": "Refresh Book",
"RefreshInformation": "Refresh information",
"RefreshInformationAndScanDisk": "Refresh information and scan disk",
"RefreshScan": "Refresh & Scan",
@ -574,15 +580,14 @@
"RSSSync": "RSS Sync",
"RSSSyncInterval": "RSS Sync Interval",
"RssSyncIntervalHelpText": "Interval in minutes. Set to zero to disable (this will stop all automatic release grabbing)",
"SceneInformation": "Scene Information",
"SceneNumberHasntBeenVerifiedYet": "Scene number hasn't been verified yet",
"Scheduled": "Scheduled",
"Score": "Score",
"ScriptPath": "Script Path",
"Search": "Search",
"SearchAll": "Search All",
"SearchBook": "Search Book",
"SearchBoxPlaceHolder": "eg. War and Peace, edition:656, work:4912783, author:128382, isbn:067003469X, asin:B00JCDK5ME",
"SearchBoxPlaceHolder": "e.g. War and Peace, goodreads:656, isbn:067003469X, asin:B00JCDK5ME",
"SearchFiltered": "Search Filtered",
"SearchForAllCutoffUnmetBooks": "Search for all Cutoff Unmet books",
"SearchForAllMissingBooks": "Search for all missing books",
"SearchForMissing": "Search for Missing",
@ -590,7 +595,6 @@
"SearchForNewItems": "Search for New Items",
"SearchMonitored": "Search Monitored",
"SearchSelected": "Search Selected",
"Season": "Season",
"Security": "Security",
"SelectAll": "Select All",
"SelectedCountAuthorsSelectedInterp": "{0} Author(s) Selected",
@ -671,8 +675,8 @@
"TagIsNotUsedAndCanBeDeleted": "Tag is not used and can be deleted",
"Tags": "Tags",
"TagsHelpText": "Applies to authors with at least one matching tag. Leave blank to apply to all authors",
"TagsSettingsSummary": "Manage author, profile, restriction, and notification tags",
"Tasks": "Tasks",
"TBA": "TBA",
"Term": "Term",
"TestAll": "Test All",
"TestAllClients": "Test All Clients",
@ -687,7 +691,6 @@
"TimeFormat": "Time Format",
"Timeleft": "Time Left",
"Title": "Title",
"Titles": "Titles",
"Today": "Today",
"Tomorrow": "Tomorrow",
"TooManyBooks": "Missing or too many books? Modify or create a new",
@ -698,13 +701,12 @@
"TotalFileSize": "Total File Size",
"TrackNumber": "Track Number",
"TrackTitle": "Track Title",
"Trigger": "Trigger",
"Type": "Type",
"UI": "UI",
"UILanguage": "UI Language",
"UILanguageHelpText": "Language that Readarr will use for UI",
"UILanguageHelpTextWarning": "Browser Reload Required",
"UISettings": "UI Settings",
"UISettingsSummary": "Calendar, date and color impaired options",
"UnableToAddANewDownloadClientPleaseTryAgain": "Unable to add a new download client, please try again.",
"UnableToAddANewImportListExclusionPleaseTryAgain": "Unable to add a new import list exclusion, please try again.",
"UnableToAddANewIndexerPleaseTryAgain": "Unable to add a new indexer, please try again.",
@ -752,7 +754,7 @@
"UpdateMechanismHelpText": "Use Readarr's built-in updater or a script",
"Updates": "Updates",
"UpdateScriptPathHelpText": "Path to a custom script that takes an extracted update package and handle the remainder of the update process",
"UpdateSelected": "Updated selected",
"UpdateSelected": "Update selected",
"UpdatingIsDisabledInsideADockerContainerUpdateTheContainerImageInstead": "Updating is disabled inside a docker container. Update the container image instead.",
"UpgradeAllowedHelpText": "If disabled qualities will not be upgraded",
"Uptime": "Uptime",
@ -765,6 +767,7 @@
"UsenetDelay": "Usenet Delay",
"UsenetDelayHelpText": "Delay in minutes to wait before grabbing a release from Usenet",
"UseProxy": "Use Proxy",
"UserAgentProvidedByTheAppThatCalledTheAPI": "User-Agent provided by the app that called the API",
"Username": "Username",
"UsernameHelpText": "Calibre content server username",
"UseSSL": "Use SSL",
@ -785,5 +788,6 @@
"WriteTagsNo": "Never",
"WriteTagsSync": "All files; keep in sync with Goodreads",
"Year": "Year",
"YesCancel": "Yes, Cancel"
"YesCancel": "Yes, Cancel",
"Yesterday": "Yesterday"
}
Loading…
Cancel
Save