diff --git a/CHANGELOG.md b/CHANGELOG.md index 45fcfd17a8..36f3bba514 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Features -- Show "To be defined" if date of the next Catalyst fund is in the past ([PR 3105](https://github.com/input-output-hk/daedalus/pull/3105)) +- Apply Catalyst API improvements ([PR 3136](https://github.com/input-output-hk/daedalus/pull/3136)) - Switched to the new Catalyst API ([PR 3129](https://github.com/input-output-hk/daedalus/pull/3129)) ### Fixes diff --git a/source/renderer/app/components/voting/VotingNoWallets.tsx b/source/renderer/app/components/voting/VotingNoWallets.tsx index b79f59d5f0..bdf821f278 100644 --- a/source/renderer/app/components/voting/VotingNoWallets.tsx +++ b/source/renderer/app/components/voting/VotingNoWallets.tsx @@ -11,7 +11,7 @@ const messages = defineMessages({ headLine: { id: 'voting.info.noWallets.headLine', defaultMessage: - '!!!Voting registration for Fund{nextVotingFundNumber} is not available as you currently do not have any Shelley-compatible wallets.', + '!!!Voting registration is not available as you currently do not have any Shelley-compatible wallets.', description: '"No wallets" headLine on the voting info page.', }, instructions: { @@ -30,7 +30,6 @@ const messages = defineMessages({ type Props = { onGoToCreateWalletClick: (...args: Array) => any; minVotingFunds: number; - nextFundNumber: number; }; export default class VotingNoWallets extends Component { static contextTypes = { @@ -39,19 +38,11 @@ export default class VotingNoWallets extends Component { render() { const { intl } = this.context; - const { - onGoToCreateWalletClick, - minVotingFunds, - nextFundNumber, - } = this.props; + const { onGoToCreateWalletClick, minVotingFunds } = this.props; return (
-

- {intl.formatMessage(messages.headLine, { - nextVotingFundNumber: nextFundNumber, - })} -

+

{intl.formatMessage(messages.headLine)}

{intl.formatMessage(messages.instructions, { minVotingFunds: new BigNumber(minVotingFunds).toFormat(0), diff --git a/source/renderer/app/components/voting/VotingRegistrationDialogWizard.tsx b/source/renderer/app/components/voting/VotingRegistrationDialogWizard.tsx index 04242acf42..66b11a6838 100644 --- a/source/renderer/app/components/voting/VotingRegistrationDialogWizard.tsx +++ b/source/renderer/app/components/voting/VotingRegistrationDialogWizard.tsx @@ -42,7 +42,6 @@ type Props = { onRestart: (...args: Array) => any; onExternalLinkClick: (...args: Array) => any; hwDeviceStatus: HwDeviceStatus; - nextFundNumber: number; }; @observer @@ -76,7 +75,6 @@ class VotingRegistrationDialogWizard extends Component { hwDeviceStatus, isTrezor, isHardwareWallet, - nextFundNumber, } = this.props; const selectedWalletId = get(selectedWallet, 'id', null); let content = null; @@ -95,7 +93,6 @@ class VotingRegistrationDialogWizard extends Component { onSelectWallet={onSelectWallet} isWalletAcceptable={isWalletAcceptable} getStakePoolById={getStakePoolById} - nextFundNumber={nextFundNumber} /> ); break; @@ -117,7 +114,6 @@ class VotingRegistrationDialogWizard extends Component { selectedWallet={selectedWallet} isTrezor={isTrezor} isHardwareWallet={isHardwareWallet} - nextFundNumber={nextFundNumber} /> ); break; @@ -134,7 +130,6 @@ class VotingRegistrationDialogWizard extends Component { transactionError={transactionError} onConfirm={onContinue} onRestart={onRestart} - nextFundNumber={nextFundNumber} /> ); break; @@ -146,7 +141,6 @@ class VotingRegistrationDialogWizard extends Component { onClose={onClose} stepsList={stepsList} activeStep={activeStep} - nextFundNumber={nextFundNumber} /> ); break; @@ -159,7 +153,6 @@ class VotingRegistrationDialogWizard extends Component { onDownloadPDF={onDownloadPDF} stepsList={stepsList} activeStep={activeStep} - nextFundNumber={nextFundNumber} /> ); break; diff --git a/source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts b/source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts index 378731f850..78de2ca679 100644 --- a/source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts +++ b/source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts @@ -1,10 +1,11 @@ import { defineMessages } from 'react-intl'; export const messages = defineMessages({ - dateLabel: { - id: 'voting.registerToVote.dateLabel', - defaultMessage: '!!!Snapshot date:', - description: 'Voting info snapshot date label', + votingInstructions: { + id: 'voting.registerToVote.votingInstructions', + defaultMessage: + '!!!If you are not registered yet, make sure to register to vote in the current fund before the snapshot date.', + description: 'Voting instructions', }, stepsTitle: { id: 'voting.registerToVote.stepsTitle', @@ -27,10 +28,4 @@ export const messages = defineMessages({ defaultMessage: '!!!Register to vote', description: 'Button Label for voting registration steps', }, - toBeDefined: { - id: 'voting.resultsPhase.toBeDefined', - defaultMessage: '!!!To be defined', - description: - 'Text to show when Catalyst API is returning a past date value', - }, }); diff --git a/source/renderer/app/components/voting/voting-info/RegisterToVote.scss b/source/renderer/app/components/voting/voting-info/RegisterToVote.scss index 6b2f5dba14..c5e19fad3c 100644 --- a/source/renderer/app/components/voting/voting-info/RegisterToVote.scss +++ b/source/renderer/app/components/voting/voting-info/RegisterToVote.scss @@ -12,8 +12,9 @@ line-height: 1.33; } - .dateLabel { + .votingInstructions { display: block; + font-family: var(--font-light); margin-top: 11px; } @@ -24,6 +25,7 @@ .stepsTitle { font-family: var(--font-medium); + margin-top: 14px; } .step { diff --git a/source/renderer/app/components/voting/voting-info/RegisterToVote.tsx b/source/renderer/app/components/voting/voting-info/RegisterToVote.tsx index bbcbe21f8b..743cf439a7 100644 --- a/source/renderer/app/components/voting/voting-info/RegisterToVote.tsx +++ b/source/renderer/app/components/voting/voting-info/RegisterToVote.tsx @@ -1,80 +1,33 @@ import React, { useState } from 'react'; import { injectIntl } from 'react-intl'; -import moment from 'moment'; import { Button } from 'react-polymorph/lib/components/Button'; import { Checkbox } from 'react-polymorph/lib/components/Checkbox'; -import { - formattedDateTime, - mapToLongDateTimeFormat, -} from '../../../utils/formatters'; -import type { Locale } from '../../../../../common/types/locales.types'; import type { Intl } from '../../../types/i18nTypes'; import { messages } from './RegisterToVote.messages'; import { messages as votingMessages } from './VotingInfo.messages'; import styles from './RegisterToVote.scss'; -import votingStyles from './VotingInfo.scss'; -import type { CatalystFund } from '../../../api/voting/types'; -import { logger } from '../../../utils/logging'; type Props = { - currentLocale: Locale; - currentDateFormat: string; - currentTimeFormat: string; - fundInfo: CatalystFund; intl: Intl; onRegisterToVoteClick: (...args: Array) => any; }; -const isFutureDate = (date: Date): boolean => { - try { - return moment().diff(date) < 0; - } catch (error) { - logger.error('Voting::NextFund::Invalid date', { - error, - }); - } - return false; -}; - -function RegisterToVote({ - currentLocale, - currentDateFormat, - currentTimeFormat, - fundInfo, - intl, - onRegisterToVoteClick, -}: Props) { +function RegisterToVote({ intl, onRegisterToVoteClick }: Props) { const [step1, setStep1] = useState(false); const [step2, setStep2] = useState(false); const canRegister = step1 && step2; - const nextSnapshotDateTime = fundInfo.next.registrationSnapshotTime; - - const snapshotDate = isFutureDate(nextSnapshotDateTime) - ? formattedDateTime(nextSnapshotDateTime, { - currentLocale, - ...mapToLongDateTimeFormat({ - currentLocale, - currentDateFormat, - currentTimeFormat, - }), - }) - : intl.formatMessage(messages.toBeDefined); return (

- - {intl.formatMessage(votingMessages.fundName, { - votingFundNumber: fundInfo.next.number, - })} - - - {intl.formatMessage(messages.dateLabel)} - - {snapshotDate} -
- +
+ {intl.formatMessage(votingMessages.registerToVoteHeader)} +
+
+ {intl.formatMessage(messages.votingInstructions)} +
+
{intl.formatMessage(messages.stepsTitle)} - +
- +
)} diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsChooseWallet.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsChooseWallet.tsx index 6a25c7bfba..796f82bc11 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsChooseWallet.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsChooseWallet.tsx @@ -74,7 +74,6 @@ type Props = { selectedWalletId: string | null | undefined; isWalletAcceptable: (...args: Array) => any; getStakePoolById: (...args: Array) => any; - nextFundNumber: number; }; type State = { selectedWalletId: string | null | undefined; @@ -111,7 +110,6 @@ export default class VotingRegistrationStepsChooseWallet extends Component< isWalletAcceptable, numberOfStakePools, getStakePoolById, - nextFundNumber, } = this.props; const buttonLabel = intl.formatMessage(messages.continueButtonLabel); const selectedWallet: Wallet | null | undefined = wallets.find( @@ -168,7 +166,6 @@ export default class VotingRegistrationStepsChooseWallet extends Component< activeStep={activeStep} actions={actions} containerClassName={styles.component} - nextFundNumber={nextFundNumber} >

diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsConfirm.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsConfirm.tsx index 4c1bb5a5fc..4bf86ac35b 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsConfirm.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsConfirm.tsx @@ -80,7 +80,6 @@ type Props = { | (LocalizableError | null | undefined); onConfirm: (...args: Array) => any; onRestart: (...args: Array) => any; - nextFundNumber: number; }; @observer @@ -101,7 +100,6 @@ class VotingRegistrationStepsConfirm extends Component { transactionConfirmations, transactionError, onClose, - nextFundNumber, } = this.props; const description = intl.formatMessage(messages.description); const descriptionRestart = ( @@ -156,7 +154,6 @@ class VotingRegistrationStepsConfirm extends Component { actions={actions} containerClassName={styles.component} hideSteps={!!transactionError} - nextFundNumber={nextFundNumber} > {transactionError ? ( diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsEnterPinCode.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsEnterPinCode.tsx index d259dcdb7e..12e5d57ff3 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsEnterPinCode.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsEnterPinCode.tsx @@ -17,7 +17,7 @@ const messages = defineMessages({ description: { id: 'voting.votingRegistration.enterPinCode.step.description', defaultMessage: - '!!!Please enter a PIN for your Fund{nextVotingFundNumber} voting registration. The PIN you set here, and the QR code which you will get in the next step, will be required for you to vote using the Catalyst Voting app on your smartphone.', + '!!!Set a PIN for your voting registration. You will need this PIN and the QR code you will get in the next step to vote in the Catalyst Voting app.', description: 'Description on the voting registration "enter pin code" step.', }, @@ -62,7 +62,6 @@ type Props = { stepsList: Array; activeStep: number; onSetPinCode: (...args: Array) => any; - nextFundNumber: number; }; interface FormFields { @@ -137,7 +136,7 @@ class VotingRegistrationStepsEnterPinCode extends Component { render() { const { form } = this; const { intl } = this.context; - const { onClose, stepsList, activeStep, nextFundNumber } = this.props; + const { onClose, stepsList, activeStep } = this.props; const buttonLabel = intl.formatMessage(messages.continueButtonLabel); const enterPinCodeLabel = intl.formatMessage(messages.enterPinCodeLabel); const repeatPinCodeLabel = intl.formatMessage(messages.repeatPinCodeLabel); @@ -162,15 +161,9 @@ class VotingRegistrationStepsEnterPinCode extends Component { activeStep={activeStep} actions={actions} containerClassName={styles.component} - nextFundNumber={nextFundNumber} >

- + {intl.formatMessage(messages.description)}

diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsQrCode.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsQrCode.tsx index b312194e2f..7781da820f 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsQrCode.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsQrCode.tsx @@ -44,7 +44,7 @@ const messages = defineMessages({ checkbox2Label: { id: 'voting.votingRegistration.qrCode.step.checkbox2Label', defaultMessage: - '!!!I acknowledge that I must have the downloaded PDF with the QR code, to vote with Fund{nextVotingFundNumber}.', + '!!!I acknowledge that I must have the downloaded PDF with the QR code to vote.', description: 'Second checkbox label on the voting registration "qr code" step.', }, @@ -67,7 +67,6 @@ type Props = { stepsList: Array; activeStep: number; qrCode: string | null | undefined; - nextFundNumber: number; }; type State = { isCheckbox1Accepted: boolean; @@ -96,21 +95,13 @@ class VotingRegistrationStepsQrCode extends Component { render() { const { intl } = this.context; const { isCheckbox1Accepted, isCheckbox2Accepted } = this.state; - const { - stepsList, - activeStep, - qrCode, - onDownloadPDF, - nextFundNumber, - } = this.props; + const { stepsList, activeStep, qrCode, onDownloadPDF } = this.props; const qrCodeTitle = intl.formatMessage(messages.qrCodeTitle); const qrCodeDescription1 = intl.formatMessage(messages.qrCodeDescription1); const qrCodeDescription2 = intl.formatMessage(messages.qrCodeDescription2); const qrCodeWarning = ; const checkbox1Label = intl.formatMessage(messages.checkbox1Label); - const checkbox2Label = intl.formatMessage(messages.checkbox2Label, { - nextVotingFundNumber: nextFundNumber, - }); + const checkbox2Label = intl.formatMessage(messages.checkbox2Label); const closeButtonLabel = intl.formatMessage(messages.closeButtonLabel); const saveAsPdfButtonLabel = intl.formatMessage( messages.saveAsPdfButtonLabel @@ -148,7 +139,6 @@ class VotingRegistrationStepsQrCode extends Component { actions={actions} containerClassName={styles.component} hideCloseButton={!areBothCheckboxesAccepted} - nextFundNumber={nextFundNumber} >
{qrCode && ( diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsRegister.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsRegister.tsx index 887721bc71..d4f31dfd37 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsRegister.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/VotingRegistrationStepsRegister.tsx @@ -2,7 +2,7 @@ import React, { Component } from 'react'; // @ts-ignore ts-migrate(2305) FIXME: Module '"react"' has no exported member 'Node'. import type { Node } from 'react'; import { get } from 'lodash'; -import { defineMessages, intlShape, FormattedHTMLMessage } from 'react-intl'; +import { defineMessages, intlShape } from 'react-intl'; import { Input } from 'react-polymorph/lib/components/Input'; import { InputSkin } from 'react-polymorph/lib/skins/simple/InputSkin'; import vjf from 'mobx-react-form/lib/validators/VJF'; @@ -26,7 +26,7 @@ const messages = defineMessages({ description: { id: 'voting.votingRegistration.register.step.description', defaultMessage: - '!!!Please sign the voting registration transaction. This transaction links your wallet balance with your Fund{nextVotingFundNumber} voting registration, as a proof of your voting power. Funds will not leave your wallet, but registration requires paying transaction fees, as displayed on-screen.', + '!!!Sign the voting registration transaction to link your wallet balance with your voting registration as proof of your voting power. Funds will not leave your wallet, but registration requires transaction fees.', description: 'Description on the voting registration "sign" step.', }, continueButtonLabel: { @@ -76,7 +76,6 @@ type Props = { transactionError?: LocalizableError | null | undefined; hwDeviceStatus: HwDeviceStatus; selectedWallet: Wallet | null | undefined; - nextFundNumber: number; isTrezor: boolean; isHardwareWallet: boolean; isSubmitting: boolean; @@ -157,7 +156,6 @@ class VotingRegistrationStepsRegister extends Component { selectedWallet, isTrezor, isHardwareWallet, - nextFundNumber, } = this.props; const spendingPasswordField = form.$('spendingPassword'); const buttonLabel = intl.formatMessage(messages.continueButtonLabel); @@ -186,15 +184,9 @@ class VotingRegistrationStepsRegister extends Component { actions={actions} onBack={onBack} containerClassName={styles.component} - nextFundNumber={nextFundNumber} >

- + {intl.formatMessage(messages.description)}

diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/ConfirmationDialog.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/ConfirmationDialog.tsx index db02aafa89..ef0caac78c 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/ConfirmationDialog.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/ConfirmationDialog.tsx @@ -9,14 +9,14 @@ import styles from './ConfirmationDialog.scss'; const messages = defineMessages({ headline: { id: 'voting.votingRegistration.dialog.confirmation.headline', - defaultMessage: '!!!Cancel Fund{nextVotingFundNumber} voting registration?', + defaultMessage: '!!!Cancel voting registration?', description: 'Headline for the voting registration cancellation confirmation dialog.', }, content: { id: 'voting.votingRegistration.dialog.confirmation.content', defaultMessage: - '!!!Are you sure that you want to cancel Fund{nextVotingFundNumber} voting registration? The transaction fee you paid for the voting registration transaction will be lost and you will need to repeat the registration from the beginning.', + '!!!Are you sure you want to cancel your voting registration? You will lose the registration fee, and you will need to restart the process.', description: 'Content for the voting registration cancellation confirmation dialog.', }, @@ -36,7 +36,6 @@ const messages = defineMessages({ }, }); type Props = { - nextFundNumber: number; onConfirm: (...args: Array) => any; onCancel: (...args: Array) => any; }; @@ -49,7 +48,7 @@ class ConfirmationDialog extends Component { render() { const { intl } = this.context; - const { nextFundNumber, onConfirm, onCancel } = this.props; + const { onConfirm, onCancel } = this.props; const dialogClasses = classnames([styles.component, 'ConfirmDialog']); const actions = [ { @@ -67,18 +66,12 @@ class ConfirmationDialog extends Component { return ( -

- {intl.formatMessage(messages.content, { - nextVotingFundNumber: nextFundNumber, - })} -

+

{intl.formatMessage(messages.content)}

); } diff --git a/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/VotingRegistrationDialog.tsx b/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/VotingRegistrationDialog.tsx index a193e99bfd..2a4cf64bc9 100644 --- a/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/VotingRegistrationDialog.tsx +++ b/source/renderer/app/components/voting/voting-registration-wizard-steps/widgets/VotingRegistrationDialog.tsx @@ -16,7 +16,7 @@ import type { DialogActions } from '../../../widgets/Dialog'; const messages = defineMessages({ dialogTitle: { id: 'voting.votingRegistration.dialog.dialogTitle', - defaultMessage: '!!!Register for Fund{nextVotingFundNumber} voting', + defaultMessage: '!!!Register for voting', description: 'Tile "Register to vote" for voting registration', }, subtitle: { @@ -36,7 +36,6 @@ type Props = { contentClassName?: string | null | undefined; hideCloseButton?: boolean; hideSteps?: boolean; - nextFundNumber: number; }; @observer @@ -61,7 +60,6 @@ class VotingRegistrationDialog extends Component { contentClassName, hideCloseButton, hideSteps, - nextFundNumber, } = this.props; const containerStyles = classnames([styles.container, containerClassName]); const contentStyles = classnames([styles.content, contentClassName]); @@ -77,9 +75,7 @@ class VotingRegistrationDialog extends Component { return ( { if (!wallets.allWallets.length) { return ( diff --git a/source/renderer/app/containers/voting/dialogs/VotingRegistrationDialogContainer.tsx b/source/renderer/app/containers/voting/dialogs/VotingRegistrationDialogContainer.tsx index d9a2340417..9c1e9797b9 100644 --- a/source/renderer/app/containers/voting/dialogs/VotingRegistrationDialogContainer.tsx +++ b/source/renderer/app/containers/voting/dialogs/VotingRegistrationDialogContainer.tsx @@ -170,7 +170,6 @@ class VotingRegistrationDialogContainer extends Component { isTransactionConfirmed, transactionConfirmations, qrCode, - catalystFund, } = voting; const { openExternalLink } = app; const { @@ -228,11 +227,9 @@ class VotingRegistrationDialogContainer extends Component { onExternalLinkClick={openExternalLink} isTrezor={isTrezor} isHardwareWallet={isHardwareWallet} - nextFundNumber={catalystFund?.next?.number} /> {isConfirmationDialogOpen && ( { this.props.actions.dialogs.closeActiveDialog.trigger(); diff --git a/source/renderer/app/i18n/locales/defaultMessages.json b/source/renderer/app/i18n/locales/defaultMessages.json index 561c19c0fb..02815ac841 100644 --- a/source/renderer/app/i18n/locales/defaultMessages.json +++ b/source/renderer/app/i18n/locales/defaultMessages.json @@ -572,7 +572,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Fund{nextVotingFundNumber} Voting Registration", + "defaultMessage": "!!!Voting registration", "description": "PDF title", "id": "voting.votingRegistration.pdf.title" }, @@ -1747,7 +1747,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Voting registration for Fund{nextVotingFundNumber} is not available as you currently do not have any Shelley-compatible wallets.", + "defaultMessage": "!!!Voting registration is not available as you currently do not have any Shelley-compatible wallets.", "description": "\"No wallets\" headLine on the voting info page.", "id": "voting.info.noWallets.headLine" }, @@ -4452,9 +4452,9 @@ { "descriptors": [ { - "defaultMessage": "!!!Snapshot date:", - "description": "Voting info snapshot date label", - "id": "voting.registerToVote.dateLabel" + "defaultMessage": "!!!If you are not registered yet, make sure to register to vote in the current fund before the snapshot date.", + "description": "Voting instructions", + "id": "voting.registerToVote.votingInstructions" }, { "defaultMessage": "!!!Follow these steps to vote:", @@ -4475,11 +4475,6 @@ "defaultMessage": "!!!Register to vote", "description": "Button Label for voting registration steps", "id": "voting.registerToVote.registerToVoteButtonLabel" - }, - { - "defaultMessage": "!!!To be defined", - "description": "Text to show when Catalyst API is returning a past date value", - "id": "voting.resultsPhase.toBeDefined" } ], "path": "source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts" @@ -4540,6 +4535,11 @@ "defaultMessage": "!!!Fund{votingFundNumber}", "description": "Current fund name", "id": "voting.fundName" + }, + { + "defaultMessage": "Register to vote", + "description": "Right hand side section header", + "id": "voting.registerToVote.header" } ], "path": "source/renderer/app/components/voting/voting-info/VotingInfo.messages.ts" @@ -4657,7 +4657,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Please enter a PIN for your Fund{nextVotingFundNumber} voting registration. The PIN you set here, and the QR code which you will get in the next step, will be required for you to vote using the Catalyst Voting app on your smartphone.", + "defaultMessage": "!!!Set a PIN for your voting registration. You will need this PIN and the QR code you will get in the next step to vote in the Catalyst Voting app.", "description": "Description on the voting registration \"enter pin code\" step.", "id": "voting.votingRegistration.enterPinCode.step.description" }, @@ -4722,7 +4722,7 @@ "id": "voting.votingRegistration.qrCode.step.checkbox1Label" }, { - "defaultMessage": "!!!I acknowledge that I must have the downloaded PDF with the QR code, to vote with Fund{nextVotingFundNumber}.", + "defaultMessage": "!!!I acknowledge that I must have the downloaded PDF with the QR code to vote.", "description": "Second checkbox label on the voting registration \"qr code\" step.", "id": "voting.votingRegistration.qrCode.step.checkbox2Label" }, @@ -4742,7 +4742,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Please sign the voting registration transaction. This transaction links your wallet balance with your Fund{nextVotingFundNumber} voting registration, as a proof of your voting power. Funds will not leave your wallet, but registration requires paying transaction fees, as displayed on-screen.", + "defaultMessage": "!!!Sign the voting registration transaction to link your wallet balance with your voting registration as proof of your voting power. Funds will not leave your wallet, but registration requires transaction fees.", "description": "Description on the voting registration \"sign\" step.", "id": "voting.votingRegistration.register.step.description" }, @@ -7317,12 +7317,12 @@ { "descriptors": [ { - "defaultMessage": "!!!Cancel Fund{nextVotingFundNumber} voting registration?", + "defaultMessage": "!!!Cancel voting registration?", "description": "Headline for the voting registration cancellation confirmation dialog.", "id": "voting.votingRegistration.dialog.confirmation.headline" }, { - "defaultMessage": "!!!Are you sure that you want to cancel Fund{nextVotingFundNumber} voting registration? The transaction fee you paid for the voting registration transaction will be lost and you will need to repeat the registration from the beginning.", + "defaultMessage": "!!!Are you sure you want to cancel your voting registration? You will lose the registration fee, and you will need to restart the process.", "description": "Content for the voting registration cancellation confirmation dialog.", "id": "voting.votingRegistration.dialog.confirmation.content" }, @@ -7342,7 +7342,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Register for Fund{nextVotingFundNumber} voting", + "defaultMessage": "!!!Register for voting", "description": "Tile \"Register to vote\" for voting registration", "id": "voting.votingRegistration.dialog.dialogTitle" }, diff --git a/source/renderer/app/i18n/locales/en-US.json b/source/renderer/app/i18n/locales/en-US.json index 989ad0cc4a..4bbfd60373 100755 --- a/source/renderer/app/i18n/locales/en-US.json +++ b/source/renderer/app/i18n/locales/en-US.json @@ -723,15 +723,15 @@ "voting.info.learnMoreLinkLabel": "Learn more", "voting.info.learnMoreLinkUrl": "https://cardano.ideascale.com/a/index", "voting.info.noWallets.createWalletButtonLabel": "Create wallet", - "voting.info.noWallets.headLine": "Voting registration for Fund{nextVotingFundNumber} is not available as you currently do not have any Shelley-compatible wallets.", + "voting.info.noWallets.headLine": "Voting registration is not available as you currently do not have any Shelley-compatible wallets.", "voting.info.noWallets.instructions": "Create a new wallet and transfer a minimum of {minVotingFunds} ADA (or restore an existing wallet with funds), then return here to register for voting.", - "voting.registerToVote.dateLabel": "Snapshot date:", + "voting.registerToVote.header": "Register to vote", "voting.registerToVote.registerToVoteButtonLabel": "Register to vote", "voting.registerToVote.step1CheckBoxLabel": "Download the Catalyst Voting app on your smartphone", "voting.registerToVote.step2CheckBoxLabel": "Ensure that you register and hold the necessary 500 ADA at the time of the snapshot.", "voting.registerToVote.stepsTitle": "Follow these steps to vote:", + "voting.registerToVote.votingInstructions": "If you are not registered yet, make sure to register to vote in the current fund before the snapshot date.", "voting.resultsPhase.endDateLabel": "End of voting:", - "voting.resultsPhase.toBeDefined": "To be defined", "voting.resultsPhase.viewResultsLinkLabel": "View results", "voting.resultsPhase.viewResultsLinkURL": "https://cardano.ideascale.com/a/pages/results", "voting.snapshotPhase.snapshotDateLabel": "Snapshot date:", @@ -759,12 +759,12 @@ "voting.votingRegistration.confirm.step.waitingForConfirmationsLabel": "Waiting for confirmation...", "voting.votingRegistration.dialog.confirmation.button.cancelButtonLabel": "Cancel registration", "voting.votingRegistration.dialog.confirmation.button.confirmButtonLabel": "Continue registration", - "voting.votingRegistration.dialog.confirmation.content": "Are you sure that you want to cancel Fund{nextVotingFundNumber} voting registration? The transaction fee you paid for the voting registration transaction will be lost and you will need to repeat the registration from the beginning.", - "voting.votingRegistration.dialog.confirmation.headline": "Cancel Fund{nextVotingFundNumber} voting registration?", - "voting.votingRegistration.dialog.dialogTitle": "Register for Fund{nextVotingFundNumber} voting", + "voting.votingRegistration.dialog.confirmation.content": "Are you sure you want to cancel your voting registration? You will lose the registration fee, and you will need to restart the process.", + "voting.votingRegistration.dialog.confirmation.headline": "Cancel voting registration?", + "voting.votingRegistration.dialog.dialogTitle": "Register for voting", "voting.votingRegistration.dialog.subtitle": "Step {step} of {stepCount}", "voting.votingRegistration.enterPinCode.step.continueButtonLabel": "Continue", - "voting.votingRegistration.enterPinCode.step.description": "Please enter a PIN for your Fund{nextVotingFundNumber} voting registration. The PIN you set here, and the QR code which you will get in the next step, will be required for you to vote using the Catalyst Voting app on your smartphone.", + "voting.votingRegistration.enterPinCode.step.description": "Set a PIN for your voting registration. You will need this PIN and the QR code you will get in the next step to vote in the Catalyst Voting app.", "voting.votingRegistration.enterPinCode.step.enterPinCodeLabel": "Enter PIN", "voting.votingRegistration.enterPinCode.step.errors.invalidPinCode": "Invalid PIN", "voting.votingRegistration.enterPinCode.step.errors.invalidRepeatPinCode": "PIN doesn't match", @@ -773,10 +773,10 @@ "voting.votingRegistration.pdf.author": "Daedalus wallet", "voting.votingRegistration.pdf.filename": "voting-registration", "voting.votingRegistration.pdf.networkLabel": "Cardano network:", - "voting.votingRegistration.pdf.title": "Fund{nextVotingFundNumber} Voting Registration", + "voting.votingRegistration.pdf.title": "Voting registration", "voting.votingRegistration.pdf.walletNameLabel": "Wallet name", "voting.votingRegistration.qrCode.step.checkbox1Label": "I understand that I will not be able to retrieve this QR code again after closing this window.", - "voting.votingRegistration.qrCode.step.checkbox2Label": "I acknowledge that I must have the downloaded PDF with the QR code, to vote with Fund{nextVotingFundNumber}.", + "voting.votingRegistration.qrCode.step.checkbox2Label": "I acknowledge that I must have the downloaded PDF with the QR code to vote.", "voting.votingRegistration.qrCode.step.closeButtonLabel": "Close", "voting.votingRegistration.qrCode.step.qrCodeDescription1": "Open the Catalyst Voting app on your smartphone, scan the QR code, and enter your PIN to complete the voting registration process.", "voting.votingRegistration.qrCode.step.qrCodeDescription2": "Your registration remains valid across all Catalyst funding rounds. Ensure that you save your QR code and PIN so you can reconnect your wallet to the voting app if you are logged out, or if you want to connect a new device.", @@ -785,7 +785,7 @@ "voting.votingRegistration.qrCode.step.saveAsPdfButtonLabel": "Save as PDF", "voting.votingRegistration.register.step.calculatingFees": "Calculating fees", "voting.votingRegistration.register.step.continueButtonLabel": "Submit registration transaction", - "voting.votingRegistration.register.step.description": "Please sign the voting registration transaction. This transaction links your wallet balance with your Fund{nextVotingFundNumber} voting registration, as a proof of your voting power. Funds will not leave your wallet, but registration requires paying transaction fees, as displayed on-screen.", + "voting.votingRegistration.register.step.description": "Sign the voting registration transaction to link your wallet balance with your voting registration as proof of your voting power. Funds will not leave your wallet, but registration requires transaction fees.", "voting.votingRegistration.register.step.feesLabel": "Fees", "voting.votingRegistration.register.step.learnMoreLink": "Learn more", "voting.votingRegistration.register.step.learntMoreLinkUrl": "https://iohk.zendesk.com/hc/en-us/articles/900006490763", diff --git a/source/renderer/app/i18n/locales/ja-JP.json b/source/renderer/app/i18n/locales/ja-JP.json index 5014ea1fd7..e65fd0d563 100755 --- a/source/renderer/app/i18n/locales/ja-JP.json +++ b/source/renderer/app/i18n/locales/ja-JP.json @@ -723,15 +723,15 @@ "voting.info.learnMoreLinkLabel": "もっと知る", "voting.info.learnMoreLinkUrl": "https://cardano.ideascale.com/a/index", "voting.info.noWallets.createWalletButtonLabel": "ウォレットを作成する", - "voting.info.noWallets.headLine": "現在Shelley対応のウォレットがないため、Fund{nextVotingFundNumber}の有権者登録はできません。", + "voting.info.noWallets.headLine": "現在Shelley対応のウォレットがないため、有権者登録はできません。", "voting.info.noWallets.instructions": "ウォレットを作成し、そこに{minVotingFunds} ADA以上を移してから(または既存の資金入りウォレットを復元してから)、改めてここで有権者登録を行ってください。", - "voting.registerToVote.dateLabel": "スナップショット日:", + "voting.registerToVote.header": "有権者登録をする", "voting.registerToVote.registerToVoteButtonLabel": "有権者登録をする", "voting.registerToVote.step1CheckBoxLabel": "スマートフォンにCatalyst Votingアプリをダウンロードします", "voting.registerToVote.step2CheckBoxLabel": "スナップショット実施の時点で、登録を済ませ、500ADAを保有していてください", "voting.registerToVote.stepsTitle": "投票方法:", + "voting.registerToVote.votingInstructions": "登録を済ませていない場合は、スナップショットの実施日前に現行のファンドの有権者登録を行ってください。", "voting.resultsPhase.endDateLabel": "投票締め切り:", - "voting.resultsPhase.toBeDefined": "未定", "voting.resultsPhase.viewResultsLinkLabel": "結果を見る", "voting.resultsPhase.viewResultsLinkURL": "https://cardano.ideascale.com/a/pages/results", "voting.snapshotPhase.snapshotDateLabel": "スナップショット日:", @@ -759,12 +759,12 @@ "voting.votingRegistration.confirm.step.waitingForConfirmationsLabel": "確認を待っています...", "voting.votingRegistration.dialog.confirmation.button.cancelButtonLabel": "登録をキャンセルする", "voting.votingRegistration.dialog.confirmation.button.confirmButtonLabel": "登録を続ける", - "voting.votingRegistration.dialog.confirmation.content": "Fund{nextVotingFundNumber}の有権者登録をキャンセルしてもよろしいですか。有権者登録トランザクション用に支払ったトランザクション手数料は失われ、登録手続きは最初からやり直す必要があります。", - "voting.votingRegistration.dialog.confirmation.headline": "Fund{nextVotingFundNumber}の有権者登録をキャンセルしますか", - "voting.votingRegistration.dialog.dialogTitle": "Fund{nextVotingFundNumber}の有権者登録をする", + "voting.votingRegistration.dialog.confirmation.content": "有権者登録をキャンセルしてもよろしいですか。登録料は失われ、プロセスはやり直すことになります。", + "voting.votingRegistration.dialog.confirmation.headline": "有権者登録をキャンセルしますか", + "voting.votingRegistration.dialog.dialogTitle": "有権者登録をする", "voting.votingRegistration.dialog.subtitle": "ステップ{step}/{stepCount}", "voting.votingRegistration.enterPinCode.step.continueButtonLabel": "続ける", - "voting.votingRegistration.enterPinCode.step.description": "Fund{nextVotingFundNumber}有権者登録のPINコードを入力してください。ここで設定したPINコードと、次のステップで表示されるQRコードは、スマートフォンでCatalyst Votingアプリを使用して投票するときに必要となります。", + "voting.votingRegistration.enterPinCode.step.description": "有権者登録用のPINコードを設定してください。このPINコードと次のステップで取得するQRコードは、Catalyst Votingアプリで投票するために必要となります。", "voting.votingRegistration.enterPinCode.step.enterPinCodeLabel": "PINコードを入力してください", "voting.votingRegistration.enterPinCode.step.errors.invalidPinCode": "無効なPINコード", "voting.votingRegistration.enterPinCode.step.errors.invalidRepeatPinCode": "PINコードが一致しません", @@ -773,10 +773,10 @@ "voting.votingRegistration.pdf.author": "Daedalusウォレット", "voting.votingRegistration.pdf.filename": "有権者登録", "voting.votingRegistration.pdf.networkLabel": "Cardanoネットワーク:", - "voting.votingRegistration.pdf.title": "FUND{nextVotingFundNumber}有権者登録", + "voting.votingRegistration.pdf.title": "有権者登録", "voting.votingRegistration.pdf.walletNameLabel": "ウォレット名", "voting.votingRegistration.qrCode.step.checkbox1Label": "ウィンドウを閉じるとQRコードを表示できなくなることを理解しました。", - "voting.votingRegistration.qrCode.step.checkbox2Label": "Fund{nextVotingFundNumber}に投票するためには、QRコードをPDFでダウンロードする必要があることを認識しています。", + "voting.votingRegistration.qrCode.step.checkbox2Label": "投票するためには、QRコードのPDFをダウンロードする必要があることを認識しています。", "voting.votingRegistration.qrCode.step.closeButtonLabel": "閉じる", "voting.votingRegistration.qrCode.step.qrCodeDescription1": "スマートフォンでCatalyst Votingアプリを開き、QRコードをスキャンし、PINコードを入力して有権者登録手続きを完了してください。", "voting.votingRegistration.qrCode.step.qrCodeDescription2": "この登録はすべてのCatalystファンドラウンドで有効です。ログアウト後に再接続する場合や新しいデバイスで接続する場合に必要になりますので、QRコードとPINコードは必ず保存しておいてください。", @@ -785,7 +785,7 @@ "voting.votingRegistration.qrCode.step.saveAsPdfButtonLabel": "PDFで保存する", "voting.votingRegistration.register.step.calculatingFees": "手数料を計算しています", "voting.votingRegistration.register.step.continueButtonLabel": "登録トランザクションを送信する", - "voting.votingRegistration.register.step.description": "有権者登録トランザクションに署名してください。このトランザクションは、ウォレット残高とFund{nextVotingFundNumber}有権者登録を結びつけ、議決権を証明するものとなります。資金はウォレットに残されますが、登録には画面に表示されているトランザクション手数料が必要となります。", + "voting.votingRegistration.register.step.description": "ウォレット残高と有権者登録を議決権を証明するものとしてリンクさせるために、有権者登録トランザクションに署名してください。資金はウォレットに残されますが、登録にはトランザクション手数料が必要となります。", "voting.votingRegistration.register.step.feesLabel": "手数料", "voting.votingRegistration.register.step.learnMoreLink": "もっと知る", "voting.votingRegistration.register.step.learntMoreLinkUrl": "https://iohk.zendesk.com/hc/ja/articles/900006490763", diff --git a/source/renderer/app/stores/VotingStore.ts b/source/renderer/app/stores/VotingStore.ts index 1b98482a0c..02c6128eac 100644 --- a/source/renderer/app/stores/VotingStore.ts +++ b/source/renderer/app/stores/VotingStore.ts @@ -418,12 +418,10 @@ export default class VotingStore extends Store { currentDateFormat, currentTimeFormat, } = this.stores.profile; - const nextVotingFundNumber = this.catalystFund?.next?.number; const { network, isMainnet } = this.environment; const intl = i18nContext(currentLocale); const result = await votingPDFGenerator({ - nextVotingFundNumber, qrCode, walletName, currentLocale, diff --git a/source/renderer/app/utils/votingPDFGenerator.ts b/source/renderer/app/utils/votingPDFGenerator.ts index 3f3c60567b..f175d11ed0 100644 --- a/source/renderer/app/utils/votingPDFGenerator.ts +++ b/source/renderer/app/utils/votingPDFGenerator.ts @@ -10,7 +10,7 @@ import globalMessages from '../i18n/global-messages'; const messages = defineMessages({ title: { id: 'voting.votingRegistration.pdf.title', - defaultMessage: '!!!Fund{nextVotingFundNumber} Voting Registration', + defaultMessage: '!!!Voting registration', description: 'PDF title', }, walletNameLabel: { @@ -36,7 +36,6 @@ const messages = defineMessages({ }); type Params = { - nextVotingFundNumber: number; qrCode: string; walletName: string; currentLocale: string; @@ -54,7 +53,6 @@ export enum VotingPDFGeneratorResult { } export const votingPDFGenerator = async ({ - nextVotingFundNumber, qrCode, walletName, currentLocale, @@ -66,9 +64,7 @@ export const votingPDFGenerator = async ({ intl, }: Params): Promise => { // Consolidate data - const title = intl.formatMessage(messages.title, { - nextVotingFundNumber, - }); + const title = intl.formatMessage(messages.title); const creationDate = moment().format( `${currentDateFormat} ${currentTimeFormat}` ); @@ -78,7 +74,7 @@ export const votingPDFGenerator = async ({ const author = intl.formatMessage(messages.author); // Generate the filePath const localizedFileName = intl.formatMessage(messages.filename); - const prefix = `fund${nextVotingFundNumber}-${localizedFileName}-${walletName}`; + const prefix = `catalyst-${localizedFileName}-${walletName}`; const name = generateFileNameWithTimestamp({ prefix, extension: '', diff --git a/storybook/stories/voting/Voting.stories.tsx b/storybook/stories/voting/Voting.stories.tsx index 8c624e26a3..a9dbcc4108 100644 --- a/storybook/stories/voting/Voting.stories.tsx +++ b/storybook/stories/voting/Voting.stories.tsx @@ -123,7 +123,6 @@ storiesOf('Voting / Voting Registration Wizard', module) selectedWalletId={WALLETS[0].id} isWalletAcceptable={action('isWalletAcceptable')} getStakePoolById={action('getStakePoolById')} - nextFundNumber={8} /> )) .add('Voting Registration - Step 2', () => ( @@ -132,7 +131,6 @@ storiesOf('Voting / Voting Registration Wizard', module) onBack={action('onBack')} stepsList={stepsList} activeStep={2} - nextFundNumber={8} transactionFee={ new BigNumber( number('transactionFee', 0.3, { @@ -165,7 +163,6 @@ storiesOf('Voting / Voting Registration Wizard', module) onConfirm={action('onConfirm')} onRestart={action('onRestart')} transactionError={boolean('transactionError', false)} - nextFundNumber={8} /> )) .add('Voting Registration - Step 4', () => ( @@ -174,7 +171,6 @@ storiesOf('Voting / Voting Registration Wizard', module) stepsList={stepsList} activeStep={4} onSetPinCode={action('onSetPinCode')} - nextFundNumber={8} /> )) .add('Voting Registration - Step 5', () => ( @@ -182,9 +178,8 @@ storiesOf('Voting / Voting Registration Wizard', module) onClose={action('onClose')} onDownloadPDF={action('onDownloadPDF')} stepsList={stepsList} - activeStep={2} + activeStep={5} qrCode="djkhfkwdjhfkwdhfkwjdhfkwdhf9wdyf9wdh9u3h03hd0f3hd0h30hf30dhf03dhf03dhf03dhf03dhf0u3dhf0u3dhf0u3dfh30uhfd30uh" - nextFundNumber={8} /> )); storiesOf('Voting / Voting Info', module) diff --git a/translations/messages.json b/translations/messages.json index d37ba3c962..6e63d9ba42 100644 --- a/translations/messages.json +++ b/translations/messages.json @@ -572,7 +572,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Fund{nextVotingFundNumber} Voting Registration", + "defaultMessage": "!!!Voting registration", "description": "PDF title", "id": "voting.votingRegistration.pdf.title" }, @@ -1747,7 +1747,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Voting registration for Fund{nextVotingFundNumber} is not available as you currently do not have any Shelley-compatible wallets.", + "defaultMessage": "!!!Voting registration is not available as you currently do not have any Shelley-compatible wallets.", "description": "\"No wallets\" headLine on the voting info page.", "id": "voting.info.noWallets.headLine" }, @@ -4452,9 +4452,9 @@ { "descriptors": [ { - "defaultMessage": "!!!Snapshot date:", - "description": "Voting info snapshot date label", - "id": "voting.registerToVote.dateLabel" + "defaultMessage": "!!!If you are not registered yet, make sure to register to vote in the current fund before the snapshot date.", + "description": "Voting instructions", + "id": "voting.registerToVote.votingInstructions" }, { "defaultMessage": "!!!Follow these steps to vote:", @@ -4475,11 +4475,6 @@ "defaultMessage": "!!!Register to vote", "description": "Button Label for voting registration steps", "id": "voting.registerToVote.registerToVoteButtonLabel" - }, - { - "defaultMessage": "!!!To be defined", - "description": "Text to show when Catalyst API is returning a past date value", - "id": "voting.resultsPhase.toBeDefined" } ], "path": "source/renderer/app/components/voting/voting-info/RegisterToVote.messages.ts" @@ -4540,6 +4535,11 @@ "defaultMessage": "!!!Fund{votingFundNumber}", "description": "Current fund name", "id": "voting.fundName" + }, + { + "defaultMessage": "Register to vote", + "description": "Right hand side section header", + "id": "voting.registerToVote.header" } ], "path": "source/renderer/app/components/voting/voting-info/VotingInfo.messages.ts" @@ -4657,7 +4657,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Please enter a PIN for your Fund{nextVotingFundNumber} voting registration. The PIN you set here, and the QR code which you will get in the next step, will be required for you to vote using the Catalyst Voting app on your smartphone.", + "defaultMessage": "!!!Set a PIN for your voting registration. You will need this PIN and the QR code you will get in the next step to vote in the Catalyst Voting app.", "description": "Description on the voting registration \"enter pin code\" step.", "id": "voting.votingRegistration.enterPinCode.step.description" }, @@ -4722,7 +4722,7 @@ "id": "voting.votingRegistration.qrCode.step.checkbox1Label" }, { - "defaultMessage": "!!!I acknowledge that I must have the downloaded PDF with the QR code, to vote with Fund{nextVotingFundNumber}.", + "defaultMessage": "!!!I acknowledge that I must have the downloaded PDF with the QR code to vote.", "description": "Second checkbox label on the voting registration \"qr code\" step.", "id": "voting.votingRegistration.qrCode.step.checkbox2Label" }, @@ -4742,7 +4742,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Please sign the voting registration transaction. This transaction links your wallet balance with your Fund{nextVotingFundNumber} voting registration, as a proof of your voting power. Funds will not leave your wallet, but registration requires paying transaction fees, as displayed on-screen.", + "defaultMessage": "!!!Sign the voting registration transaction to link your wallet balance with your voting registration as proof of your voting power. Funds will not leave your wallet, but registration requires transaction fees.", "description": "Description on the voting registration \"sign\" step.", "id": "voting.votingRegistration.register.step.description" }, @@ -7317,12 +7317,12 @@ { "descriptors": [ { - "defaultMessage": "!!!Cancel Fund{nextVotingFundNumber} voting registration?", + "defaultMessage": "!!!Cancel voting registration?", "description": "Headline for the voting registration cancellation confirmation dialog.", "id": "voting.votingRegistration.dialog.confirmation.headline" }, { - "defaultMessage": "!!!Are you sure that you want to cancel Fund{nextVotingFundNumber} voting registration? The transaction fee you paid for the voting registration transaction will be lost and you will need to repeat the registration from the beginning.", + "defaultMessage": "!!!Are you sure you want to cancel your voting registration? You will lose the registration fee, and you will need to restart the process.", "description": "Content for the voting registration cancellation confirmation dialog.", "id": "voting.votingRegistration.dialog.confirmation.content" }, @@ -7342,7 +7342,7 @@ { "descriptors": [ { - "defaultMessage": "!!!Register for Fund{nextVotingFundNumber} voting", + "defaultMessage": "!!!Register for voting", "description": "Tile \"Register to vote\" for voting registration", "id": "voting.votingRegistration.dialog.dialogTitle" },