1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-25 22:46:31 -04:00

Translate Activity pages

This commit is contained in:
Stevie Robinson
2023-08-05 22:59:07 +02:00
committed by Mark McDowall
parent 02b0710814
commit 322836e2b3
17 changed files with 180 additions and 106 deletions
@@ -8,6 +8,7 @@ import Link from 'Components/Link/Link';
import formatDateTime from 'Utilities/Date/formatDateTime';
import formatAge from 'Utilities/Number/formatAge';
import formatCustomFormatScore from 'Utilities/Number/formatCustomFormatScore';
import translate from 'Utilities/String/translate';
import styles from './HistoryDetails.css';
function HistoryDetails(props) {
@@ -41,14 +42,14 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
indexer ?
<DescriptionListItem
title="Indexer"
title={translate('Indexer')}
data={indexer}
/> :
null
@@ -58,7 +59,7 @@ function HistoryDetails(props) {
releaseGroup ?
<DescriptionListItem
descriptionClassName={styles.description}
title="Release Group"
title={translate('ReleaseGroup')}
data={releaseGroup}
/> :
null
@@ -67,7 +68,7 @@ function HistoryDetails(props) {
{
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title="Custom Format Score"
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
@@ -77,7 +78,7 @@ function HistoryDetails(props) {
seriesMatchType ?
<DescriptionListItem
descriptionClassName={styles.description}
title="Series Match Type"
title={translate('SeriesMatchType')}
data={seriesMatchType}
/> :
null
@@ -87,7 +88,7 @@ function HistoryDetails(props) {
nzbInfoUrl ?
<span>
<DescriptionListItemTitle>
Info URL
{translate('InfoUrl')}
</DescriptionListItemTitle>
<DescriptionListItemDescription>
@@ -100,7 +101,7 @@ function HistoryDetails(props) {
{
downloadClientNameInfo ?
<DescriptionListItem
title="Download Client"
title={translate('DownloadClient')}
data={downloadClientNameInfo}
/> :
null
@@ -109,7 +110,7 @@ function HistoryDetails(props) {
{
downloadId ?
<DescriptionListItem
title="Grab ID"
title={translate('GrabId')}
data={downloadId}
/> :
null
@@ -118,7 +119,7 @@ function HistoryDetails(props) {
{
age || ageHours || ageMinutes ?
<DescriptionListItem
title="Age (when grabbed)"
title={translate('AgeWhenGrabbed')}
data={formatAge(age, ageHours, ageMinutes)}
/> :
null
@@ -127,7 +128,7 @@ function HistoryDetails(props) {
{
publishedDate ?
<DescriptionListItem
title="Published Date"
title={translate('PublishedDate')}
data={formatDateTime(publishedDate, shortDateFormat, timeFormat, { includeSeconds: true })}
/> :
null
@@ -145,14 +146,14 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
message ?
<DescriptionListItem
title="Message"
title={translate('Message')}
data={message}
/> :
null
@@ -172,7 +173,7 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
@@ -180,7 +181,7 @@ function HistoryDetails(props) {
droppedPath ?
<DescriptionListItem
descriptionClassName={styles.description}
title="Source"
title={translate('Source')}
data={droppedPath}
/> :
null
@@ -190,7 +191,7 @@ function HistoryDetails(props) {
importedPath ?
<DescriptionListItem
descriptionClassName={styles.description}
title="Imported To"
title={translate('ImportedTo')}
data={importedPath}
/> :
null
@@ -199,7 +200,7 @@ function HistoryDetails(props) {
{
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title="Custom Format Score"
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
@@ -218,13 +219,13 @@ function HistoryDetails(props) {
switch (reason) {
case 'Manual':
reasonMessage = 'File was deleted by via UI';
reasonMessage = translate('DeletedReasonManual');
break;
case 'MissingFromDisk':
reasonMessage = 'Sonarr was unable to find the file on disk so the file was unlinked from the episode in the database';
reasonMessage = translate('DeletedReasonMissingFromDisk');
break;
case 'Upgrade':
reasonMessage = 'File was deleted to import an upgrade';
reasonMessage = translate('DeletedReasonUpgrade');
break;
default:
reasonMessage = '';
@@ -233,19 +234,19 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
<DescriptionListItem
title="Reason"
title={translate('Reason')}
data={reasonMessage}
/>
{
customFormatScore && customFormatScore !== '0' ?
<DescriptionListItem
title="Custom Format Score"
title={translate('CustomFormatScore')}
data={formatCustomFormatScore(customFormatScore)}
/> :
null
@@ -265,22 +266,22 @@ function HistoryDetails(props) {
return (
<DescriptionList>
<DescriptionListItem
title="Source Path"
title={translate('SourcePath')}
data={sourcePath}
/>
<DescriptionListItem
title="Source Relative Path"
title={translate('SourceRelativePath')}
data={sourceRelativePath}
/>
<DescriptionListItem
title="Destination Path"
title={translate('DestinationPath')}
data={path}
/>
<DescriptionListItem
title="Destination Relative Path"
title={translate('DestinationRelativePath')}
data={relativePath}
/>
</DescriptionList>
@@ -296,14 +297,14 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
{
message ?
<DescriptionListItem
title="Message"
title={translate('Message')}
data={message}
/> :
null
@@ -316,7 +317,7 @@ function HistoryDetails(props) {
<DescriptionList>
<DescriptionListItem
descriptionClassName={styles.description}
title="Name"
title={translate('Name')}
data={sourceTitle}
/>
</DescriptionList>
@@ -8,25 +8,26 @@ import ModalContent from 'Components/Modal/ModalContent';
import ModalFooter from 'Components/Modal/ModalFooter';
import ModalHeader from 'Components/Modal/ModalHeader';
import { kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import HistoryDetails from './HistoryDetails';
import styles from './HistoryDetailsModal.css';
function getHeaderTitle(eventType) {
switch (eventType) {
case 'grabbed':
return 'Grabbed';
return translate('Grabbed');
case 'downloadFailed':
return 'Download Failed';
return translate('DownloadFailed');
case 'downloadFolderImported':
return 'Episode Imported';
return translate('EpisodeImported');
case 'episodeFileDeleted':
return 'Episode File Deleted';
return translate('EpisodeFileDeleted');
case 'episodeFileRenamed':
return 'Episode File Renamed';
return translate('EpisodeFileRenamed');
case 'downloadIgnored':
return 'Download Ignored';
return translate('DownloadIgnored');
default:
return 'Unknown';
return translate('Unknown');
}
}
@@ -72,14 +73,14 @@ function HistoryDetailsModal(props) {
isSpinning={isMarkingAsFailed}
onPress={onMarkAsFailedPress}
>
Mark as Failed
{translate('MarkAsFailed')}
</SpinnerButton>
}
<Button
onPress={onModalClose}
>
Close
{translate('Close')}
</Button>
</ModalFooter>
</ModalContent>
+8 -5
View File
@@ -14,6 +14,7 @@ import TableOptionsModalWrapper from 'Components/Table/TableOptions/TableOptions
import TablePager from 'Components/Table/TablePager';
import { align, icons, kinds } from 'Helpers/Props';
import hasDifferentItems from 'Utilities/Object/hasDifferentItems';
import translate from 'Utilities/String/translate';
import HistoryRowConnector from './HistoryRowConnector';
class History extends Component {
@@ -65,11 +66,11 @@ class History extends Component {
const hasError = error || episodesError;
return (
<PageContent title="History">
<PageContent title={translate('History')}>
<PageToolbar>
<PageToolbarSection>
<PageToolbarButton
label="Refresh"
label={translate('Refresh')}
iconName={icons.REFRESH}
isSpinning={isFetching}
onPress={onFirstPagePress}
@@ -82,7 +83,7 @@ class History extends Component {
columns={columns}
>
<PageToolbarButton
label="Options"
label={translate('Options')}
iconName={icons.TABLE}
/>
</TableOptionsModalWrapper>
@@ -105,7 +106,9 @@ class History extends Component {
{
!isFetchingAny && hasError &&
<Alert kind={kinds.DANGER}>Unable to load history</Alert>
<Alert kind={kinds.DANGER}>
{translate('HistoryLoadError')}
</Alert>
}
{
@@ -114,7 +117,7 @@ class History extends Component {
isPopulated && !hasError && !items.length &&
<Alert kind={kinds.INFO}>
No history found
{translate('NoHistoryFound')}
</Alert>
}
@@ -3,6 +3,7 @@ import React from 'react';
import Icon from 'Components/Icon';
import TableRowCell from 'Components/Table/Cells/TableRowCell';
import { icons, kinds } from 'Helpers/Props';
import translate from 'Utilities/String/translate';
import styles from './HistoryEventTypeCell.css';
function getIconName(eventType) {
@@ -38,21 +39,21 @@ function getIconKind(eventType) {
function getTooltip(eventType, data) {
switch (eventType) {
case 'grabbed':
return `Episode grabbed from ${data.indexer} and sent to ${data.downloadClient}`;
return translate('GrabbedHistoryTooltip', { indexer: data.indexer, downloadClient: data.downloadClient });
case 'seriesFolderImported':
return 'Episode imported from series folder';
return translate('SeriesFolderImportedTooltip');
case 'downloadFolderImported':
return 'Episode downloaded successfully and picked up from download client';
return translate('EpisodeImportedTooltip');
case 'downloadFailed':
return 'Episode download failed';
return translate('DownloadFailedTooltip');
case 'episodeFileDeleted':
return 'Episode file deleted';
return translate('EpisodeFileDeletedTooltip');
case 'episodeFileRenamed':
return 'Episode file renamed';
return translate('EpisodeFileRenamedTooltip');
case 'downloadIgnored':
return 'Episode Download Ignored';
return translate('DownloadIgnoredTooltip');
default:
return 'Unknown event';
return translate('UnknownEventTooltip');
}
}