Enhance clarity for swaps (#382)

* Improve clarity of swap orders

* Add descriptive send/receive amounts for swaps on Maker Page

* Add descriptive send/receive amounts for swaps on OrderDetails

* Collect new phrases

* Small fixes
This commit is contained in:
Reckless_Satoshi 2023-03-09 20:10:49 +00:00 committed by GitHub
parent c3183c73af
commit b6129bb46f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 408 additions and 174 deletions

View File

@ -1,4 +1,4 @@
import React, { useContext, useState } from 'react'; import React, { useContext, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { Grid, Paper, Collapse, Typography } from '@mui/material'; import { Grid, Paper, Collapse, Typography } from '@mui/material';
@ -32,17 +32,23 @@ const MakerPage = (): JSX.Element => {
const [showMatches, setShowMatches] = useState<boolean>(false); const [showMatches, setShowMatches] = useState<boolean>(false);
const [openNoRobot, setOpenNoRobot] = useState<boolean>(false); const [openNoRobot, setOpenNoRobot] = useState<boolean>(false);
const matches = filterOrders({ const matches = useMemo(() => {
orders: book.orders, return filterOrders({
baseFilter: { currency: fav.currency === 0 ? 1 : fav.currency, type: fav.type, mode: fav.mode }, orders: book.orders,
paymentMethods: maker.paymentMethods, baseFilter: {
amountFilter: { currency: fav.currency === 0 ? 1 : fav.currency,
amount: maker.amount, type: fav.type,
minAmount: maker.minAmount, mode: fav.mode,
maxAmount: maker.maxAmount, },
threshold: 0.7, paymentMethods: maker.paymentMethods,
}, amountFilter: {
}); amount: maker.amount,
minAmount: maker.minAmount,
maxAmount: maker.maxAmount,
threshold: 0.7,
},
});
}, [book.orders, fav, maker.amount, maker.minAmount, maker.maxAmount]);
const onViewOrder = function () { const onViewOrder = function () {
setOrder(undefined); setOrder(undefined);

View File

@ -16,6 +16,7 @@ interface OrderPageProps {
const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => { const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
const { const {
windowSize, windowSize,
info,
order, order,
robot, robot,
settings, settings,
@ -103,7 +104,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
order={order} order={order}
setOrder={setOrder} setOrder={setOrder}
baseUrl={baseUrl} baseUrl={baseUrl}
setPage={setPage} info={info}
hasRobot={robot.avatarLoaded} hasRobot={robot.avatarLoaded}
/> />
</Paper> </Paper>
@ -156,7 +157,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
order={order} order={order}
setOrder={setOrder} setOrder={setOrder}
baseUrl={baseUrl} baseUrl={baseUrl}
setPage={setPage} info={info}
hasRobot={robot.avatarLoaded} hasRobot={robot.avatarLoaded}
/> />
</div> </div>
@ -188,7 +189,7 @@ const OrderPage = ({ locationOrderId }: OrderPageProps): JSX.Element => {
order={order} order={order}
setOrder={setOrder} setOrder={setOrder}
baseUrl={baseUrl} baseUrl={baseUrl}
setPage={setPage} info={info}
hasRobot={robot.avatarLoaded} hasRobot={robot.avatarLoaded}
/> />
</Paper> </Paper>

View File

@ -5,7 +5,6 @@ import { Page } from '../../basic/NavBar';
interface ConfirmationDialogProps { interface ConfirmationDialogProps {
open: boolean; open: boolean;
onClose: () => void; onClose: () => void;
setPage: (state: Page) => void;
onClickDone: () => void; onClickDone: () => void;
hasRobot: boolean; hasRobot: boolean;
} }
@ -14,7 +13,6 @@ const ConfirmationDialog = ({
open, open,
onClose, onClose,
hasRobot, hasRobot,
setPage,
onClickDone, onClickDone,
}: ConfirmationDialogProps): JSX.Element => { }: ConfirmationDialogProps): JSX.Element => {
return hasRobot ? ( return hasRobot ? (
@ -25,7 +23,7 @@ const ConfirmationDialog = ({
onClickDone={onClickDone} onClickDone={onClickDone}
/> />
) : ( ) : (
<NoRobotDialog open={open} onClose={onClose} setPage={setPage} /> <NoRobotDialog open={open} onClose={onClose} />
); );
}; };

View File

@ -1,4 +1,4 @@
import React from 'react'; import React, { useContext } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
Dialog, Dialog,
@ -9,15 +9,15 @@ import {
Button, Button,
} from '@mui/material'; } from '@mui/material';
import { useHistory } from 'react-router-dom'; import { useHistory } from 'react-router-dom';
import { Page } from '../../basic/NavBar'; import { AppContext, AppContextProps } from '../../contexts/AppContext';
interface Props { interface Props {
open: boolean; open: boolean;
onClose: () => void; onClose: () => void;
setPage: (state: Page) => void;
} }
const NoRobotDialog = ({ open, onClose, setPage }: Props): JSX.Element => { const NoRobotDialog = ({ open, onClose }: Props): JSX.Element => {
const { setPage } = useContext<AppContextProps>(AppContext);
const { t } = useTranslation(); const { t } = useTranslation();
const history = useHistory(); const history = useHistory();

View File

@ -1,4 +1,4 @@
import React, { useContext, useEffect, useState } from 'react'; import React, { useContext, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
InputAdornment, InputAdornment,
@ -25,7 +25,7 @@ import {
IconButton, IconButton,
} from '@mui/material'; } from '@mui/material';
import { LimitList, Maker, Favorites, defaultMaker } from '../../models'; import { LimitList, defaultMaker } from '../../models';
import { LocalizationProvider, TimePicker } from '@mui/x-date-pickers'; import { LocalizationProvider, TimePicker } from '@mui/x-date-pickers';
import DateFnsUtils from '@date-io/date-fns'; import DateFnsUtils from '@date-io/date-fns';
@ -36,7 +36,7 @@ import { FlagWithProps } from '../Icons';
import AutocompletePayments from './AutocompletePayments'; import AutocompletePayments from './AutocompletePayments';
import AmountRange from './AmountRange'; import AmountRange from './AmountRange';
import currencyDict from '../../../static/assets/currencies.json'; import currencyDict from '../../../static/assets/currencies.json';
import { amountToString, pn } from '../../utils'; import { amountToString, computeSats, pn } from '../../utils';
import { SelfImprovement, Lock, HourglassTop, DeleteSweep, Edit } from '@mui/icons-material'; import { SelfImprovement, Lock, HourglassTop, DeleteSweep, Edit } from '@mui/icons-material';
import { LoadingButton } from '@mui/lab'; import { LoadingButton } from '@mui/lab';
@ -63,7 +63,7 @@ const MakerForm = ({
onOrderCreated = () => null, onOrderCreated = () => null,
hasRobot = true, hasRobot = true,
}: MakerFormProps): JSX.Element => { }: MakerFormProps): JSX.Element => {
const { fav, setFav, limits, fetchLimits, maker, setMaker, setPage, baseUrl } = const { fav, setFav, limits, info, maker, setMaker, setPage, baseUrl } =
useContext<AppContextProps>(AppContext); useContext<AppContextProps>(AppContext);
const { t } = useTranslation(); const { t } = useTranslation();
@ -81,23 +81,6 @@ const MakerForm = ({
const minRangeAmountMultiple = 1.6; const minRangeAmountMultiple = 1.6;
const amountSafeThresholds = [1.03, 0.98]; const amountSafeThresholds = [1.03, 0.98];
useEffect(() => {
setCurrencyCode(currencyDict[fav.currency == 0 ? 1 : fav.currency]);
if (Object.keys(limits.list).length === 0) {
fetchLimits().then((data) => {
updateAmountLimits(data, fav.currency, maker.premium);
updateCurrentPrice(data, fav.currency, maker.premium);
updateSatoshisLimits(data);
});
} else {
updateAmountLimits(limits.list, fav.currency, maker.premium);
updateCurrentPrice(limits.list, fav.currency, maker.premium);
updateSatoshisLimits(limits.list);
fetchLimits();
}
}, []);
const updateAmountLimits = function (limitList: LimitList, currency: number, premium: number) { const updateAmountLimits = function (limitList: LimitList, currency: number, premium: number) {
const index = currency == 0 ? 1 : currency; const index = currency == 0 ? 1 : currency;
let minAmountLimit: number = limitList[index].min_amount * (1 + premium / 100); let minAmountLimit: number = limitList[index].min_amount * (1 + premium / 100);
@ -175,7 +158,7 @@ const MakerForm = ({
}; };
const handlePremiumChange = function (e: object) { const handlePremiumChange = function (e: object) {
const max = 999; const max = fav.mode === 'fiat' ? 999 : 99;
const min = -100; const min = -100;
const newPremium = Math.floor(e.target.value * Math.pow(10, 2)) / Math.pow(10, 2); const newPremium = Math.floor(e.target.value * Math.pow(10, 2)) / Math.pow(10, 2);
let premium: number = newPremium; let premium: number = newPremium;
@ -299,23 +282,23 @@ const MakerForm = ({
} }
}; };
const minAmountError = function () { const minAmountError = useMemo(() => {
return ( return (
maker.minAmount < amountLimits[0] * 0.99 || maker.minAmount < amountLimits[0] * 0.99 ||
maker.maxAmount < maker.minAmount || maker.maxAmount < maker.minAmount ||
maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) || maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) ||
maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount
); );
}; }, [maker.minAmount, maker.maxAmount, amountLimits]);
const maxAmountError = function () { const maxAmountError = useMemo(() => {
return ( return (
maker.maxAmount > amountLimits[1] * 1.01 || maker.maxAmount > amountLimits[1] * 1.01 ||
maker.maxAmount < maker.minAmount || maker.maxAmount < maker.minAmount ||
maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) || maker.minAmount < maker.maxAmount / (maxRangeAmountMultiple + 0.15) ||
maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount maker.minAmount * (minRangeAmountMultiple - 0.1) > maker.maxAmount
); );
}; }, [maker.minAmount, maker.maxAmount, amountLimits]);
const resetRange = function (advancedOptions: boolean) { const resetRange = function (advancedOptions: boolean) {
const index = fav.currency === 0 ? 1 : fav.currency; const index = fav.currency === 0 ? 1 : fav.currency;
@ -368,19 +351,51 @@ const MakerForm = ({
}); });
}; };
const disableSubmit = function () { const amountLabel = useMemo(() => {
const defaultRoutingBudget = 0.001;
let label = t('Amount');
let helper = '';
let swapSats = 0;
if (fav.mode === 'swap') {
if (fav.type === 1) {
swapSats = computeSats({
amount: Number(maker.amount),
premium: Number(maker.premium),
fee: -info.maker_fee,
routingBudget: defaultRoutingBudget,
});
label = t('Onchain amount to send (BTC)');
helper = t('You receive approx {{swapSats}} LN Sats (fees might vary)', {
swapSats,
});
} else if (fav.type === 0) {
swapSats = computeSats({
amount: Number(maker.amount),
premium: Number(maker.premium),
fee: info.maker_fee,
});
label = t('Onchain amount to receive (BTC)');
helper = t('You send approx {{swapSats}} LN Sats (fees might vary)', {
swapSats,
});
}
}
return { label, helper, swapSats };
}, [fav, maker.amount, maker.premium, info]);
const disableSubmit = useMemo(() => {
return ( return (
fav.type == null || fav.type == null ||
(maker.amount != '' && (maker.amount != '' &&
!maker.advancedOptions && !maker.advancedOptions &&
(maker.amount < amountLimits[0] || maker.amount > amountLimits[1])) || (maker.amount < amountLimits[0] || maker.amount > amountLimits[1])) ||
(maker.amount == null && (!maker.advancedOptions || limits.loading)) || (maker.amount == null && (!maker.advancedOptions || limits.loading)) ||
(maker.advancedOptions && (minAmountError() || maxAmountError())) || (maker.advancedOptions && (minAmountError || maxAmountError)) ||
(maker.amount <= 0 && !maker.advancedOptions) || (maker.amount <= 0 && !maker.advancedOptions) ||
(maker.isExplicit && (maker.badSatoshisText != '' || maker.satoshis == '')) || (maker.isExplicit && (maker.badSatoshisText != '' || maker.satoshis == '')) ||
(!maker.isExplicit && maker.badPremiumText != '') (!maker.isExplicit && maker.badPremiumText != '')
); );
}; }, [maker, amountLimits, limits, fav.type]);
const clearMaker = function () { const clearMaker = function () {
setFav({ ...fav, type: null }); setFav({ ...fav, type: null });
@ -393,7 +408,7 @@ const MakerForm = ({
component='h2' component='h2'
variant='subtitle2' variant='subtitle2'
align='center' align='center'
color={disableSubmit() ? 'text.secondary' : 'text.primary'} color={disableSubmit ? 'text.secondary' : 'text.primary'}
> >
{fav.type == null {fav.type == null
? t(fav.mode === 'fiat' ? 'Order for ' : 'Swap of ') ? t(fav.mode === 'fiat' ? 'Order for ' : 'Swap of ')
@ -553,7 +568,7 @@ const MakerForm = ({
</Grid> </Grid>
</Grid> </Grid>
<Grid item> <Grid item sx={{ width: '100%' }}>
<Collapse in={maker.advancedOptions}> <Collapse in={maker.advancedOptions}>
<AmountRange <AmountRange
minAmount={maker.minAmount} minAmount={maker.minAmount}
@ -563,8 +578,8 @@ const MakerForm = ({
handleCurrencyChange={handleCurrencyChange} handleCurrencyChange={handleCurrencyChange}
amountLimits={amountLimits} amountLimits={amountLimits}
maxAmount={maker.maxAmount} maxAmount={maker.maxAmount}
minAmountError={minAmountError()} minAmountError={minAmountError}
maxAmountError={maxAmountError()} maxAmountError={maxAmountError}
handleMinAmountChange={handleMinAmountChange} handleMinAmountChange={handleMinAmountChange}
handleMaxAmountChange={handleMaxAmountChange} handleMaxAmountChange={handleMaxAmountChange}
/> />
@ -572,7 +587,7 @@ const MakerForm = ({
<Collapse in={!maker.advancedOptions}> <Collapse in={!maker.advancedOptions}>
<Grid item> <Grid item>
<Grid container alignItems='stretch' style={{ display: 'flex' }}> <Grid container alignItems='stretch' style={{ display: 'flex' }}>
<Grid item xs={6}> <Grid item xs={fav.mode === 'fiat' ? 6 : 12}>
<Tooltip <Tooltip
placement='top' placement='top'
enterTouchDelay={500} enterTouchDelay={500}
@ -603,7 +618,7 @@ const MakerForm = ({
}) })
: null : null
} }
label={t('Amount')} label={amountLabel.label}
required={true} required={true}
value={maker.amount} value={maker.amount}
type='number' type='number'
@ -618,29 +633,41 @@ const MakerForm = ({
onChange={(e) => setMaker({ ...maker, amount: e.target.value })} onChange={(e) => setMaker({ ...maker, amount: e.target.value })}
/> />
</Tooltip> </Tooltip>
{fav.mode === 'swap' && maker.amount != '' ? (
<FormHelperText sx={{ textAlign: 'center' }}>
{amountLabel.helper}
</FormHelperText>
) : null}
</Grid> </Grid>
<Grid item xs={6}> {fav.mode === 'fiat' ? (
<Select <Grid item xs={6}>
fullWidth <Select
sx={{ backgroundColor: theme.palette.background.paper, borderRadius: '4px' }} fullWidth
required={true} sx={{
inputProps={{ backgroundColor: theme.palette.background.paper,
style: { textAlign: 'center' }, borderRadius: '4px',
}} }}
value={fav.currency == 0 ? 1 : fav.currency} required={true}
onChange={(e) => handleCurrencyChange(e.target.value)} inputProps={{
> style: { textAlign: 'center' },
{Object.entries(currencyDict).map(([key, value]) => ( }}
<MenuItem key={key} value={parseInt(key)}> value={fav.currency == 0 ? 1 : fav.currency}
<div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}> onChange={(e) => handleCurrencyChange(e.target.value)}
<FlagWithProps code={value} /> >
{' ' + value} {Object.entries(currencyDict).map(([key, value]) => (
</div> <MenuItem key={key} value={parseInt(key)}>
</MenuItem> <div
))} style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap' }}
</Select> >
</Grid> <FlagWithProps code={value} />
{' ' + value}
</div>
</MenuItem>
))}
</Select>
</Grid>
) : null}
</Grid> </Grid>
</Grid> </Grid>
</Collapse> </Collapse>
@ -914,7 +941,7 @@ const MakerForm = ({
<Grid container direction='row' justifyItems='center' alignItems='center' spacing={1}> <Grid container direction='row' justifyItems='center' alignItems='center' spacing={1}>
<Grid item> <Grid item>
{/* conditions to disable the make button */} {/* conditions to disable the make button */}
{disableSubmit() ? ( {disableSubmit ? (
<Tooltip enterTouchDelay={0} title={t('You must fill the form correctly')}> <Tooltip enterTouchDelay={0} title={t('You must fill the form correctly')}>
<div> <div>
<Button disabled color='primary' variant='contained'> <Button disabled color='primary' variant='contained'>

View File

@ -1,4 +1,4 @@
import React, { useState } from 'react'; import React, { useState, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
Dialog, Dialog,
@ -30,7 +30,6 @@ interface TakeButtonProps {
setOrder: (state: Order) => void; setOrder: (state: Order) => void;
baseUrl: string; baseUrl: string;
hasRobot: boolean; hasRobot: boolean;
setPage: (state: Page) => void;
} }
interface OpenDialogsProps { interface OpenDialogsProps {
@ -39,13 +38,7 @@ interface OpenDialogsProps {
} }
const closeAll = { inactiveMaker: false, confirmation: false }; const closeAll = { inactiveMaker: false, confirmation: false };
const TakeButton = ({ const TakeButton = ({ order, setOrder, baseUrl, hasRobot }: TakeButtonProps): JSX.Element => {
order,
setOrder,
baseUrl,
setPage,
hasRobot,
}: TakeButtonProps): JSX.Element => {
const { t } = useTranslation(); const { t } = useTranslation();
const theme = useTheme(); const theme = useTheme();
@ -103,7 +96,7 @@ const TakeButton = ({
} }
}; };
const amountHelperText = function () { const amountHelperText = useMemo(() => {
const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount); const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount);
if (amount < Number(order.min_amount) && takeAmount != '') { if (amount < Number(order.min_amount) && takeAmount != '') {
return t('Too low'); return t('Too low');
@ -112,7 +105,7 @@ const TakeButton = ({
} else { } else {
return null; return null;
} }
}; }, [order, takeAmount]);
const onTakeOrderClicked = function () { const onTakeOrderClicked = function () {
if (order.maker_status == 'Inactive') { if (order.maker_status == 'Inactive') {
@ -122,7 +115,7 @@ const TakeButton = ({
} }
}; };
const invalidTakeAmount = function () { const invalidTakeAmount = useMemo(() => {
const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount); const amount = order.currency == 1000 ? Number(takeAmount) / 100000000 : Number(takeAmount);
return ( return (
amount < Number(order.min_amount) || amount < Number(order.min_amount) ||
@ -130,7 +123,7 @@ const TakeButton = ({
takeAmount == '' || takeAmount == '' ||
takeAmount == null takeAmount == null
); );
}; }, [takeAmount, order]);
const takeOrderButton = function () { const takeOrderButton = function () {
if (order.has_range) { if (order.has_range) {
@ -157,8 +150,8 @@ const TakeButton = ({
title={t('Enter amount of fiat to exchange for bitcoin')} title={t('Enter amount of fiat to exchange for bitcoin')}
> >
<TextField <TextField
error={takeAmount === '' ? false : invalidTakeAmount()} error={takeAmount === '' ? false : invalidTakeAmount}
helperText={amountHelperText()} helperText={amountHelperText}
label={t('Amount {{currencyCode}}', { currencyCode })} label={t('Amount {{currencyCode}}', { currencyCode })}
size='small' size='small'
type='number' type='number'
@ -176,7 +169,7 @@ const TakeButton = ({
<Grid item> <Grid item>
<div <div
style={{ style={{
display: invalidTakeAmount() ? '' : 'none', display: invalidTakeAmount ? '' : 'none',
}} }}
> >
<Tooltip <Tooltip
@ -201,7 +194,7 @@ const TakeButton = ({
</div> </div>
<div <div
style={{ style={{
display: invalidTakeAmount() ? 'none' : '', display: invalidTakeAmount ? 'none' : '',
}} }}
> >
<LoadingButton <LoadingButton
@ -276,7 +269,6 @@ const TakeButton = ({
<ConfirmationDialog <ConfirmationDialog
open={open.confirmation} open={open.confirmation}
onClose={() => setOpen({ ...open, confirmation: false })} onClose={() => setOpen({ ...open, confirmation: false })}
setPage={setPage}
onClickDone={() => { onClickDone={() => {
takeOrder(); takeOrder();
setLoadingTake(true); setLoadingTake(true);

View File

@ -1,4 +1,4 @@
import React from 'react'; import React, { useState, useMemo } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { import {
List, List,
@ -13,6 +13,7 @@ import {
Collapse, Collapse,
useTheme, useTheme,
Typography, Typography,
IconButton,
} from '@mui/material'; } from '@mui/material';
import Countdown, { CountdownRenderProps, zeroPad } from 'react-countdown'; import Countdown, { CountdownRenderProps, zeroPad } from 'react-countdown';
@ -26,37 +27,39 @@ import {
Payments, Payments,
Article, Article,
HourglassTop, HourglassTop,
ExpandLess,
ExpandMore,
} from '@mui/icons-material'; } from '@mui/icons-material';
import { PaymentStringAsIcons } from '../../components/PaymentMethods'; import { PaymentStringAsIcons } from '../../components/PaymentMethods';
import { FlagWithProps } from '../Icons'; import { FlagWithProps, SendReceiveIcon } from '../Icons';
import LinearDeterminate from './LinearDeterminate'; import LinearDeterminate from './LinearDeterminate';
import { Order } from '../../models'; import { Order, Info } from '../../models';
import { statusBadgeColor, pn, amountToString } from '../../utils'; import { statusBadgeColor, pn, amountToString, computeSats } from '../../utils';
import { Page } from '../../basic/NavBar';
import TakeButton from './TakeButton'; import TakeButton from './TakeButton';
interface OrderDetailsProps { interface OrderDetailsProps {
order: Order; order: Order;
setOrder: (state: Order) => void; setOrder: (state: Order) => void;
info: Info;
baseUrl: string; baseUrl: string;
hasRobot: boolean; hasRobot: boolean;
setPage: (state: Page) => void;
} }
const OrderDetails = ({ const OrderDetails = ({
order, order,
info,
setOrder, setOrder,
baseUrl, baseUrl,
setPage,
hasRobot, hasRobot,
}: OrderDetailsProps): JSX.Element => { }: OrderDetailsProps): JSX.Element => {
const { t } = useTranslation(); const { t } = useTranslation();
const theme = useTheme(); const theme = useTheme();
const currencyCode: string = currencies[`${order.currency}`]; const currencyCode: string = currencies[`${order.currency}`];
const [showSwapDetails, setShowSwapDetails] = useState<boolean>(false);
const AmountString = function () { const amountString = useMemo(() => {
// precision to 8 decimal if currency is BTC otherwise 4 decimals // precision to 8 decimal if currency is BTC otherwise 4 decimals
if (order.currency == 1000) { if (order.currency == 1000) {
return ( return (
@ -75,7 +78,7 @@ const OrderDetails = ({
order.max_amount, order.max_amount,
); );
} }
}; }, [order.currency, order.amount, order.min_amount, order.max_amount, order.has_range]);
// Countdown Renderer callback with condition // Countdown Renderer callback with condition
const countdownRenderer = function ({ const countdownRenderer = function ({
@ -138,6 +141,71 @@ const OrderDetails = ({
} }
}; };
const swap = useMemo(() => {
let send: string = '';
let receive: string = '';
let swapSats: string = '';
const isSwapIn = (order.type == 0 && order.is_maker) || (order.type == 1 && !order.is_maker);
const tradeFee = order.is_maker ? info.maker_fee : info.taker_fee;
const defaultRoutingBudget = 0.001;
if (order.currency === 1000) {
if (isSwapIn) {
if (order.amount) {
swapSats = computeSats({
amount: order.amount,
premium: order.premium,
fee: -tradeFee,
routingBudget: defaultRoutingBudget,
});
} else {
const swapMin = computeSats({
amount: Number(order.min_amount),
premium: order.premium,
fee: -tradeFee,
routingBudget: defaultRoutingBudget,
});
const swapMax = computeSats({
amount: Number(order.max_amount),
premium: order.premium,
fee: -tradeFee,
routingBudget: defaultRoutingBudget,
});
swapSats = `${swapMin}-${swapMax}`;
}
send = t('You send via {{method}} {{amount}}', {
amount: amountString,
method: order.payment_method,
});
receive = t('You receive via Lightning {{amount}} Sats (routing budget may vary)', {
amount: swapSats,
});
} else {
if (order.amount) {
swapSats = computeSats({ amount: order.amount, premium: order.premium, fee: tradeFee });
} else {
const swapMin = computeSats({
amount: order.min_amount,
premium: order.premium,
fee: tradeFee,
});
const swapMax = computeSats({
amount: order.max_amount,
premium: order.premium,
fee: tradeFee,
});
swapSats = `${swapMin}-${swapMax}`;
}
send = t('You send via Lightning {{amount}} Sats', { amount: swapSats });
receive = t('You receive via {{method}} {{amount}}', {
amount: amountString,
method: order.payment_method,
});
}
}
return { send, receive, isSwapIn };
}, [order.currency, order.amount, order.has_range]);
return ( return (
<Grid container spacing={0}> <Grid container spacing={0}>
<Grid item xs={12}> <Grid item xs={12}>
@ -185,7 +253,6 @@ const OrderDetails = ({
</ListItemAvatar> </ListItemAvatar>
</ListItem> </ListItem>
</Collapse> </Collapse>
<Divider> <Divider>
<Chip label={t('Order Details')} /> <Chip label={t('Order Details')} />
</Divider> </Divider>
@ -216,10 +283,42 @@ const OrderDetails = ({
</div> </div>
</ListItemIcon> </ListItemIcon>
<ListItemText <ListItemText
primary={AmountString()} primary={amountString}
secondary={order.amount && !order.has_range ? 'Amount' : 'Amount Range'} secondary={order.amount ? 'Amount' : 'Amount Range'}
/> />
<ListItemIcon>
<IconButton onClick={() => setShowSwapDetails(!showSwapDetails)}>
{showSwapDetails ? <ExpandLess /> : <ExpandMore color='primary' />}
</IconButton>
</ListItemIcon>
</ListItem> </ListItem>
{order.currency === 1000 ? (
<Collapse in={showSwapDetails}>
<List dense={true} sx={{ position: 'relative', bottom: '0.5em' }}>
<ListItem>
<ListItemIcon sx={{ position: 'relative', left: '0.3em' }}>
<SendReceiveIcon
sx={{ transform: 'scaleX(-1)', width: '0.9em', opacity: 0.7 }}
color='secondary'
/>
</ListItemIcon>
<Typography variant='body2'>{swap.send}</Typography>
</ListItem>
<ListItem>
<ListItemIcon sx={{ position: 'relative', left: '0.3em' }}>
<SendReceiveIcon
sx={{ left: '0.1em', width: '0.9em', opacity: 0.7 }}
color='primary'
/>
</ListItemIcon>
<Typography variant='body2'>{swap.receive}</Typography>
</ListItem>
</List>
</Collapse>
) : null}
<Divider /> <Divider />
<ListItem> <ListItem>
@ -327,13 +426,7 @@ const OrderDetails = ({
{!order.is_participant ? ( {!order.is_participant ? (
<Grid item xs={12}> <Grid item xs={12}>
<TakeButton <TakeButton order={order} setOrder={setOrder} baseUrl={baseUrl} hasRobot={hasRobot} />
order={order}
setOrder={setOrder}
baseUrl={baseUrl}
setPage={setPage}
hasRobot={hasRobot}
/>
</Grid> </Grid>
) : ( ) : (
<></> <></>

View File

@ -43,7 +43,7 @@ export const WebLNDialog = ({
/> />
{isBuyer {isBuyer
? t('Invoice not received, please check your WebLN wallet.') ? t('Invoice not received, please check your WebLN wallet.')
: t('Payment not received, please check your WebLN wallet.')} : t('Amount not yet locked, please check your WebLN wallet.')}
</> </>
) : ( ) : (
<> <>

View File

@ -198,33 +198,6 @@ export const LightningPayoutForm = ({
.finally(() => setLoadingLnproxy(false)); .finally(() => setLoadingLnproxy(false));
}; };
// const fetchLnproxy = function () {
// setLoadingLnproxy(true);
// fetch(
// lnproxyUrl() +
// `/api/${lightning.lnproxyInvoice.toLocaleLowerCase()}${
// lightning.lnproxyBudgetSats > 0
// ? `?routing_msat=${lightning.lnproxyBudgetSats * 1000}`
// : ''
// }`,
// )
// .then((response) => response.text())
// .then((text) => {
// if (text.includes('lnproxy error')) {
// setLightning({ ...lightning, badLnproxy: text });
// } else {
// const invoice = text.replace('\n', '');
// setLightning({ ...lightning, invoice, badLnproxy: '' });
// }
// })
// .catch(() => {
// setLightning({ ...lightning, badLnproxy: 'Lnproxy server uncaught error' });
// })
// .finally(() => {
// setLoadingLnproxy(false);
// });
// };
const handleAdvancedOptions = function (checked: boolean) { const handleAdvancedOptions = function (checked: boolean) {
if (checked) { if (checked) {
setLightning({ setLightning({

View File

@ -0,0 +1,23 @@
import { pn } from './prettyNumbers';
interface computeSatsProps {
amount: number;
premium: number;
fee: number;
routingBudget?: number;
rate?: number;
}
const computeSats = ({
amount,
premium,
fee,
routingBudget = 0,
rate = 1,
}: computeSatsProps): string | undefined => {
let rateWithPremium = rate + premium / 100;
let sats = (amount / rateWithPremium) * 100000000;
sats = sats * (1 + fee) * (1 - routingBudget);
return pn(Math.round(sats));
};
export default computeSats;

View File

@ -9,3 +9,4 @@ export { default as saveAsJson } from './saveFile';
export { default as statusBadgeColor } from './statusBadgeColor'; export { default as statusBadgeColor } from './statusBadgeColor';
export { genBase62Token, tokenStrength } from './token'; export { genBase62Token, tokenStrength } from './token';
export { default as getWebln } from './webln'; export { default as getWebln } from './webln';
export { default as computeSats } from './computeSats';

View File

@ -94,6 +94,10 @@
"The order has expired": "L'ordre ha expirat", "The order has expired": "L'ordre ha expirat",
"Penalty lifted, good to go!": "Sanció revocada, som-hi!", "Penalty lifted, good to go!": "Sanció revocada, som-hi!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Encara no pots prendre cap ordre! Espera {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Encara no pots prendre cap ordre! Espera {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Creador", "Order maker": "Creador",
"Order taker": "Prenedor", "Order taker": "Prenedor",
"Order Details": "Detalls", "Order Details": "Detalls",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Ha de ser més del {{min}}%", "Must be more than {{min}}%": "Ha de ser més del {{min}}%",
"Must be less than {{maxSats}": "Ha de ser menys de {{maxSats}}", "Must be less than {{maxSats}": "Ha de ser menys de {{maxSats}}",
"Must be more than {{minSats}}": "Ha de ser més de {{minSats}}", "Must be more than {{minSats}}": "Ha de ser més de {{minSats}}",
"Amount": "Suma",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " de {{satoshis}} Sats", " of {{satoshis}} Satoshis": " de {{satoshis}} Sats",
" at a {{premium}}% premium": " amb una prima del {{premium}}%", " at a {{premium}}% premium": " amb una prima del {{premium}}%",
" at a {{discount}}% discount": " amb descompte del {{discount}}%", " at a {{discount}}% discount": " amb descompte del {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Quantitat de BTC a canviar per LN Sats", "Amount of BTC to swap for LN Sats": "Quantitat de BTC a canviar per LN Sats",
"Must be more than {{minAmount}}": "Ha de ser més de {{minAmount}}", "Must be more than {{minAmount}}": "Ha de ser més de {{minAmount}}",
"Must be less than {{maxAmount}}": "Ha de ser menys de {{maxAmount}}", "Must be less than {{maxAmount}}": "Ha de ser menys de {{maxAmount}}",
"Amount": "Suma",
"Must be shorter than 65 characters": "Ha de tenir menys de 65 caràcters", "Must be shorter than 65 characters": "Ha de tenir menys de 65 caràcters",
"Swap Destination(s)": "Destí(ns) del Swap", "Swap Destination(s)": "Destí(ns) del Swap",
"Fiat Payment Method(s)": "Mètode(s) de Pagament Fiat", "Fiat Payment Method(s)": "Mètode(s) de Pagament Fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "No s'ha rebut la factura, fes un cop d'ull a la teva wallet WebLN.", "Invoice not received, please check your WebLN wallet.": "No s'ha rebut la factura, fes un cop d'ull a la teva wallet WebLN.",
"Payment not received, please check your WebLN wallet.": "No s'ha rebut el pagament, fes un cop d'ull a la teva wallet WebLN.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "Ara pots tancar el popup de la teva wallet WebLN.", "You can close now your WebLN wallet popup.": "Ara pots tancar el popup de la teva wallet WebLN.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Vols obrir una disputa?", "Do you want to open a dispute?": "Vols obrir una disputa?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Nabídka vypršela", "The order has expired": "Nabídka vypršela",
"Penalty lifted, good to go!": "Pokuta zrušena, lze pokračovat!", "Penalty lifted, good to go!": "Pokuta zrušena, lze pokračovat!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nabídku nemůžeš zatím příjmout! Počkej {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nabídku nemůžeš zatím příjmout! Počkej {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Tvůrce nabídky", "Order maker": "Tvůrce nabídky",
"Order taker": "Příjemce nabídky", "Order taker": "Příjemce nabídky",
"Order Details": "Detaily nabídky", "Order Details": "Detaily nabídky",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Musí být více než {{min}}%", "Must be more than {{min}}%": "Musí být více než {{min}}%",
"Must be less than {{maxSats}": "Musí být méně než {{maxSats}}", "Must be less than {{maxSats}": "Musí být méně než {{maxSats}}",
"Must be more than {{minSats}}": "Musí být více než {{minSats}}", "Must be more than {{minSats}}": "Musí být více než {{minSats}}",
"Amount": "Částka",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " {{satoshis}} Satoshi", " of {{satoshis}} Satoshis": " {{satoshis}} Satoshi",
" at a {{premium}}% premium": " za {{premium}}% přirážku", " at a {{premium}}% premium": " za {{premium}}% přirážku",
" at a {{discount}}% discount": " za {{discount}}% slevu", " at a {{discount}}% discount": " za {{discount}}% slevu",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Částka",
"Must be shorter than 65 characters": "Maximálně 65 znaků", "Must be shorter than 65 characters": "Maximálně 65 znaků",
"Swap Destination(s)": "Swap adresa", "Swap Destination(s)": "Swap adresa",
"Fiat Payment Method(s)": "Možnosti fiat plateb", "Fiat Payment Method(s)": "Možnosti fiat plateb",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Chceš otevřít spor?", "Do you want to open a dispute?": "Chceš otevřít spor?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Die Order ist abgelaufen", "The order has expired": "Die Order ist abgelaufen",
"Penalty lifted, good to go!": "Die Strafe ist aufgehoben, es kann losgehen!", "Penalty lifted, good to go!": "Die Strafe ist aufgehoben, es kann losgehen!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kannst noch keine Order annehmen! Warte {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kannst noch keine Order annehmen! Warte {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Order-Maker", "Order maker": "Order-Maker",
"Order taker": "Order-Taker", "Order taker": "Order-Taker",
"Order Details": "Order-Details", "Order Details": "Order-Details",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Muss mehr sein als {{min}}%", "Must be more than {{min}}%": "Muss mehr sein als {{min}}%",
"Must be less than {{maxSats}": "Muss weniger sein als {{maxSats}}", "Must be less than {{maxSats}": "Muss weniger sein als {{maxSats}}",
"Must be more than {{minSats}}": "Muss mehr sein als {{minSats}}", "Must be more than {{minSats}}": "Muss mehr sein als {{minSats}}",
"Amount": "Menge",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " für {{satoshis}} Satoshis", " of {{satoshis}} Satoshis": " für {{satoshis}} Satoshis",
" at a {{premium}}% premium": " mit einem {{premium}}% Aufschlag", " at a {{premium}}% premium": " mit einem {{premium}}% Aufschlag",
" at a {{discount}}% discount": " mit einem {{discount}}% Rabatt", " at a {{discount}}% discount": " mit einem {{discount}}% Rabatt",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Menge",
"Must be shorter than 65 characters": "Muss kürzer als 65 Zeichen sein", "Must be shorter than 65 characters": "Muss kürzer als 65 Zeichen sein",
"Swap Destination(s)": "austausch Ziel(e)", "Swap Destination(s)": "austausch Ziel(e)",
"Fiat Payment Method(s)": "Fiat Zahlungsmethode(n)", "Fiat Payment Method(s)": "Fiat Zahlungsmethode(n)",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Möchtest du einen Fall eröffnen?", "Do you want to open a dispute?": "Möchtest du einen Fall eröffnen?",

View File

@ -94,6 +94,10 @@
"The order has expired": "The order has expired", "The order has expired": "The order has expired",
"Penalty lifted, good to go!": "Penalty lifted, good to go!", "Penalty lifted, good to go!": "Penalty lifted, good to go!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Order maker", "Order maker": "Order maker",
"Order taker": "Order taker", "Order taker": "Order taker",
"Order Details": "Order Details", "Order Details": "Order Details",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Must be more than {{min}}%", "Must be more than {{min}}%": "Must be more than {{min}}%",
"Must be less than {{maxSats}": "Must be less than {{maxSats}}", "Must be less than {{maxSats}": "Must be less than {{maxSats}}",
"Must be more than {{minSats}}": "Must be more than {{minSats}}", "Must be more than {{minSats}}": "Must be more than {{minSats}}",
"Amount": "Amount",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " of {{satoshis}} Satoshis", " of {{satoshis}} Satoshis": " of {{satoshis}} Satoshis",
" at a {{premium}}% premium": " at a {{premium}}% premium", " at a {{premium}}% premium": " at a {{premium}}% premium",
" at a {{discount}}% discount": " at a {{discount}}% discount", " at a {{discount}}% discount": " at a {{discount}}% discount",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Amount",
"Must be shorter than 65 characters": "Must be shorter than 65 characters", "Must be shorter than 65 characters": "Must be shorter than 65 characters",
"Swap Destination(s)": "Swap Destination(s)", "Swap Destination(s)": "Swap Destination(s)",
"Fiat Payment Method(s)": "Fiat Payment Method(s)", "Fiat Payment Method(s)": "Fiat Payment Method(s)",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Do you want to open a dispute?", "Do you want to open a dispute?": "Do you want to open a dispute?",

View File

@ -94,6 +94,10 @@
"The order has expired": "La orden ha expirado", "The order has expired": "La orden ha expirado",
"Penalty lifted, good to go!": "Sanción revocada, ¡vamos!", "Penalty lifted, good to go!": "Sanción revocada, ¡vamos!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "¡No puedes tomar una orden aún! Espera {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "¡No puedes tomar una orden aún! Espera {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Creador", "Order maker": "Creador",
"Order taker": "Tomador", "Order taker": "Tomador",
"Order Details": "Detalles", "Order Details": "Detalles",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Debe ser más del {{min}}%", "Must be more than {{min}}%": "Debe ser más del {{min}}%",
"Must be less than {{maxSats}": "Debe ser menos de {{maxSats}}", "Must be less than {{maxSats}": "Debe ser menos de {{maxSats}}",
"Must be more than {{minSats}}": "Debe ser más de {{minSats}}", "Must be more than {{minSats}}": "Debe ser más de {{minSats}}",
"Amount": "Monto",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " de {{satoshis}} Sats", " of {{satoshis}} Satoshis": " de {{satoshis}} Sats",
" at a {{premium}}% premium": " con una prima del {{premium}}%", " at a {{premium}}% premium": " con una prima del {{premium}}%",
" at a {{discount}}% discount": " con descuento del {{discount}}%", " at a {{discount}}% discount": " con descuento del {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Monto",
"Must be shorter than 65 characters": "Debe tener menos de 65 caracteres", "Must be shorter than 65 characters": "Debe tener menos de 65 caracteres",
"Swap Destination(s)": "Destino(s) del swap", "Swap Destination(s)": "Destino(s) del swap",
"Fiat Payment Method(s)": "Método(s) de pago en fiat", "Fiat Payment Method(s)": "Método(s) de pago en fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "No se ha recibido la factura, echa un vistazo a tu wallet WebLN.", "Invoice not received, please check your WebLN wallet.": "No se ha recibido la factura, echa un vistazo a tu wallet WebLN.",
"Payment not received, please check your WebLN wallet.": "No se ha recibido el pago, echa un vistazo a tu wallet WebLN.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "Ahora puedes cerrar el popup de tu wallet WebLN.", "You can close now your WebLN wallet popup.": "Ahora puedes cerrar el popup de tu wallet WebLN.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "¿Quieres abrir una disputa?", "Do you want to open a dispute?": "¿Quieres abrir una disputa?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Eskaera iraungi da", "The order has expired": "Eskaera iraungi da",
"Penalty lifted, good to go!": "Zigorra kendu da, prest!", "Penalty lifted, good to go!": "Zigorra kendu da, prest!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Oraindik ezin duzu eskaerarik hartu! Itxaron{{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Oraindik ezin duzu eskaerarik hartu! Itxaron{{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Eskaera egile", "Order maker": "Eskaera egile",
"Order taker": "Eskaera hartzaile", "Order taker": "Eskaera hartzaile",
"Order Details": "Xehetasunak", "Order Details": "Xehetasunak",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "%{{min}} baino gehiago izan behar da", "Must be more than {{min}}%": "%{{min}} baino gehiago izan behar da",
"Must be less than {{maxSats}": "{{maxSats}} baino gutxiago izan behar da", "Must be less than {{maxSats}": "{{maxSats}} baino gutxiago izan behar da",
"Must be more than {{minSats}}": "{{minSats}} baino gehiago izan behar da", "Must be more than {{minSats}}": "{{minSats}} baino gehiago izan behar da",
"Amount": "Kopurua",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " {{satoshis}} Satoshirentzat", " of {{satoshis}} Satoshis": " {{satoshis}} Satoshirentzat",
" at a {{premium}}% premium": " %{{premium}}-ko primarekin", " at a {{premium}}% premium": " %{{premium}}-ko primarekin",
" at a {{discount}}% discount": " %{{discount}}-ko deskontuarekin", " at a {{discount}}% discount": " %{{discount}}-ko deskontuarekin",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Kopurua",
"Must be shorter than 65 characters": "65 karaktere baino gutxiago izan behar ditu", "Must be shorter than 65 characters": "65 karaktere baino gutxiago izan behar ditu",
"Swap Destination(s)": "Trukearen Norakoa(k)", "Swap Destination(s)": "Trukearen Norakoa(k)",
"Fiat Payment Method(s)": "Fiat Ordainketa Modua(k)", "Fiat Payment Method(s)": "Fiat Ordainketa Modua(k)",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Faktura ez da jaso, mesedez begiratu zure WebLN kartera.", "Invoice not received, please check your WebLN wallet.": "Faktura ez da jaso, mesedez begiratu zure WebLN kartera.",
"Payment not received, please check your WebLN wallet.": "Ordainketa ez da jaso, mesedez begiratu zure WebLN kartera.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Eztabaida bat ireki nahi duzu?", "Do you want to open a dispute?": "Eztabaida bat ireki nahi duzu?",

View File

@ -94,6 +94,10 @@
"The order has expired": "L'ordre a expiré", "The order has expired": "L'ordre a expiré",
"Penalty lifted, good to go!": "Pénalité levée, vous pouvez y aller!", "Penalty lifted, good to go!": "Pénalité levée, vous pouvez y aller!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Vous ne pouvez pas encore prendre un ordre! Attendez {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Vous ne pouvez pas encore prendre un ordre! Attendez {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Createur d'ordre", "Order maker": "Createur d'ordre",
"Order taker": "Preneur d'ordre", "Order taker": "Preneur d'ordre",
"Order Details": "Détails de l'ordre", "Order Details": "Détails de l'ordre",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Doit être plus que {{min}}%", "Must be more than {{min}}%": "Doit être plus que {{min}}%",
"Must be less than {{maxSats}": "Doit être moins que {{maxSats}}", "Must be less than {{maxSats}": "Doit être moins que {{maxSats}}",
"Must be more than {{minSats}}": "Doit être plus que {{minSats}}", "Must be more than {{minSats}}": "Doit être plus que {{minSats}}",
"Amount": "Montant",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis", " of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis",
" at a {{premium}}% premium": " à une prime de {{premium}}%", " at a {{premium}}% premium": " à une prime de {{premium}}%",
" at a {{discount}}% discount": " à une remise de {{discount}}%", " at a {{discount}}% discount": " à une remise de {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Montant",
"Must be shorter than 65 characters": "Doit être plus court que 65 caractères", "Must be shorter than 65 characters": "Doit être plus court que 65 caractères",
"Swap Destination(s)": "Destination(s) de l'échange", "Swap Destination(s)": "Destination(s) de l'échange",
"Fiat Payment Method(s)": "Mode(s) de paiement Fiat", "Fiat Payment Method(s)": "Mode(s) de paiement Fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Voulez-vous ouvrir un litige?", "Do you want to open a dispute?": "Voulez-vous ouvrir un litige?",

View File

@ -94,6 +94,10 @@
"The order has expired": "L'ordine è scaduto", "The order has expired": "L'ordine è scaduto",
"Penalty lifted, good to go!": "Penalità rimossa, partiamo!", "Penalty lifted, good to go!": "Penalità rimossa, partiamo!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Non puoi ancora accettare un ordine! Aspetta {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Non puoi ancora accettare un ordine! Aspetta {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Offerente", "Order maker": "Offerente",
"Order taker": "Acquirente", "Order taker": "Acquirente",
"Order Details": "Dettagli", "Order Details": "Dettagli",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Dev'essere maggiore del {{min}}%", "Must be more than {{min}}%": "Dev'essere maggiore del {{min}}%",
"Must be less than {{maxSats}": "Dev'essere inferiore al {{maxSats}}", "Must be less than {{maxSats}": "Dev'essere inferiore al {{maxSats}}",
"Must be more than {{minSats}}": "Dev'essere maggiore del {{minSats}}", "Must be more than {{minSats}}": "Dev'essere maggiore del {{minSats}}",
"Amount": "Quantità",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " di {{satoshis}} Sats", " of {{satoshis}} Satoshis": " di {{satoshis}} Sats",
" at a {{premium}}% premium": " con un premio del {{premium}}%", " at a {{premium}}% premium": " con un premio del {{premium}}%",
" at a {{discount}}% discount": " con uno sconto del {{discount}}%", " at a {{discount}}% discount": " con uno sconto del {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Quantità",
"Must be shorter than 65 characters": "Deve essere meno di 65 caratteri", "Must be shorter than 65 characters": "Deve essere meno di 65 caratteri",
"Swap Destination(s)": "Destinazione dello/degli Swap", "Swap Destination(s)": "Destinazione dello/degli Swap",
"Fiat Payment Method(s)": "Metodo(i) di pagamento fiat", "Fiat Payment Method(s)": "Metodo(i) di pagamento fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Vuoi aprire una disputa?", "Do you want to open a dispute?": "Vuoi aprire una disputa?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Zamówienie wygasło", "The order has expired": "Zamówienie wygasło",
"Penalty lifted, good to go!": "Kara zniesiona, gotowe!", "Penalty lifted, good to go!": "Kara zniesiona, gotowe!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nie możesz jeszcze przyjąć zamówienia! Czekać {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Nie możesz jeszcze przyjąć zamówienia! Czekać {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Ekspres zamówienia", "Order maker": "Ekspres zamówienia",
"Order taker": "Przyjmujący zamówienia", "Order taker": "Przyjmujący zamówienia",
"Order Details": "Szczegóły zamówienia", "Order Details": "Szczegóły zamówienia",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "To musi być więcej niż {{min}}%", "Must be more than {{min}}%": "To musi być więcej niż {{min}}%",
"Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}", "Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}",
"Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}", "Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}",
"Amount": "Ilość",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " z {{satoshis}} Satoshis", " of {{satoshis}} Satoshis": " z {{satoshis}} Satoshis",
" at a {{premium}}% premium": " o godz {{premium}}% premia", " at a {{premium}}% premium": " o godz {{premium}}% premia",
" at a {{discount}}% discount": " o godz {{discount}}% zniżka", " at a {{discount}}% discount": " o godz {{discount}}% zniżka",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Ilość",
"Must be shorter than 65 characters": "Musi być krótszy niż 65 znaków", "Must be shorter than 65 characters": "Musi być krótszy niż 65 znaków",
"Swap Destination(s)": "Swap miejsce/miejsca docelowe", "Swap Destination(s)": "Swap miejsce/miejsca docelowe",
"Fiat Payment Method(s)": "Fiat Metoda/Metody płatności", "Fiat Payment Method(s)": "Fiat Metoda/Metody płatności",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Chcesz otworzyć spór?", "Do you want to open a dispute?": "Chcesz otworzyć spór?",

View File

@ -94,6 +94,10 @@
"The order has expired": "A ordem expirou", "The order has expired": "A ordem expirou",
"Penalty lifted, good to go!": "Penalidade levantada, pronto!", "Penalty lifted, good to go!": "Penalidade levantada, pronto!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Você ainda não pode fazer um pedido! Espere {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Você ainda não pode fazer um pedido! Espere {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Criar ordem", "Order maker": "Criar ordem",
"Order taker": "Tomar ordem", "Order taker": "Tomar ordem",
"Order Details": "Detalhes da ordem", "Order Details": "Detalhes da ordem",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Deve ser superior a {{min}}%", "Must be more than {{min}}%": "Deve ser superior a {{min}}%",
"Must be less than {{maxSats}": "Deve ser inferior a {{maxSats}}", "Must be less than {{maxSats}": "Deve ser inferior a {{maxSats}}",
"Must be more than {{minSats}}": "Deve ser superior a {{minSats}}", "Must be more than {{minSats}}": "Deve ser superior a {{minSats}}",
"Amount": "Quantidade",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis", " of {{satoshis}} Satoshis": " de {{satoshis}} Satoshis",
" at a {{premium}}% premium": " com um prêmio de {{premium}}%", " at a {{premium}}% premium": " com um prêmio de {{premium}}%",
" at a {{discount}}% discount": " com um desconto de {{discount}}%", " at a {{discount}}% discount": " com um desconto de {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Quantidade",
"Must be shorter than 65 characters": "Deve ter menos de 65 caracteres", "Must be shorter than 65 characters": "Deve ter menos de 65 caracteres",
"Swap Destination(s)": "Trocar Destino(s)", "Swap Destination(s)": "Trocar Destino(s)",
"Fiat Payment Method(s)": "Forma(s) de Pagamento Fiat", "Fiat Payment Method(s)": "Forma(s) de Pagamento Fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Quer abrir uma disputa?", "Do you want to open a dispute?": "Quer abrir uma disputa?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Срок действия ордера истёк", "The order has expired": "Срок действия ордера истёк",
"Penalty lifted, good to go!": "Пенальти сняты, поехали!", "Penalty lifted, good to go!": "Пенальти сняты, поехали!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Вы ещё не можете взять ордер! Подождите {{timeMin}}м {{timeSec}}с",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Мейкер ордера", "Order maker": "Мейкер ордера",
"Order taker": "Тейкер ордера", "Order taker": "Тейкер ордера",
"Order Details": "Детали ордера", "Order Details": "Детали ордера",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Должно быть больше чем {{min}}%", "Must be more than {{min}}%": "Должно быть больше чем {{min}}%",
"Must be less than {{maxSats}": "Должно быть меньше чем {{maxSats}}", "Must be less than {{maxSats}": "Должно быть меньше чем {{maxSats}}",
"Must be more than {{minSats}}": "Должно быть больше чем {{minSats}}", "Must be more than {{minSats}}": "Должно быть больше чем {{minSats}}",
"Amount": "Сумма",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " {{satoshis}} Сатоши", " of {{satoshis}} Satoshis": " {{satoshis}} Сатоши",
" at a {{premium}}% premium": " с наценкой {{premium}}%", " at a {{premium}}% premium": " с наценкой {{premium}}%",
" at a {{discount}}% discount": " со скидкой {{discount}}%", " at a {{discount}}% discount": " со скидкой {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Сумма",
"Must be shorter than 65 characters": "Должно быть короче 65и символов", "Must be shorter than 65 characters": "Должно быть короче 65и символов",
"Swap Destination(s)": "Поменять место(а) назначения", "Swap Destination(s)": "Поменять место(а) назначения",
"Fiat Payment Method(s)": "Способ(ы) оплаты", "Fiat Payment Method(s)": "Способ(ы) оплаты",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.", "Invoice not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.",
"Payment not received, please check your WebLN wallet.": "Платёж не получен. Пожалуйста, проверьте Ваш WebLN Кошелёк.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька", "You can close now your WebLN wallet popup.": "Вы можете закрыть всплывающее окно WebLN Кошелька",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Хотите ли Вы открыть диспут?", "Do you want to open a dispute?": "Хотите ли Вы открыть диспут?",

View File

@ -94,6 +94,10 @@
"The order has expired": "Ordern har förfallit", "The order has expired": "Ordern har förfallit",
"Penalty lifted, good to go!": "Straff upphävt, bara att köra!", "Penalty lifted, good to go!": "Straff upphävt, bara att köra!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kan inte ta en order ännu! Vänta {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Du kan inte ta en order ännu! Vänta {{timeMin}}m {{timeSec}}s",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "Ordermaker", "Order maker": "Ordermaker",
"Order taker": "Ordertaker", "Order taker": "Ordertaker",
"Order Details": "Orderdetaljer", "Order Details": "Orderdetaljer",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "Måste vara mer än {{min}}%", "Must be more than {{min}}%": "Måste vara mer än {{min}}%",
"Must be less than {{maxSats}": "Måste vara mindre än {{maxSats}}", "Must be less than {{maxSats}": "Måste vara mindre än {{maxSats}}",
"Must be more than {{minSats}}": "Måste vara mer än {{minSats}}", "Must be more than {{minSats}}": "Måste vara mer än {{minSats}}",
"Amount": "Summa",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " för {{satoshis}} sats", " of {{satoshis}} Satoshis": " för {{satoshis}} sats",
" at a {{premium}}% premium": " med en premium på {{premium}}%", " at a {{premium}}% premium": " med en premium på {{premium}}%",
" at a {{discount}}% discount": " med en rabatt på {{discount}}%", " at a {{discount}}% discount": " med en rabatt på {{discount}}%",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "Summa",
"Must be shorter than 65 characters": "Måste vara kortare än 65 tecken", "Must be shorter than 65 characters": "Måste vara kortare än 65 tecken",
"Swap Destination(s)": "Byt destination(er)", "Swap Destination(s)": "Byt destination(er)",
"Fiat Payment Method(s)": "Betalningmetod(er) med fiat", "Fiat Payment Method(s)": "Betalningmetod(er) med fiat",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "Vill du öppna en dispyt?", "Do you want to open a dispute?": "Vill du öppna en dispyt?",

View File

@ -94,6 +94,10 @@
"The order has expired": "รายการหมดอายุแล้ว", "The order has expired": "รายการหมดอายุแล้ว",
"Penalty lifted, good to go!": "สามารถซื้อขายได้แล้ว!", "Penalty lifted, good to go!": "สามารถซื้อขายได้แล้ว!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "คุณยังไม่สามารถดำเนินรายการได้! รออีก {{timeMin}} นาที {{timeSec}} วินาที", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "คุณยังไม่สามารถดำเนินรายการได้! รออีก {{timeMin}} นาที {{timeSec}} วินาที",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "maker ของรายการ", "Order maker": "maker ของรายการ",
"Order taker": "taker ของรายการ", "Order taker": "taker ของรายการ",
"Order Details": "รายละเอียดรายการ", "Order Details": "รายละเอียดรายการ",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "ต้องมากกว่า {{min}}%", "Must be more than {{min}}%": "ต้องมากกว่า {{min}}%",
"Must be less than {{maxSats}": "ต้องน้อยกว่า {{maxSats}}", "Must be less than {{maxSats}": "ต้องน้อยกว่า {{maxSats}}",
"Must be more than {{minSats}}": "ต้องมากกว่า {{minSats}}", "Must be more than {{minSats}}": "ต้องมากกว่า {{minSats}}",
"Amount": "จำนวน",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": " เป็น Satoshis จำนวน {{satoshis}} Sats", " of {{satoshis}} Satoshis": " เป็น Satoshis จำนวน {{satoshis}} Sats",
" at a {{premium}}% premium": " ในราคาแพงกว่าตลาด {{premium}}% ", " at a {{premium}}% premium": " ในราคาแพงกว่าตลาด {{premium}}% ",
" at a {{discount}}% discount": " ในราคาถูกกว่าตลาด {{discount}}% ", " at a {{discount}}% discount": " ในราคาถูกกว่าตลาด {{discount}}% ",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "จำนวน",
"Must be shorter than 65 characters": "ต้องสั้นกว่า 65 ตัวอักษร", "Must be shorter than 65 characters": "ต้องสั้นกว่า 65 ตัวอักษร",
"Swap Destination(s)": "Swap Destination(s)", "Swap Destination(s)": "Swap Destination(s)",
"Fiat Payment Method(s)": "วิธีการชำระเงินเฟียต", "Fiat Payment Method(s)": "วิธีการชำระเงินเฟียต",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.", "Invoice not received, please check your WebLN wallet.": "Invoice not received, please check your WebLN wallet.",
"Payment not received, please check your WebLN wallet.": "Payment not received, please check your WebLN wallet.", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "ต้องการร้องเรียนหรือไม่?", "Do you want to open a dispute?": "ต้องการร้องเรียนหรือไม่?",

View File

@ -94,6 +94,10 @@
"The order has expired": "订单已到期", "The order has expired": "订单已到期",
"Penalty lifted, good to go!": "罚单已解除,没问题了!", "Penalty lifted, good to go!": "罚单已解除,没问题了!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暂时还不能吃单!请等{{timeMin}}分 {{timeSec}}秒", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暂时还不能吃单!请等{{timeMin}}分 {{timeSec}}秒",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "订单挂单方", "Order maker": "订单挂单方",
"Order taker": "订单吃单方", "Order taker": "订单吃单方",
"Order Details": "订单详情", "Order Details": "订单详情",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "必须多于 {{min}}%", "Must be more than {{min}}%": "必须多于 {{min}}%",
"Must be less than {{maxSats}": "必须少于 {{maxSats}}", "Must be less than {{maxSats}": "必须少于 {{maxSats}}",
"Must be more than {{minSats}}": "必须多于 {{minSats}}", "Must be more than {{minSats}}": "必须多于 {{minSats}}",
"Amount": "金额",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": "{{satoshis}} 聪", " of {{satoshis}} Satoshis": "{{satoshis}} 聪",
" at a {{premium}}% premium": " 于 {{premium}}% 溢价", " at a {{premium}}% premium": " 于 {{premium}}% 溢价",
" at a {{discount}}% discount": " 于 {{discount}}% 折扣", " at a {{discount}}% discount": " 于 {{discount}}% 折扣",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "金额",
"Must be shorter than 65 characters": "必须少于65个字符", "Must be shorter than 65 characters": "必须少于65个字符",
"Swap Destination(s)": "交换目的地", "Swap Destination(s)": "交换目的地",
"Fiat Payment Method(s)": "法币付款方法", "Fiat Payment Method(s)": "法币付款方法",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "没有收到发票,请查看你的 WebLN 钱包。", "Invoice not received, please check your WebLN wallet.": "没有收到发票,请查看你的 WebLN 钱包。",
"Payment not received, please check your WebLN wallet.": "没有收到付款,请查看你的 WebLN 钱包。", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "你想开始争议吗?", "Do you want to open a dispute?": "你想开始争议吗?",

View File

@ -94,6 +94,10 @@
"The order has expired": "訂單已到期", "The order has expired": "訂單已到期",
"Penalty lifted, good to go!": "罰單已解除, 沒問題了!", "Penalty lifted, good to go!": "罰單已解除, 沒問題了!",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暫時還不能吃單!請等{{timeMin}}分 {{timeSec}}秒", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "你暫時還不能吃單!請等{{timeMin}}分 {{timeSec}}秒",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"You receive via Lightning {{amount}} Sats (routing budget may vary)": "You receive via Lightning {{amount}} Sats (routing budget may vary)",
"You send via Lightning {{amount}} Sats": "You send via Lightning {{amount}} Sats",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"Order maker": "訂單掛單方", "Order maker": "訂單掛單方",
"Order taker": "訂單吃單方", "Order taker": "訂單吃單方",
"Order Details": "訂單詳情", "Order Details": "訂單詳情",
@ -258,6 +262,11 @@
"Must be more than {{min}}%": "必須多於 {{min}}%", "Must be more than {{min}}%": "必須多於 {{min}}%",
"Must be less than {{maxSats}": "必須少於 {{maxSats}}", "Must be less than {{maxSats}": "必須少於 {{maxSats}}",
"Must be more than {{minSats}}": "必須多於 {{minSats}}", "Must be more than {{minSats}}": "必須多於 {{minSats}}",
"Amount": "金額",
"Onchain amount to send (BTC)": "Onchain amount to send (BTC)",
"You receive approx {{swapSats}} LN Sats (fees might vary)": "You receive approx {{swapSats}} LN Sats (fees might vary)",
"Onchain amount to receive (BTC)": "Onchain amount to receive (BTC)",
"You send approx {{swapSats}} LN Sats (fees might vary)": "You send approx {{swapSats}} LN Sats (fees might vary)",
" of {{satoshis}} Satoshis": "{{satoshis}} 聰", " of {{satoshis}} Satoshis": "{{satoshis}} 聰",
" at a {{premium}}% premium": " 於 {{premium}}% 溢價", " at a {{premium}}% premium": " 於 {{premium}}% 溢價",
" at a {{discount}}% discount": " 於 {{discount}}% 折扣", " at a {{discount}}% discount": " 於 {{discount}}% 折扣",
@ -274,7 +283,6 @@
"Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats", "Amount of BTC to swap for LN Sats": "Amount of BTC to swap for LN Sats",
"Must be more than {{minAmount}}": "Must be more than {{minAmount}}", "Must be more than {{minAmount}}": "Must be more than {{minAmount}}",
"Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}", "Must be less than {{maxAmount}}": "Must be less than {{maxAmount}}",
"Amount": "金額",
"Must be shorter than 65 characters": "必須少於65個字符", "Must be shorter than 65 characters": "必須少於65個字符",
"Swap Destination(s)": "交換目的地", "Swap Destination(s)": "交換目的地",
"Fiat Payment Method(s)": "法幣付款方法", "Fiat Payment Method(s)": "法幣付款方法",
@ -438,7 +446,7 @@
"#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx", "#47": "Phrases in components/TradeBox/Dialogs/WebLN.tsx",
"WebLN": "WebLN", "WebLN": "WebLN",
"Invoice not received, please check your WebLN wallet.": "沒有收到發票,請查看你的 WebLN 錢包。", "Invoice not received, please check your WebLN wallet.": "沒有收到發票,請查看你的 WebLN 錢包。",
"Payment not received, please check your WebLN wallet.": "沒有收到付款,請查看你的 WebLN 錢包。", "Amount not yet locked, please check your WebLN wallet.": "Amount not yet locked, please check your WebLN wallet.",
"You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.", "You can close now your WebLN wallet popup.": "You can close now your WebLN wallet popup.",
"#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx", "#48": "Phrases in components/TradeBox/Dialogs/ConfirmDispute.tsx",
"Do you want to open a dispute?": "你想開始爭議嗎?", "Do you want to open a dispute?": "你想開始爭議嗎?",