mirror of
https://github.com/RoboSats/robosats.git
synced 2025-07-21 02:03:14 +00:00
Merge pull request #1817 from RoboSats/coordinators-rating
Coordinators ratings WIP
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import React, { useContext, useState } from 'react';
|
||||
import React, { useContext, useEffect, useState } from 'react';
|
||||
import { useTranslation, Trans } from 'react-i18next';
|
||||
import {
|
||||
Grid,
|
||||
@ -15,19 +15,21 @@ import {
|
||||
} from '@mui/material';
|
||||
import currencies from '../../../../static/assets/currencies.json';
|
||||
import TradeSummary from '../TradeSummary';
|
||||
import { Favorite, RocketLaunch, ContentCopy, Refresh } from '@mui/icons-material';
|
||||
import { Favorite, RocketLaunch, ContentCopy, Refresh, Info } from '@mui/icons-material';
|
||||
import { LoadingButton } from '@mui/lab';
|
||||
|
||||
import { finalizeEvent, type Event } from 'nostr-tools';
|
||||
import { type Order } from '../../../models';
|
||||
import { systemClient } from '../../../services/System';
|
||||
import {
|
||||
FederationContext,
|
||||
type UseFederationStoreType,
|
||||
} from '../../../contexts/FederationContext';
|
||||
import { type UseAppStoreType, AppContext } from '../../../contexts/AppContext';
|
||||
import { GarageContext, type UseGarageStoreType } from '../../../contexts/GarageContext';
|
||||
|
||||
interface SuccessfulPromptProps {
|
||||
order: Order;
|
||||
ratePlatform: (rating: number) => void;
|
||||
rateUserPlatform: (rating: number) => void;
|
||||
onClickStartAgain: () => void;
|
||||
onClickRenew: () => void;
|
||||
loadingRenew: boolean;
|
||||
@ -35,16 +37,48 @@ interface SuccessfulPromptProps {
|
||||
|
||||
export const SuccessfulPrompt = ({
|
||||
order,
|
||||
ratePlatform,
|
||||
rateUserPlatform,
|
||||
onClickStartAgain,
|
||||
onClickRenew,
|
||||
loadingRenew,
|
||||
}: SuccessfulPromptProps): JSX.Element => {
|
||||
const { t } = useTranslation();
|
||||
const currencyCode: string = currencies[`${order.currency}`];
|
||||
const { settings } = useContext<UseAppStoreType>(AppContext);
|
||||
const { federation } = useContext<UseFederationStoreType>(FederationContext);
|
||||
const { garage } = useContext<UseGarageStoreType>(GarageContext);
|
||||
|
||||
const [rating, setRating] = useState<number | undefined>(undefined);
|
||||
const [hostRating, setHostRating] = useState<number>();
|
||||
|
||||
const rateHostPlatform = function (): void {
|
||||
if (!hostRating) return;
|
||||
|
||||
const slot = garage.getSlot();
|
||||
const coordinatorPubKey = federation.getCoordinator(order.shortAlias)?.nostrHexPubkey;
|
||||
|
||||
if (!slot?.nostrPubKey || !slot.nostrSecKey || !coordinatorPubKey || !order.id) return;
|
||||
|
||||
const eventTemplate: Event = {
|
||||
kind: 31986,
|
||||
created_at: Math.floor(Date.now() / 1000),
|
||||
tags: [
|
||||
['d', `${order.shortAlias}:${order.id}`],
|
||||
['p', coordinatorPubKey],
|
||||
['rating', String(hostRating / 5)],
|
||||
],
|
||||
content: '',
|
||||
pubkey: slot.nostrPubKey,
|
||||
id: '',
|
||||
sig: '',
|
||||
};
|
||||
|
||||
const signedEvent = finalizeEvent(eventTemplate, slot.nostrSecKey);
|
||||
federation.roboPool.sendEvent(signedEvent);
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
rateHostPlatform();
|
||||
}, [hostRating]);
|
||||
|
||||
return (
|
||||
<Grid
|
||||
@ -57,8 +91,8 @@ export const SuccessfulPrompt = ({
|
||||
>
|
||||
<Grid item xs={12}>
|
||||
<Typography variant='body2' align='center'>
|
||||
{t('What do you think your order host "{{coordinator}}"?', {
|
||||
coordinator: federation.getCoordinator(order.shortAlias)?.longAlias,
|
||||
{t('Rate your peer {{peer_nick}}', {
|
||||
peer_nick: order.is_maker ? order.taker_nick : order.maker_nick,
|
||||
})}
|
||||
</Typography>
|
||||
</Grid>
|
||||
@ -69,12 +103,36 @@ export const SuccessfulPrompt = ({
|
||||
size='large'
|
||||
onChange={(e) => {
|
||||
const rate = e.target.value;
|
||||
ratePlatform(rate);
|
||||
setRating(rate);
|
||||
rateUserPlatform(rate);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
{rating === 5 ? (
|
||||
<Grid item xs={12}>
|
||||
<Typography variant='body2' align='center'>
|
||||
{t('Rate your host {{coordinator}}', {
|
||||
coordinator: federation.getCoordinator(order.shortAlias)?.longAlias,
|
||||
})}{' '}
|
||||
<Typography variant='button' align='center'>
|
||||
{t('BETA')}
|
||||
</Typography>
|
||||
<Tooltip title={t('You need to enable nostr to rate your coordinator.')}>
|
||||
<Info sx={{ width: 15 }} />
|
||||
</Tooltip>
|
||||
</Typography>
|
||||
</Grid>
|
||||
<Grid item>
|
||||
<Rating
|
||||
disabled={settings.connection !== 'nostr'}
|
||||
name='size-large'
|
||||
defaultValue={0}
|
||||
size='large'
|
||||
onChange={(e) => {
|
||||
const rate = e.target.value;
|
||||
setHostRating(rate);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
{hostRating ? (
|
||||
<Grid item xs={12}>
|
||||
<div
|
||||
style={{
|
||||
@ -84,35 +142,44 @@ export const SuccessfulPrompt = ({
|
||||
justifyContent: 'center',
|
||||
}}
|
||||
>
|
||||
<Typography variant='body2' align='center'>
|
||||
<b>{t('Thank you! RoboSats loves you too')}</b>
|
||||
</Typography>
|
||||
<Favorite color='error' />
|
||||
</div>
|
||||
<Typography variant='body2' align='center'>
|
||||
{t(
|
||||
'RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!',
|
||||
{hostRating === 5 ? (
|
||||
<>
|
||||
<Typography variant='body2' align='center'>
|
||||
<b>
|
||||
{t('Thank you! {{shortAlias}} loves you too', {
|
||||
shortAlias: federation.getCoordinator(order.shortAlias)?.longAlias,
|
||||
})}
|
||||
</b>
|
||||
</Typography>
|
||||
<Favorite color='error' />
|
||||
</>
|
||||
) : (
|
||||
<Typography variant='body2' align='center'>
|
||||
<b>{t('Thank you for using Robosats!')}</b>
|
||||
</Typography>
|
||||
)}
|
||||
</Typography>
|
||||
</Grid>
|
||||
) : rating !== undefined ? (
|
||||
<Grid>
|
||||
<Typography variant='body2' align='center'>
|
||||
<b>{t('Thank you for using Robosats!')}</b>
|
||||
</Typography>
|
||||
<Typography variant='body2' align='center'>
|
||||
<Trans i18nKey='let_us_know_hot_to_improve'>
|
||||
Let us know how the platform could improve (
|
||||
<Link target='_blank' href='https://t.me/robosats'>
|
||||
Telegram
|
||||
</Link>
|
||||
{' / '}
|
||||
<Link target='_blank' href='https://github.com/RoboSats/robosats/issues'>
|
||||
Github
|
||||
</Link>
|
||||
)
|
||||
</Trans>
|
||||
</Typography>
|
||||
</div>
|
||||
{hostRating === 5 ? (
|
||||
<Typography variant='body2' align='center'>
|
||||
{t(
|
||||
'RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!',
|
||||
)}
|
||||
</Typography>
|
||||
) : (
|
||||
<Typography variant='body2' align='center'>
|
||||
<Trans i18nKey='let_us_know_hot_to_improve'>
|
||||
Let us know how the platform could improve (
|
||||
<Link target='_blank' href='https://t.me/robosats'>
|
||||
Telegram
|
||||
</Link>
|
||||
{' / '}
|
||||
<Link target='_blank' href='https://github.com/RoboSats/robosats/issues'>
|
||||
Github
|
||||
</Link>
|
||||
)
|
||||
</Trans>
|
||||
</Typography>
|
||||
)}
|
||||
</Grid>
|
||||
) : (
|
||||
<></>
|
||||
|
@ -1,7 +1,6 @@
|
||||
import React, { useState, useEffect, useContext } from 'react';
|
||||
import { Box, Divider, Grid } from '@mui/material';
|
||||
import { getWebln, pn } from '../../utils';
|
||||
|
||||
import {
|
||||
ConfirmCancelDialog,
|
||||
ConfirmCollabCancelDialog,
|
||||
@ -309,7 +308,7 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): JSX.Element =>
|
||||
}
|
||||
};
|
||||
|
||||
const ratePlatform = function (rating: number): void {
|
||||
const rateUserPlatform = function (rating: number): void {
|
||||
submitAction({ action: 'rate_platform', rating });
|
||||
};
|
||||
|
||||
@ -617,7 +616,7 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): JSX.Element =>
|
||||
return (
|
||||
<SuccessfulPrompt
|
||||
order={order}
|
||||
ratePlatform={ratePlatform}
|
||||
rateUserPlatform={rateUserPlatform}
|
||||
onClickStartAgain={onStartAgain}
|
||||
loadingRenew={loadingButtons.renewOrder}
|
||||
onClickRenew={() => {
|
||||
@ -641,7 +640,7 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): JSX.Element =>
|
||||
return (
|
||||
<SuccessfulPrompt
|
||||
order={order}
|
||||
ratePlatform={ratePlatform}
|
||||
rateUserPlatform={rateUserPlatform}
|
||||
onClickStartAgain={onStartAgain}
|
||||
loadingRenew={loadingButtons.renewOrder}
|
||||
onClickRenew={() => {
|
||||
@ -680,7 +679,7 @@ const TradeBox = ({ currentOrder, onStartAgain }: TradeBoxProps): JSX.Element =>
|
||||
return (
|
||||
<SuccessfulPrompt
|
||||
order={order}
|
||||
ratePlatform={ratePlatform}
|
||||
rateUserPlatform={rateUserPlatform}
|
||||
onClickStartAgain={onStartAgain}
|
||||
loadingRenew={loadingButtons.renewOrder}
|
||||
onClickRenew={() => {
|
||||
|
@ -138,6 +138,7 @@ export class Coordinator {
|
||||
this.testnet = value.testnet;
|
||||
this.mainnetNodesPubkeys = value.mainnetNodesPubkeys;
|
||||
this.testnetNodesPubkeys = value.testnetNodesPubkeys;
|
||||
this.nostrHexPubkey = value.nostrHexPubkey;
|
||||
this.url = '';
|
||||
this.basePath = '';
|
||||
|
||||
@ -163,6 +164,7 @@ export class Coordinator {
|
||||
public testnetNodesPubkeys: string[] | undefined;
|
||||
public url: string;
|
||||
public basePath: string;
|
||||
public nostrHexPubkey: string;
|
||||
|
||||
// These properties are fetched from coordinator API
|
||||
public book: Record<string, PublicOrder> = {};
|
||||
|
@ -10,6 +10,7 @@ class Robot {
|
||||
public token?: string;
|
||||
public pubKey?: string;
|
||||
public encPrivKey?: string;
|
||||
public nostrPubKey?: string;
|
||||
public stealthInvoices: boolean = true;
|
||||
public activeOrderId?: number;
|
||||
public lastOrderId?: number;
|
||||
@ -34,9 +35,11 @@ class Robot {
|
||||
const tokenSHA256 = this.tokenSHA256 ?? '';
|
||||
const encPrivKey = this.encPrivKey ?? '';
|
||||
const pubKey = this.pubKey ?? '';
|
||||
const nostrPubKey = this.nostrPubKey ?? '';
|
||||
|
||||
return {
|
||||
tokenSHA256,
|
||||
nostrPubKey,
|
||||
keys: {
|
||||
pubKey: pubKey.split('\n').join('\\'),
|
||||
encPrivKey: encPrivKey.split('\n').join('\\'),
|
||||
|
@ -1,10 +1,13 @@
|
||||
import { sha256 } from 'js-sha256';
|
||||
import { sha256 as sha256Hash } from '@noble/hashes/sha256';
|
||||
import { Robot, Order, type Federation } from '.';
|
||||
import { roboidentitiesClient } from '../services/Roboidentities/Web';
|
||||
import { hexToBase91, validateTokenEntropy } from '../utils';
|
||||
import { getPublicKey } from 'nostr-tools';
|
||||
|
||||
export interface AuthHeaders {
|
||||
tokenSHA256: string;
|
||||
nostrPubKey: string;
|
||||
keys: {
|
||||
pubKey: string;
|
||||
encPrivKey: string;
|
||||
@ -33,6 +36,11 @@ class Slot {
|
||||
const { hasEnoughEntropy, bitsEntropy, shannonEntropy } = validateTokenEntropy(token);
|
||||
const tokenSHA256 = hexToBase91(sha256(token));
|
||||
|
||||
const nostrHash = sha256Hash(this.token);
|
||||
this.nostrSecKey = new Uint8Array(nostrHash);
|
||||
const nostrPubKey = getPublicKey(this.nostrSecKey);
|
||||
this.nostrPubKey = nostrPubKey;
|
||||
|
||||
this.robots = shortAliases.reduce((acc: Record<string, Robot>, shortAlias: string) => {
|
||||
acc[shortAlias] = new Robot({
|
||||
...robotAttributes,
|
||||
@ -41,6 +49,7 @@ class Slot {
|
||||
bitsEntropy,
|
||||
shannonEntropy,
|
||||
tokenSHA256,
|
||||
nostrPubKey,
|
||||
});
|
||||
this.updateSlotFromRobot(acc[shortAlias]);
|
||||
return acc;
|
||||
@ -57,6 +66,8 @@ class Slot {
|
||||
activeOrder: Order | null = null;
|
||||
lastOrder: Order | null = null;
|
||||
copiedToken: boolean;
|
||||
nostrSecKey?: Uint8Array;
|
||||
nostrPubKey?: string;
|
||||
|
||||
onSlotUpdate: () => void;
|
||||
|
||||
|
@ -130,6 +130,12 @@ class RoboPool {
|
||||
this.sendMessage(JSON.stringify(requestPending));
|
||||
this.sendMessage(JSON.stringify(requestSuccess));
|
||||
};
|
||||
|
||||
sendEvent = (event: Event): void => {
|
||||
const message = ['EVENT', event];
|
||||
|
||||
this.sendMessage(JSON.stringify(message));
|
||||
};
|
||||
}
|
||||
|
||||
export default RoboPool;
|
||||
|
@ -17,6 +17,7 @@ class ApiNativeClient implements ApiClient {
|
||||
...headers,
|
||||
...{
|
||||
Authorization: `Token ${auth.tokenSHA256}`,
|
||||
Nostr: auth.nostrPubKey,
|
||||
},
|
||||
};
|
||||
} else if (auth?.keys != null) {
|
||||
@ -24,6 +25,7 @@ class ApiNativeClient implements ApiClient {
|
||||
...headers,
|
||||
...{
|
||||
Authorization: `Token ${auth.tokenSHA256} | Public ${auth.keys.pubKey} | Private ${auth.keys.encPrivKey}`,
|
||||
Nostr: auth.nostrPubKey,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ class ApiWebClient implements ApiClient {
|
||||
...headers,
|
||||
...{
|
||||
Authorization: `Token ${auth.tokenSHA256}`,
|
||||
Nostr: auth.nostrPubKey,
|
||||
},
|
||||
};
|
||||
} else if (auth?.keys != null) {
|
||||
@ -20,6 +21,7 @@ class ApiWebClient implements ApiClient {
|
||||
...headers,
|
||||
...{
|
||||
Authorization: `Token ${auth.tokenSHA256} | Public ${auth.keys.pubKey} | Private ${auth.keys.encPrivKey}`,
|
||||
Nostr: auth.nostrPubKey,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ import ApiNativeClient from './ApiNativeClient';
|
||||
|
||||
export interface Auth {
|
||||
tokenSHA256: string;
|
||||
nostrPubKey: string;
|
||||
keys?: { pubKey: string; encPrivKey: string };
|
||||
}
|
||||
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats està intentant pagar la teva factura de Lightning. Recorda que els nodes Lightning han d'estar en línia per rebre pagaments.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renovar",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats millora amb més usuaris i liquiditat. Ensenya-li RoboSats a un amic bitcoiner!",
|
||||
"Sending coins to": "Enviant monedes a",
|
||||
"Start Again": "Començar de nou",
|
||||
"Thank you for using Robosats!": "Gràcies per fer servir RoboSats!",
|
||||
"Thank you! RoboSats loves you too": "Gràcies! RoboSats també t'estima",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "Què en penses del teu amfitrió \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "El teu TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Si us plau, espera a que el prenedor bloquegi la seva fiança. Si no ho fa a temps, l'ordre serà pública de nou.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats se snaží zaplatit tvůj lightning invoice. Nezapomeň, že lightning nody musí být online, aby mohl přijímat platby.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats bude lepší s větší likviditou a uživateli. Pověz svým přátelům o Robosats!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Začít znovu",
|
||||
"Thank you for using Robosats!": "Děkujeme, že používáš Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Tvé TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Vyčkej, až příjemce uzamkne kauci. Pokud příjemce neuzamkne kauci včas, nabídka se znovu zveřejní.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats versucht deine Lightning-Invoice zu bezahlen. Denk daran, dass deine Lightning-Node erreichbar sein muss, um die Zahlung zu erhalten.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats wird noch besser mit mehr Nutzern und Liquidität. Erzähl einem Bitcoin-Freund von uns!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Nochmal",
|
||||
"Thank you for using Robosats!": "Danke, dass du Robosats benutzt hast!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Your TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Bitte warte auf den Taker, um eine Kaution zu sperren. Wenn der Taker nicht rechtzeitig eine Kaution sperrt, wird die Order erneut veröffentlicht.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Start Again",
|
||||
"Thank you for using Robosats!": "Thank you for using Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Your TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats está intentando pagar tu factura de Lightning. Recuerda que los nodos Lightning deben estar en línea para recibir pagos.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renovar",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats mejora con más liquidez y usuarios. ¡Háblale a un amigo bitcoiner sobre RoboSats!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Empezar de nuevo",
|
||||
"Thank you for using Robosats!": "¡Gracias por usar RoboSats!",
|
||||
"Thank you! RoboSats loves you too": "¡Gracias! RoboSats también te quiere",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Tu TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Por favor, espera a que el tomador bloquee su fianza. Si no lo hace a tiempo, la orden volverá a publicarse.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats zure Lightning faktura ordaintzen saiatzen ari da. Gogoratu lightning nodoak online egon behar direla ordainketak jaso ahal izateko.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats hobetu egiten da likidezia eta erabiltzaile gehiagorekin. Aipatu Robosats lagun bitcoiner bati!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Berriz Hasi",
|
||||
"Thank you for using Robosats!": "Mila esker Robosats erabiltzeagatik!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Zure TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Mesedez itxaron hartzaileak fidantza blokeatu harte. Hartzaileak fidantza garaiz blokeatzen ez badu, eskaera berriz publikatuko da.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats tente de payer votre facture lightning. Rappelez-vous que les nœuds lightning doivent être en ligne pour recevoir des paiements.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renouveler",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats s'améliore avec plus de liquidité et d'utilisateurs. Parlez de Robosats à un ami bitcoiner!",
|
||||
"Sending coins to": "Envoi coins à",
|
||||
"Start Again": "Recommencer",
|
||||
"Thank you for using Robosats!": "Merci d'utiliser Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Merci ! RoboSats vous aime aussi",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Votre TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Veuillez attendre que le preneur verrouille une caution. Si le preneur ne verrouille pas la caution à temps, l'ordre sera rendue publique à nouveau",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats sta provando a pagare la tua fattura lightning. Ricorda che i nodi lightning devono essere online per ricevere pagamenti.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Rinnova",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats migliora se ha più liquidità ed utenti. Parla di Robosats ai tuoi amici bitcoiner!",
|
||||
"Sending coins to": "Invio monete a",
|
||||
"Start Again": "Ricomincia",
|
||||
"Thank you for using Robosats!": "Grazie per aver usato Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Grazie! Anche RoboSats ti ama",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Il tuo TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Per favore, attendi che l'acquirente blocchi una cauzione. Se l'acquirente non blocca una cauzione in tempo, l'ordine verrà reso nuovamente pubblico.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSatsはあなたのライトニングインボイスを支払おうとしています。支払いを受け取るには、ライトニングノードがオンラインである必要があることを忘れないでください。",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "更新する",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSatsはより多くの流動性とユーザーでより良くなります。ビットコイナーのお友達にRoboSatsについて話してください!",
|
||||
"Sending coins to": "コインを送信する先",
|
||||
"Start Again": "最初からやり直す",
|
||||
"Thank you for using Robosats!": "Robosatsをご利用いただきありがとうございます!",
|
||||
"Thank you! RoboSats loves you too": "ありがとうございます! RoboSatsもあなたを愛しています",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "あなたのTXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "テイカーが担保金をロックするまでお待ちください。タイムリミット内に担保金がロックされない場合、オーダーは再度公開されます。",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats próbuje zapłacić fakturę za błyskawicę. Pamiętaj, że węzły pioruna muszą być online, aby otrzymywać płatności.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats staje się lepszy dzięki większej płynności i użytkownikom. Powiedz znajomemu bitcoinerowi o Robosats!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Zacznij jeszcze raz",
|
||||
"Thank you for using Robosats!": "Dziękujemy za korzystanie z Robosatów!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Your TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Poczekaj, aż przyjmujący zablokuje obligację. Jeśli przyjmujący nie zablokuje obligacji na czas, zlecenie zostanie ponownie upublicznione.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats está tentando pagar sua lightning invoice. Lembre-se de que os nós lightning devem estar online para receber pagamentos.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats fica melhor com mais liquidez e usuários. Conte a um amigo bitcoiner sobre Robosats!",
|
||||
"Sending coins to": "Enviando moedas para",
|
||||
"Start Again": "Comece de novo",
|
||||
"Thank you for using Robosats!": "Obrigado por usar Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Obriagdo! RoboSats também te ama",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Sua TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Por favor, espere que o tomador bloqueie uma fiança. Se o tomador não fechar um vínculo a tempo, a ordem será tornada pública novamente.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats пытается оплатить Ваш Lightning инвойс. Помните, что ноды Lightning должны быть подключены к сети, чтобы получать платежи.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats становится лучше с большей ликвидностью и пользователями. Расскажите другу-биткойнеру о Robosat!",
|
||||
"Sending coins to": "Отправка монет на",
|
||||
"Start Again": "Начать Снова",
|
||||
"Thank you for using Robosats!": "Спасибо за использование Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Спасибо! RoboSats тоже Вас любит",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Ваш TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Пожалуйста, подождите, пока тейкер заблокирует залог. Если тейкер не заблокирует залог вовремя, ордер будет снова опубликован",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats försöker betala din lightning-faktura. Kom ihåg att lightning-noder måste vara online för att kunna mottaga betalningar.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats blir bättre med mer likviditet och fler användare. Berätta om RoboSats för en Bitcoiner-vän!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Börja om",
|
||||
"Thank you for using Robosats!": "Tack för att du använder RoboSats!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Ditt TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Var god vänta på att takern låser sin obligation. Om den inte gör det i tid kommer ordern att göras publik igen.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats inajaribu kulipa ankara yako ya umeme. Kumbuka kuwa nodi za umeme lazima ziwe mtandaoni ili kupokea malipo.",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats inaboreshwa na utoshelevu zaidi na watumiaji. Mwambie rafiki yako wa Bitcoin kuhusu RoboSats!",
|
||||
"Sending coins to": "Inatuma sarafu kwa",
|
||||
"Start Again": "Anza Tena",
|
||||
"Thank you for using Robosats!": "Asante kwa kutumia Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Asante! RoboSats pia inakupenda",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "Kitambulisho chako cha TX",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "Tafadhali subiri mpokeaji aweke dhamana. Ikiwa mpokeaji hataweka dhamana kwa wakati, agizo litatangazwa tena kwa umma.",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats กำลังจ่ายเหรียญให้ lightning invoice ของท่าน lightning nodes จะต้องออนไลน์เพื่อรับเหรียญ",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "Renew",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats จะดีขึ้นเมื่อมีสภาพคล่องและผู้ใช้งานมากขึ้น ช่วยกันชวนเพื่อนของคุณมาใช้ Robosats!",
|
||||
"Sending coins to": "Sending coins to",
|
||||
"Start Again": "Start Again",
|
||||
"Thank you for using Robosats!": "ขอบคุณที่ใช้งาน Robosats!",
|
||||
"Thank you! RoboSats loves you too": "Thank you! RoboSats loves you too",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "TXID ของคุณ",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "โปรดรอคู่ค้าทำการกักกันเหรียญใน bond ถ้าเขากักกันเหรียญไม่ทันในเวลาที่กำหนด รายการจะถูกประำกาศใหม่",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats 正在尝试支付你的闪电发票。请注意,闪电节点必须在线才能接收付款。",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "延续",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats 会随着更多的流动性和更高的用户数量而变得更好。把 RoboSats 推荐给你的比特币朋友吧!",
|
||||
"Sending coins to": "将比特币发送到",
|
||||
"Start Again": "重新开始",
|
||||
"Thank you for using Robosats!": "感谢你使用 Robosats!",
|
||||
"Thank you! RoboSats loves you too": "谢谢!RoboSats 也爱你",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "你的 TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "请等待吃单方锁定保证金。如果吃单方没有及时锁定保证金,订单将再次公开。",
|
||||
|
@ -675,13 +675,16 @@
|
||||
"#81": "Phrases in components/TradeBox/Prompts/SendingSats.tsx",
|
||||
"RoboSats is trying to pay your lightning invoice. Remember that lightning nodes must be online in order to receive payments.": "RoboSats 正在嘗試支付你的閃電發票。請注意,閃電節點必須在線才能接收付款。",
|
||||
"#82": "Phrases in components/TradeBox/Prompts/Successful.tsx",
|
||||
"BETA": "BETA",
|
||||
"Rate your host {{coordinator}}": "Rate your host {{coordinator}}",
|
||||
"Rate your peer {{peer_nick}}": "Rate your peer {{peer_nick}}",
|
||||
"Renew": "延續",
|
||||
"RoboSats gets better with more liquidity and users. Tell a bitcoiner friend about Robosats!": "RoboSats 會隨著更多的流動性和更高的用戶数量而變得更好。把 RoboSats 推薦給你的比特幣朋友吧!",
|
||||
"Sending coins to": "將比特幣發送到",
|
||||
"Start Again": "重新開始",
|
||||
"Thank you for using Robosats!": "感謝你使用 Robosats!",
|
||||
"Thank you! RoboSats loves you too": "謝謝!RoboSats 也愛你",
|
||||
"What do you think your order host \"{{coordinator}}\"?": "What do you think your order host \"{{coordinator}}\"?",
|
||||
"Thank you! {{shortAlias}} loves you too": "Thank you! {{shortAlias}} loves you too",
|
||||
"You need to enable nostr to rate your coordinator.": "You need to enable nostr to rate your coordinator.",
|
||||
"Your TXID": "你的 TXID",
|
||||
"#83": "Phrases in components/TradeBox/Prompts/TakerFound.tsx",
|
||||
"Please wait for the taker to lock a bond. If the taker does not lock a bond in time, the order will be made public again.": "請等待吃單方鎖定保證金。如果吃單方沒有及時鎖定保證金,訂單將再次公開。",
|
||||
|
Reference in New Issue
Block a user