diff options
Diffstat (limited to 'packages/taler-wallet-webextension/src/wallet')
7 files changed, 315 insertions, 121 deletions
diff --git a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx index d67fa413a..0cd375b7c 100644 --- a/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DepositPage.tsx @@ -18,7 +18,6 @@ import { AmountJson, Amounts, PaytoUri } from "@gnu-taler/taler-util"; import { DepositGroupFees } from "@gnu-taler/taler-wallet-core/src/operations/deposits"; import { Fragment, h, VNode } from "preact"; import { useState } from "preact/hooks"; -import { Amount } from "../components/Amount.js"; import { Loading } from "../components/Loading.js"; import { LoadingError } from "../components/LoadingError.js"; import { SelectList } from "../components/SelectList.js"; diff --git a/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx b/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx index fa1a606f7..3143aafa1 100644 --- a/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx +++ b/packages/taler-wallet-webextension/src/wallet/DestinationSelection.tsx @@ -329,14 +329,16 @@ export function DestinationSelectionGetCash({ }} /> <Button onClick={async () => setCurrency(undefined)}> - Change currency + <i18n.Translate>Change currency</i18n.Translate> </Button> </Grid> <Grid container spacing={1} columns={1}> {previous.length > 0 ? ( <Fragment> - <p>Use previous origins:</p> + <p> + <i18n.Translate>Use previous origins:</i18n.Translate> + </p> <Grid item xs={1}> <Paper style={{ padding: 8 }}> <ContactTable> @@ -354,35 +356,45 @@ export function DestinationSelectionGetCash({ ) : undefined} {previous.length > 0 ? ( <Grid item> - <p>Or specify a new origin for the money</p> + <p> + <i18n.Translate> + Or specify the origin of the money + </i18n.Translate> + </p> </Grid> ) : ( <Grid item> - <p>Specify a origin for the money</p> + <p> + <i18n.Translate>Specify the origin of the money</i18n.Translate> + </p> </Grid> )} <Grid item container columns={2} spacing={1}> <Grid item xs={1}> <Paper style={{ padding: 8 }}> - <p>From my bank account</p> + <p> + <i18n.Translate>From my bank account</i18n.Translate> + </p> <Button disabled={invalid} onClick={async () => goToWalletManualWithdraw(currencyAndAmount) } > - Withdraw + <i18n.Translate>Withdraw</i18n.Translate> </Button> </Paper> </Grid> <Grid item xs={1}> <Paper style={{ padding: 8 }}> - <p>From another wallet</p> + <p> + <i18n.Translate>From another wallet</i18n.Translate> + </p> <Button disabled={invalid} onClick={async () => goToWalletWalletInvoice(currencyAndAmount)} > - Invoice + <i18n.Translate>Invoice</i18n.Translate> </Button> </Paper> </Grid> @@ -428,7 +440,11 @@ export function DestinationSelectionSendCash({ const previous = previous1; if (!currency) { - return <div>currency not provided</div>; + return ( + <div> + <i18n.Translate>currency not provided</i18n.Translate> + </div> + ); } const currencyAndAmount = `${currency}:${amount}`; const parsedAmount = Amounts.parse(currencyAndAmount); @@ -459,7 +475,9 @@ export function DestinationSelectionSendCash({ <Grid container spacing={1} columns={1}> {previous.length > 0 ? ( <Fragment> - <p>Use previous destinations:</p> + <p> + <i18n.Translate>Use previous destinations:</i18n.Translate> + </p> <Grid item xs={1}> <Paper style={{ padding: 8 }}> <ContactTable> @@ -477,33 +495,45 @@ export function DestinationSelectionSendCash({ ) : undefined} {previous.length > 0 ? ( <Grid item> - <p>Or specify a new destination for the money</p> + <p> + <i18n.Translate> + Or specify the destination of the money + </i18n.Translate> + </p> </Grid> ) : ( <Grid item> - <p>Specify a destination for the money</p> + <p> + <i18n.Translate> + Specify the destination of the money + </i18n.Translate> + </p> </Grid> )} <Grid item container columns={2} spacing={1}> <Grid item xs={1}> <Paper style={{ padding: 8 }}> - <p>To my bank account</p> + <p> + <i18n.Translate>To my bank account</i18n.Translate> + </p> <Button disabled={invalid} onClick={async () => goToWalletBankDeposit(currencyAndAmount)} > - Deposit + <i18n.Translate>Deposit</i18n.Translate> </Button> </Paper> </Grid> <Grid item xs={1}> <Paper style={{ padding: 8 }}> - <p>To another wallet</p> + <p> + <i18n.Translate>To another wallet</i18n.Translate> + </p> <Button disabled={invalid} onClick={async () => goToWalletWalletSend(currencyAndAmount)} > - Send + <i18n.Translate>Send</i18n.Translate> </Button> </Paper> </Grid> diff --git a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx index a6bd2e7dc..4cd90700f 100644 --- a/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx +++ b/packages/taler-wallet-webextension/src/wallet/ExchangeSelection/views.tsx @@ -114,7 +114,11 @@ export function LoadingUriView({ error }: State.LoadingUriError): VNode { export function NoExchangesView(state: State.NoExchanges): VNode { const { i18n } = useTranslationContext(); - return <div>no exchanges</div>; + return ( + <div> + <i18n.Translate>no exchanges</i18n.Translate> + </div> + ); } export function ComparingView({ @@ -157,19 +161,23 @@ export function ComparingView({ </p> <ButtonGroup> <Button variant="outlined" onClick={onReset.onClick}> - Reset + <i18n.Translate>Reset</i18n.Translate> </Button> <Button variant="contained" onClick={onSelect.onClick}> - Use this exchange + <i18n.Translate>Use this exchange</i18n.Translate> </Button> </ButtonGroup> </div> </section> <section> <dl> - <dt>Auditors</dt> + <dt> + <i18n.Translate>Auditors</i18n.Translate> + </dt> {selected.auditors.length === 0 ? ( - <dd style={{ color: "red" }}>Doesn't have auditors</dd> + <dd style={{ color: "red" }}> + <i18n.Translate>Doesn't have auditors</i18n.Translate> + </dd> ) : ( selected.auditors.map((a) => { <dd>{a.auditor_url}</dd>; @@ -178,63 +186,99 @@ export function ComparingView({ </dl> <table> <tr> - <td>currency</td> + <td> + <i18n.Translate>currency</i18n.Translate> + </td> <td>{selected.currency}</td> </tr> </table> </section> <section> - <h2>Operations</h2> - <p>Deposits</p> + <h2> + <i18n.Translate>Operations</i18n.Translate> + </h2> + <p> + <i18n.Translate>Deposits</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeePairByValue list={pairTimeline.deposit} /> </tbody> </FeeDescriptionTable> - <p>Withdrawals</p> + <p> + <i18n.Translate>Withdrawals</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeePairByValue list={pairTimeline.withdraw} /> </tbody> </FeeDescriptionTable> - <p>Refunds</p> + <p> + <i18n.Translate>Refunds</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeePairByValue list={pairTimeline.refund} /> </tbody> </FeeDescriptionTable>{" "} - <p>Refresh</p> + <p> + <i18n.Translate>Refresh</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> @@ -246,8 +290,12 @@ export function ComparingView({ <table> <thead> <tr> - <td>Wallet operations</td> - <td>Fee</td> + <td> + <i18n.Translate>Wallet operations</i18n.Translate> + </td> + <td> + <i18n.Translate>Fee</i18n.Translate> + </td> </tr> </thead> <tbody> @@ -331,7 +379,7 @@ export function ReadyView({ </Input> </p> <Button variant="outlined" onClick={onClose.onClick}> - Close + <i18n.Translate>Close</i18n.Translate> </Button> </div> </section> @@ -339,7 +387,9 @@ export function ReadyView({ <dl> <dt>Auditors</dt> {selected.auditors.length === 0 ? ( - <dd style={{ color: "red" }}>Doesn't have auditors</dd> + <dd style={{ color: "red" }}> + <i18n.Translate>Doesn't have auditors</i18n.Translate> + </dd> ) : ( selected.auditors.map((a) => { <dd>{a.auditor_url}</dd>; @@ -348,63 +398,99 @@ export function ReadyView({ </dl> <table> <tr> - <td>currency</td> + <td> + <i18n.Translate>currency</i18n.Translate> + </td> <td>{selected.currency}</td> </tr> </table> </section> <section> - <h2>Operations</h2> - <p>Deposits</p> + <h2> + <i18n.Translate>Operations</i18n.Translate> + </h2> + <p> + <i18n.Translate>Deposits</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeeDescriptionByValue first={timeline.deposit} /> </tbody> </FeeDescriptionTable> - <p>Withdrawals</p> + <p> + <i18n.Translate>Withdrawals</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeeDescriptionByValue first={timeline.withdraw} /> </tbody> </FeeDescriptionTable> - <p>Refunds</p> + <p> + <i18n.Translate>Refunds</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> <RenderFeeDescriptionByValue first={timeline.refund} /> </tbody> </FeeDescriptionTable>{" "} - <p>Refresh</p> + <p> + <i18n.Translate>Refresh</i18n.Translate> + </p> <FeeDescriptionTable> <thead> <tr> <th> </th> - <th>Denomination</th> - <th class="fee">Fee</th> - <th>Until</th> + <th> + <i18n.Translate>Denomination</i18n.Translate> + </th> + <th class="fee"> + <i18n.Translate>Fee</i18n.Translate> + </th> + <th> + <i18n.Translate>Until</i18n.Translate> + </th> </tr> </thead> <tbody> @@ -416,8 +502,12 @@ export function ReadyView({ <table> <thead> <tr> - <td>Wallet operations</td> - <td>Fee</td> + <td> + <i18n.Translate>Wallet operations</i18n.Translate> + </td> + <td> + <i18n.Translate>Fee</i18n.Translate> + </td> </tr> </thead> <tbody> diff --git a/packages/taler-wallet-webextension/src/wallet/History.tsx b/packages/taler-wallet-webextension/src/wallet/History.tsx index e885a216d..6a8362ddb 100644 --- a/packages/taler-wallet-webextension/src/wallet/History.tsx +++ b/packages/taler-wallet-webextension/src/wallet/History.tsx @@ -231,7 +231,9 @@ export function HistoryView({ </section> {datesWithTransaction.length === 0 ? ( <section> - <i18n.Translate>There is no history for this currency</i18n.Translate> + <i18n.Translate> + Your transaction history is empty for this currency. + </i18n.Translate> </section> ) : ( <section> diff --git a/packages/taler-wallet-webextension/src/wallet/QrReader.tsx b/packages/taler-wallet-webextension/src/wallet/QrReader.tsx index c574050e0..06897338d 100644 --- a/packages/taler-wallet-webextension/src/wallet/QrReader.tsx +++ b/packages/taler-wallet-webextension/src/wallet/QrReader.tsx @@ -19,6 +19,7 @@ import { styled } from "@linaria/react"; import { Fragment, h, VNode } from "preact"; import { Ref, useEffect, useRef, useState } from "preact/hooks"; import QrScanner from "qr-scanner"; +import { useTranslationContext } from "../context/translation.js"; import { Alert } from "../mui/Alert.js"; import { Button } from "../mui/Button.js"; import { TextField } from "../mui/TextField.js"; @@ -49,6 +50,7 @@ export function QrReaderPage({ onDetected }: Props): VNode { const qrScanner = useRef<QrScanner | null>(null); const [value, onChange] = useState(""); const [active, setActive] = useState(false); + const { i18n } = useTranslationContext(); function start(): void { qrScanner.current!.start(); @@ -96,14 +98,17 @@ export function QrReaderPage({ onDetected }: Props): VNode { }, []); const isValid = check(value); - return ( <Container> {/* <InputFile onChange={(f) => scanImage(imageRef, f)}> Read QR from file </InputFile> <div ref={imageRef} /> */} - <h1>Scan a QR code or enter taler:// URI below</h1> + <h1> + <i18n.Translate> + Scan a QR code or enter taler:// URI below + </i18n.Translate> + </h1> <QrVideo ref={videoRef} /> <TextField label="Taler URI" @@ -114,16 +119,18 @@ export function QrReaderPage({ onDetected }: Props): VNode { /> {isValid && ( <Button variant="contained" onClick={async () => onDetected(value)}> - Open + <i18n.Translate>Open/</i18n.Translate> </Button> )} {!active && !isValid && ( <Fragment> <Alert severity="error"> - URI is not valid. Taler URI should start with `taler://` + <i18n.Translate> + URI is not valid. Taler URI should start with `taler://` + </i18n.Translate> </Alert> <Button variant="contained" onClick={async () => start()}> - Try another + <i18n.Translate>Try another</i18n.Translate> </Button> </Fragment> )} diff --git a/packages/taler-wallet-webextension/src/wallet/Settings.tsx b/packages/taler-wallet-webextension/src/wallet/Settings.tsx index 5219bbb38..28ee229eb 100644 --- a/packages/taler-wallet-webextension/src/wallet/Settings.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Settings.tsx @@ -231,13 +231,15 @@ export function SettingsView({ </LinkPrimary> </div> - <SubTitle>Troubleshooting</SubTitle> + <SubTitle> + <i18n.Translate>Troubleshooting</i18n.Translate> + </SubTitle> <Checkbox label={<i18n.Translate>Developer mode</i18n.Translate>} name="devMode" description={ <i18n.Translate> - (More options and information useful for debugging) + More options and information useful for debugging </i18n.Translate> } enabled={developerMode} diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx index c1f5861e8..3d2a16e8f 100644 --- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx +++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx @@ -385,21 +385,25 @@ export function TransactionView({ return ( <tr key={i}> <td> - {<Amount value={r.amountEffective} />}{" "} - <a - href={Pages.balanceTransaction({ - tid: r.transactionId, - })} - > - was refunded - </a>{" "} - on{" "} - { - <Time - timestamp={AbsoluteTime.fromTimestamp(r.timestamp)} - format="dd MMMM yyyy" - /> - } + <i18n.Translate> + {<Amount value={r.amountEffective} />}{" "} + <a + href={Pages.balanceTransaction({ + tid: r.transactionId, + })} + > + was refunded + </a>{" "} + on{" "} + { + <Time + timestamp={AbsoluteTime.fromTimestamp( + r.timestamp, + )} + format="dd MMMM yyyy" + /> + } + </i18n.Translate> </td> </tr> ); @@ -588,16 +592,24 @@ export function TransactionView({ return ( <div> <QR text={text} /> - <Button onClick={copy}>copy</Button> - <Button onClick={toggle}>hide qr</Button> + <Button onClick={copy}> + <i18n.Translate>copy</i18n.Translate> + </Button> + <Button onClick={toggle}> + <i18n.Translate>hide qr</i18n.Translate> + </Button> </div> ); } return ( <div> <div>{text.substring(0, 64)}...</div> - <Button onClick={copy}>copy</Button> - <Button onClick={toggle}>show qr</Button> + <Button onClick={copy}> + <i18n.Translate>copy</i18n.Translate> + </Button> + <Button onClick={toggle}> + <i18n.Translate>show qr</i18n.Translate> + </Button> </div> ); } @@ -612,7 +624,7 @@ export function TransactionView({ total={total} kind="positive" > - Invoice + <i18n.Translate>Invoice</i18n.Translate> </Header> {transaction.info.summary ? ( @@ -659,7 +671,7 @@ export function TransactionView({ total={total} kind="negative" > - Invoice + <i18n.Translate>Invoice</i18n.Translate> </Header> {transaction.info.summary ? ( @@ -698,7 +710,7 @@ export function TransactionView({ total={total} kind="negative" > - Transfer + <i18n.Translate>Transfer</i18n.Translate> </Header> {transaction.info.summary ? ( @@ -745,7 +757,7 @@ export function TransactionView({ total={total} kind="positive" > - Transfer + <i18n.Translate>Transfer</i18n.Translate> </Header> {transaction.info.summary ? ( @@ -922,7 +934,9 @@ function DeliveryDetails({ {date && ( <Fragment> <tr> - <td>Date</td> + <td> + <i18n.Translate>Date</i18n.Translate> + </td> <td> <Time timestamp={AbsoluteTime.fromTimestamp(date)} @@ -965,7 +979,9 @@ export function InvoiceDetails({ amount }: { amount: AmountWithFee }): VNode { return ( <PurchaseDetailsTable> <tr> - <td>Invoice</td> + <td> + <i18n.Translate>Invoice</i18n.Translate> + </td> <td> <Amount value={amount.raw} maxFracSize={maxFrac} /> </td> @@ -973,7 +989,9 @@ export function InvoiceDetails({ amount }: { amount: AmountWithFee }): VNode { {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -985,7 +1003,9 @@ export function InvoiceDetails({ amount }: { amount: AmountWithFee }): VNode { </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={amount.effective} maxFracSize={maxFrac} /> </td> @@ -1006,7 +1026,9 @@ export function TransferDetails({ amount }: { amount: AmountWithFee }): VNode { return ( <PurchaseDetailsTable> <tr> - <td>Transfer</td> + <td> + <i18n.Translate>Transfer</i18n.Translate> + </td> <td> <Amount value={amount.raw} maxFracSize={maxFrac} /> </td> @@ -1014,7 +1036,9 @@ export function TransferDetails({ amount }: { amount: AmountWithFee }): VNode { {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1026,7 +1050,9 @@ export function TransferDetails({ amount }: { amount: AmountWithFee }): VNode { </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={amount.effective} maxFracSize={maxFrac} /> </td> @@ -1047,7 +1073,9 @@ export function WithdrawDetails({ amount }: { amount: AmountWithFee }): VNode { return ( <PurchaseDetailsTable> <tr> - <td>Withdraw</td> + <td> + <i18n.Translate>Withdraw</i18n.Translate> + </td> <td> <Amount value={amount.raw} maxFracSize={maxFrac} /> </td> @@ -1055,7 +1083,9 @@ export function WithdrawDetails({ amount }: { amount: AmountWithFee }): VNode { {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1067,7 +1097,9 @@ export function WithdrawDetails({ amount }: { amount: AmountWithFee }): VNode { </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={amount.effective} maxFracSize={maxFrac} /> </td> @@ -1113,7 +1145,9 @@ export function PurchaseDetails({ return ( <PurchaseDetailsTable> <tr> - <td>Price</td> + <td> + <i18n.Translate>Price</i18n.Translate> + </td> <td> <Amount value={price.raw} /> </td> @@ -1121,7 +1155,9 @@ export function PurchaseDetails({ {refund && Amounts.isNonZero(refund.raw) && ( <tr> - <td>Refunded</td> + <td> + <i18n.Translate>Refunded</i18n.Translate> + </td> <td> <Amount value={refund.raw} negative /> </td> @@ -1129,7 +1165,9 @@ export function PurchaseDetails({ )} {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} /> </td> @@ -1141,7 +1179,9 @@ export function PurchaseDetails({ </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={total} /> </td> @@ -1218,7 +1258,9 @@ function RefundDetails({ return ( <PurchaseDetailsTable> <tr> - <td>Amount</td> + <td> + <i18n.Translate>Amount</i18n.Translate> + </td> <td> <Amount value={transaction.amountRaw} maxFracSize={maxFrac} /> </td> @@ -1226,7 +1268,9 @@ function RefundDetails({ {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1238,7 +1282,9 @@ function RefundDetails({ </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={transaction.amountEffective} maxFracSize={maxFrac} /> </td> @@ -1264,7 +1310,9 @@ function DepositDetails({ return ( <PurchaseDetailsTable> <tr> - <td>Amount</td> + <td> + <i18n.Translate>Amount</i18n.Translate> + </td> <td> <Amount value={transaction.amountRaw} maxFracSize={maxFrac} /> </td> @@ -1272,7 +1320,9 @@ function DepositDetails({ {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1284,7 +1334,9 @@ function DepositDetails({ </td> </tr> <tr> - <td>Total transfer</td> + <td> + <i18n.Translate>Total transfer</i18n.Translate> + </td> <td> <Amount value={transaction.amountEffective} maxFracSize={maxFrac} /> </td> @@ -1310,13 +1362,17 @@ function RefreshDetails({ return ( <PurchaseDetailsTable> <tr> - <td>Amount</td> + <td> + <i18n.Translate>Amount</i18n.Translate> + </td> <td> <Amount value={transaction.amountRaw} maxFracSize={maxFrac} /> </td> </tr> <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1327,7 +1383,9 @@ function RefreshDetails({ </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={transaction.amountEffective} maxFracSize={maxFrac} /> </td> @@ -1350,7 +1408,9 @@ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { return ( <PurchaseDetailsTable> <tr> - <td>Amount</td> + <td> + <i18n.Translate>Amount</i18n.Translate> + </td> <td> <Amount value={transaction.amountRaw} maxFracSize={maxFrac} /> </td> @@ -1358,7 +1418,9 @@ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { {Amounts.isNonZero(fee) && ( <tr> - <td>Transaction fees</td> + <td> + <i18n.Translate>Transaction fees</i18n.Translate> + </td> <td> <Amount value={fee} negative maxFracSize={maxFrac} /> </td> @@ -1370,7 +1432,9 @@ function TipDetails({ transaction }: { transaction: TransactionTip }): VNode { </td> </tr> <tr> - <td>Total</td> + <td> + <i18n.Translate>Total</i18n.Translate> + </td> <td> <Amount value={transaction.amountEffective} maxFracSize={maxFrac} /> </td> |