Translate Updated and Connection Lost Modals in frontend
This commit is contained in:
parent
cc538c4b2d
commit
074aa6f445
|
@ -1,6 +1,7 @@
|
||||||
.version {
|
.version {
|
||||||
margin: 0 3px;
|
margin: 0 3px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
font-family: var(--defaultFontFamily);
|
||||||
}
|
}
|
||||||
|
|
||||||
.maintenance {
|
.maintenance {
|
||||||
|
|
|
@ -8,6 +8,8 @@ import ModalFooter from 'Components/Modal/ModalFooter';
|
||||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||||
import { kinds } from 'Helpers/Props';
|
import { kinds } from 'Helpers/Props';
|
||||||
import UpdateChanges from 'System/Updates/UpdateChanges';
|
import UpdateChanges from 'System/Updates/UpdateChanges';
|
||||||
|
import translate from 'Utilities/String/translate';
|
||||||
|
import InlineMarkdown from '../Components/Markdown/InlineMarkdown';
|
||||||
import styles from './AppUpdatedModalContent.css';
|
import styles from './AppUpdatedModalContent.css';
|
||||||
|
|
||||||
function mergeUpdates(items, version, prevVersion) {
|
function mergeUpdates(items, version, prevVersion) {
|
||||||
|
@ -63,12 +65,12 @@ function AppUpdatedModalContent(props) {
|
||||||
return (
|
return (
|
||||||
<ModalContent onModalClose={onModalClose}>
|
<ModalContent onModalClose={onModalClose}>
|
||||||
<ModalHeader>
|
<ModalHeader>
|
||||||
Sonarr Updated
|
{translate('AppUpdated', { appName: 'Sonarr' })}
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
|
|
||||||
<ModalBody>
|
<ModalBody>
|
||||||
<div>
|
<div>
|
||||||
Sonarr has been updated to version <span className={styles.version}>{version}</span>, in order to get the latest changes you'll need to reload Sonarr.
|
<InlineMarkdown data={translate('AppUpdatedVersion', { appName: 'Sonarr', version })} blockClassName={styles.version} />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -76,23 +78,23 @@ function AppUpdatedModalContent(props) {
|
||||||
<div>
|
<div>
|
||||||
{
|
{
|
||||||
!update.changes &&
|
!update.changes &&
|
||||||
<div className={styles.maintenance}>Maintenance Release: See GitHub commit history for details.</div>
|
<div className={styles.maintenance}>{translate('MaintenanceRelease')}</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
!!update.changes &&
|
!!update.changes &&
|
||||||
<div>
|
<div>
|
||||||
<div className={styles.changes}>
|
<div className={styles.changes}>
|
||||||
What's new?
|
{translate('WhatsNew')}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<UpdateChanges
|
<UpdateChanges
|
||||||
title="New"
|
title={translate('New')}
|
||||||
changes={update.changes.new}
|
changes={update.changes.new}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<UpdateChanges
|
<UpdateChanges
|
||||||
title="Fixed"
|
title={translate('Fixed')}
|
||||||
changes={update.changes.fixed}
|
changes={update.changes.fixed}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -110,14 +112,14 @@ function AppUpdatedModalContent(props) {
|
||||||
<Button
|
<Button
|
||||||
onPress={onSeeChangesPress}
|
onPress={onSeeChangesPress}
|
||||||
>
|
>
|
||||||
Recent Changes
|
{translate('RecentChanges')}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
kind={kinds.PRIMARY}
|
kind={kinds.PRIMARY}
|
||||||
onPress={onModalClose}
|
onPress={onModalClose}
|
||||||
>
|
>
|
||||||
Reload
|
{translate('Reload')}
|
||||||
</Button>
|
</Button>
|
||||||
</ModalFooter>
|
</ModalFooter>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
|
|
|
@ -7,6 +7,7 @@ import ModalContent from 'Components/Modal/ModalContent';
|
||||||
import ModalFooter from 'Components/Modal/ModalFooter';
|
import ModalFooter from 'Components/Modal/ModalFooter';
|
||||||
import ModalHeader from 'Components/Modal/ModalHeader';
|
import ModalHeader from 'Components/Modal/ModalHeader';
|
||||||
import { kinds } from 'Helpers/Props';
|
import { kinds } from 'Helpers/Props';
|
||||||
|
import translate from 'Utilities/String/translate';
|
||||||
import styles from './ConnectionLostModal.css';
|
import styles from './ConnectionLostModal.css';
|
||||||
|
|
||||||
function ConnectionLostModal(props) {
|
function ConnectionLostModal(props) {
|
||||||
|
@ -22,16 +23,16 @@ function ConnectionLostModal(props) {
|
||||||
>
|
>
|
||||||
<ModalContent onModalClose={onModalClose}>
|
<ModalContent onModalClose={onModalClose}>
|
||||||
<ModalHeader>
|
<ModalHeader>
|
||||||
Connection Lost
|
{translate('ConnectionLost')}
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
|
|
||||||
<ModalBody>
|
<ModalBody>
|
||||||
<div>
|
<div>
|
||||||
Sonarr has lost its connection to the backend and will need to be reloaded to restore functionality.
|
{translate('ConnectionLostToBackend', { appName: 'Sonarr' })}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={styles.automatic}>
|
<div className={styles.automatic}>
|
||||||
Sonarr will try to connect automatically, or you can click reload below.
|
{translate('ConnectionLostReconnect', { appName: 'Sonarr' })}
|
||||||
</div>
|
</div>
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
|
@ -39,7 +40,7 @@ function ConnectionLostModal(props) {
|
||||||
kind={kinds.PRIMARY}
|
kind={kinds.PRIMARY}
|
||||||
onPress={onModalClose}
|
onPress={onModalClose}
|
||||||
>
|
>
|
||||||
Reload
|
{translate('Reload')}
|
||||||
</Button>
|
</Button>
|
||||||
</ModalFooter>
|
</ModalFooter>
|
||||||
</ModalContent>
|
</ModalContent>
|
||||||
|
|
|
@ -10,7 +10,8 @@ class InlineMarkdown extends Component {
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
className,
|
className,
|
||||||
data
|
data,
|
||||||
|
blockClassName
|
||||||
} = this.props;
|
} = this.props;
|
||||||
|
|
||||||
// For now only replace links or code blocks (not both)
|
// For now only replace links or code blocks (not both)
|
||||||
|
@ -47,7 +48,7 @@ class InlineMarkdown extends Component {
|
||||||
markdownBlocks.push(data.substr(endIndex, match.index - endIndex));
|
markdownBlocks.push(data.substr(endIndex, match.index - endIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
markdownBlocks.push(<code key={`code-${match.index}`}>{match[0].substring(1, match[0].length - 1)}</code>);
|
markdownBlocks.push(<code key={`code-${match.index}`} className={blockClassName ?? null}>{match[0].substring(1, match[0].length - 1)}</code>);
|
||||||
endIndex = match.index + match[0].length;
|
endIndex = match.index + match[0].length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +67,8 @@ class InlineMarkdown extends Component {
|
||||||
|
|
||||||
InlineMarkdown.propTypes = {
|
InlineMarkdown.propTypes = {
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
data: PropTypes.string
|
data: PropTypes.string,
|
||||||
|
blockClassName: PropTypes.string
|
||||||
};
|
};
|
||||||
|
|
||||||
export default InlineMarkdown;
|
export default InlineMarkdown;
|
||||||
|
|
|
@ -66,6 +66,8 @@
|
||||||
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
|
"ApiKeyValidationHealthCheckMessage": "Please update your API key to be at least {0} characters long. You can do this via settings or the config file",
|
||||||
"AppDataDirectory": "AppData directory",
|
"AppDataDirectory": "AppData directory",
|
||||||
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
|
"AppDataLocationHealthCheckMessage": "Updating will not be possible to prevent deleting AppData on Update",
|
||||||
|
"AppUpdated": "{appName} Updated",
|
||||||
|
"AppUpdatedVersion": "{appName} has been updated to version `{version}`, in order to get the latest changes you'll need to reload {appName} ",
|
||||||
"ApplicationURL": "Application URL",
|
"ApplicationURL": "Application URL",
|
||||||
"ApplicationUrlHelpText": "This application's external URL including http(s)://, port and URL base",
|
"ApplicationUrlHelpText": "This application's external URL including http(s)://, port and URL base",
|
||||||
"Apply": "Apply",
|
"Apply": "Apply",
|
||||||
|
@ -175,6 +177,9 @@
|
||||||
"Connect": "Connect",
|
"Connect": "Connect",
|
||||||
"ConnectSettings": "Connect Settings",
|
"ConnectSettings": "Connect Settings",
|
||||||
"ConnectSettingsSummary": "Notifications, connections to media servers/players, and custom scripts",
|
"ConnectSettingsSummary": "Notifications, connections to media servers/players, and custom scripts",
|
||||||
|
"ConnectionLost": "Connection Lost",
|
||||||
|
"ConnectionLostReconnect": "{appName} will try to connect automatically, or you can click reload below.",
|
||||||
|
"ConnectionLostToBackend": "{appName} has lost its connection to the backend and will need to be reloaded to restore functionality.",
|
||||||
"Connections": "Connections",
|
"Connections": "Connections",
|
||||||
"ContinuingOnly": "Continuing Only",
|
"ContinuingOnly": "Continuing Only",
|
||||||
"CopyToClipboard": "Copy to Clipboard",
|
"CopyToClipboard": "Copy to Clipboard",
|
||||||
|
@ -760,6 +765,7 @@
|
||||||
"ReadTheWikiForMoreInformation": "Read the Wiki for more information",
|
"ReadTheWikiForMoreInformation": "Read the Wiki for more information",
|
||||||
"Real": "Real",
|
"Real": "Real",
|
||||||
"Reason": "Reason",
|
"Reason": "Reason",
|
||||||
|
"RecentChanges": "Recent Changes",
|
||||||
"RecycleBinUnableToWriteHealthCheckMessage": "Unable to write to configured recycling bin folder: {0}. Ensure this path exists and is writable by the user running Sonarr",
|
"RecycleBinUnableToWriteHealthCheckMessage": "Unable to write to configured recycling bin folder: {0}. Ensure this path exists and is writable by the user running Sonarr",
|
||||||
"RecyclingBin": "Recycling Bin",
|
"RecyclingBin": "Recycling Bin",
|
||||||
"RecyclingBinCleanup": "Recycling Bin Cleanup",
|
"RecyclingBinCleanup": "Recycling Bin Cleanup",
|
||||||
|
@ -1100,6 +1106,7 @@
|
||||||
"Week": "Week",
|
"Week": "Week",
|
||||||
"WeekColumnHeader": "Week Column Header",
|
"WeekColumnHeader": "Week Column Header",
|
||||||
"WeekColumnHeaderHelpText": "Shown above each column when week is the active view",
|
"WeekColumnHeaderHelpText": "Shown above each column when week is the active view",
|
||||||
|
"WhatsNew": "What's New?",
|
||||||
"WhyCantIFindMyShow": "Why can't I find my show?",
|
"WhyCantIFindMyShow": "Why can't I find my show?",
|
||||||
"Wiki": "Wiki",
|
"Wiki": "Wiki",
|
||||||
"WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?",
|
"WouldYouLikeToRestoreBackup": "Would you like to restore the backup '{name}'?",
|
||||||
|
|
Loading…
Reference in New Issue