Disable Tor option

This commit is contained in:
KoalaSat
2024-06-04 16:04:17 +02:00
parent daf9ce4d3f
commit e4a8f31ee5
30 changed files with 124 additions and 52 deletions

View File

@ -1,4 +1,4 @@
import React, { StrictMode, Suspense } from 'react'; import React, { StrictMode, Suspense, useContext } from 'react';
import ReactDOM from 'react-dom/client'; import ReactDOM from 'react-dom/client';
import Main from './basic/Main'; import Main from './basic/Main';
import { CssBaseline } from '@mui/material'; import { CssBaseline } from '@mui/material';
@ -10,11 +10,13 @@ import i18n from './i18n/Web';
import { systemClient } from './services/System'; import { systemClient } from './services/System';
import ErrorBoundary from './components/ErrorBoundary'; import ErrorBoundary from './components/ErrorBoundary';
import { AppContextProvider } from './contexts/AppContext'; import { AppContext, AppContextProvider, UseAppStoreType } from './contexts/AppContext';
import { GarageContextProvider } from './contexts/GarageContext'; import { GarageContextProvider } from './contexts/GarageContext';
import { FederationContextProvider } from './contexts/FederationContext'; import { FederationContextProvider } from './contexts/FederationContext';
const App = (): JSX.Element => { const App = (): JSX.Element => {
const { settings } = useContext<UseAppStoreType>(AppContext);
return ( return (
<StrictMode> <StrictMode>
<ErrorBoundary> <ErrorBoundary>

View File

@ -44,7 +44,7 @@ const RobotPage = (): JSX.Element => {
const token = urlToken ?? garage.currentSlot; const token = urlToken ?? garage.currentSlot;
if (token !== undefined && token !== null && page === 'robot') { if (token !== undefined && token !== null && page === 'robot') {
setInputToken(token); setInputToken(token);
if (window.NativeRobosats === undefined || torStatus === 'ON') { if (window.NativeRobosats === undefined || torStatus === 'ON' || !settings.useProxy) {
getGenerateRobot(token); getGenerateRobot(token);
setView('profile'); setView('profile');
} }
@ -83,7 +83,7 @@ const RobotPage = (): JSX.Element => {
garage.deleteSlot(); garage.deleteSlot();
}; };
if (!(window.NativeRobosats === undefined) && !(torStatus === 'ON')) { if (settings.useProxy && !(window.NativeRobosats === undefined) && !(torStatus === 'ON')) {
return ( return (
<Paper <Paper
elevation={12} elevation={12}

View File

@ -1,6 +1,6 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import useAutocomplete from '@mui/base/useAutocomplete'; import { useAutocomplete } from '@mui/base/useAutocomplete';
import { styled } from '@mui/material/styles'; import { styled } from '@mui/material/styles';
import { import {
Button, Button,

View File

@ -90,12 +90,6 @@ const MakerForm = ({
const minRangeAmountMultiple = 1.6; const minRangeAmountMultiple = 1.6;
const amountSafeThresholds = [1.03, 0.98]; const amountSafeThresholds = [1.03, 0.98];
useEffect(() => {
// Why?
// const slot = garage.getSlot();
// if (slot?.token) void federation.fetchRobot(garage, slot?.token);
}, [garage.currentSlot]);
useEffect(() => { useEffect(() => {
setCurrencyCode(currencyDict[fav.currency === 0 ? 1 : fav.currency]); setCurrencyCode(currencyDict[fav.currency === 0 ? 1 : fav.currency]);
}, [coordinatorUpdatedAt]); }, [coordinatorUpdatedAt]);

View File

@ -1,4 +1,4 @@
import React, { useContext } from 'react'; import React, { useContext, useEffect } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { type UseAppStoreType, AppContext } from '../../contexts/AppContext'; import { type UseAppStoreType, AppContext } from '../../contexts/AppContext';
import { import {
@ -28,17 +28,19 @@ import {
QrCode, QrCode,
} from '@mui/icons-material'; } from '@mui/icons-material';
import { systemClient } from '../../services/System'; import { systemClient } from '../../services/System';
import { TorIcon } from '../Icons';
import SwapCalls from '@mui/icons-material/SwapCalls'; import SwapCalls from '@mui/icons-material/SwapCalls';
import { FederationContext, type UseFederationStoreType } from '../../contexts/FederationContext'; import { FederationContext, type UseFederationStoreType } from '../../contexts/FederationContext';
import { GarageContext, UseGarageStoreType } from '../../contexts/GarageContext';
interface SettingsFormProps { interface SettingsFormProps {
dense?: boolean; dense?: boolean;
} }
const SettingsForm = ({ dense = false }: SettingsFormProps): JSX.Element => { const SettingsForm = ({ dense = false }: SettingsFormProps): JSX.Element => {
const { fav, setFav, origin, hostUrl, settings, setSettings } = const { fav, setFav, settings, setSettings } = useContext<UseAppStoreType>(AppContext);
useContext<UseAppStoreType>(AppContext);
const { federation } = useContext<UseFederationStoreType>(FederationContext); const { federation } = useContext<UseFederationStoreType>(FederationContext);
const { garage } = useContext<UseGarageStoreType>(GarageContext);
const theme = useTheme(); const theme = useTheme();
const { t } = useTranslation(); const { t } = useTranslation();
const fontSizes = [ const fontSizes = [
@ -237,6 +239,29 @@ const SettingsForm = ({ dense = false }: SettingsFormProps): JSX.Element => {
</ToggleButton> </ToggleButton>
</ToggleButtonGroup> </ToggleButtonGroup>
</ListItem> </ListItem>
{window.NativeRobosats !== undefined && (
<ListItem>
<ListItemIcon>
<TorIcon />
</ListItemIcon>
<ToggleButtonGroup
exclusive={true}
value={settings.useProxy}
onChange={(_e, useProxy) => {
setSettings({ ...settings, useProxy });
systemClient.setItem('settings_use_proxy', String(useProxy));
}}
>
<ToggleButton value={true} color='primary'>
{t('Build-in')}
</ToggleButton>
<ToggleButton value={false} color='secondary'>
{t('Disabled')}
</ToggleButton>
</ToggleButtonGroup>
</ListItem>
)}
</List> </List>
</Grid> </Grid>
</Grid> </Grid>

View File

@ -55,10 +55,10 @@ const TorIndicator = ({
}; };
const TorConnectionBadge = (): JSX.Element => { const TorConnectionBadge = (): JSX.Element => {
const { torStatus } = useContext<UseAppStoreType>(AppContext); const { torStatus, settings } = useContext<UseAppStoreType>(AppContext);
const { t } = useTranslation(); const { t } = useTranslation();
if (window?.NativeRobosats == null) { if (window?.NativeRobosats == null || !settings.useProxy) {
return <></>; return <></>;
} }

View File

@ -111,12 +111,14 @@ export const FederationContextProvider = ({
}, []); }, []);
useEffect(() => { useEffect(() => {
// On bitcoin network change we reset book, limits and federation info and fetch everything again if (window.NativeRobosats === undefined || torStatus === 'ON' || !settings.useProxy) {
if (window.NativeRobosats === undefined || torStatus === 'ON') {
void federation.updateUrl(origin, settings, hostUrl); void federation.updateUrl(origin, settings, hostUrl);
void federation.update(); void federation.update();
const token = garage.getSlot()?.getRobot()?.token;
if (token) void federation.fetchRobot(garage, token);
} }
}, [settings.network, torStatus]); }, [settings.network, settings.useProxy, torStatus]);
const onOrderReceived = (order: Order): void => { const onOrderReceived = (order: Order): void => {
let newDelay = defaultDelay; let newDelay = defaultDelay;
@ -178,15 +180,6 @@ export const FederationContextProvider = ({
if (page === 'offers') void federation.updateBook(); if (page === 'offers') void federation.updateBook();
}, [page]); }, [page]);
// use effects to fetchRobots on app start and network change
useEffect(() => {
const slot = garage.getSlot();
const robot = slot?.getRobot();
if (robot && garage.currentSlot && slot?.token && robot.encPrivKey && robot.pubKey) {
void federation.fetchRobot(garage, slot.token);
}
}, [settings.network]);
// use effects to fetchRobots on Profile open // use effects to fetchRobots on Profile open
useEffect(() => { useEffect(() => {
const slot = garage.getSlot(); const slot = garage.getSlot();

View File

@ -145,7 +145,7 @@ export class Coordinator {
public loadingInfo: boolean = false; public loadingInfo: boolean = false;
public limits: LimitList = {}; public limits: LimitList = {};
public loadingLimits: boolean = false; public loadingLimits: boolean = false;
public loadingRobot: boolean = true; public loadingRobot: string | null;
updateUrl = (origin: Origin, settings: Settings, hostUrl: string): void => { updateUrl = (origin: Origin, settings: Settings, hostUrl: string): void => {
if (settings.selfhostedClient && this.shortAlias !== 'local') { if (settings.selfhostedClient && this.shortAlias !== 'local') {
@ -185,6 +185,7 @@ export class Coordinator {
if (this.loadingBook) return; if (this.loadingBook) return;
this.loadingBook = true; this.loadingBook = true;
this.book = [];
apiClient apiClient
.get(this.url, `${this.basePath}/api/book/`) .get(this.url, `${this.basePath}/api/book/`)
@ -297,7 +298,7 @@ export class Coordinator {
}; };
fetchRobot = async (garage: Garage, token: string): Promise<Robot | null> => { fetchRobot = async (garage: Garage, token: string): Promise<Robot | null> => {
if (!this.enabled || !token) return null; if (!this.enabled || !token || this.loadingRobot === token) return null;
const robot = garage?.getSlot(token)?.getRobot() ?? null; const robot = garage?.getSlot(token)?.getRobot() ?? null;
const authHeaders = robot?.getAuthHeaders(); const authHeaders = robot?.getAuthHeaders();
@ -308,6 +309,8 @@ export class Coordinator {
if (!hasEnoughEntropy) return null; if (!hasEnoughEntropy) return null;
this.loadingRobot = token;
garage.updateRobot(token, this.shortAlias, { loading: true }); garage.updateRobot(token, this.shortAlias, { loading: true });
const newAttributes = await apiClient const newAttributes = await apiClient
@ -330,7 +333,8 @@ export class Coordinator {
}) })
.catch((e) => { .catch((e) => {
console.log(e); console.log(e);
}); })
.finally(() => (this.loadingRobot = null));
garage.updateRobot(token, this.shortAlias, { garage.updateRobot(token, this.shortAlias, {
...newAttributes, ...newAttributes,

View File

@ -100,7 +100,7 @@ export class Federation {
this.exchange.loadingCoordinators = Object.keys(this.coordinators).length; this.exchange.loadingCoordinators = Object.keys(this.coordinators).length;
this.updateEnabledCoordinators(); this.updateEnabledCoordinators();
for (const coor of Object.values(this.coordinators)) { for (const coor of Object.values(this.coordinators)) {
await coor.update(() => { coor.update(() => {
this.exchange.onlineCoordinators = this.exchange.onlineCoordinators + 1; this.exchange.onlineCoordinators = this.exchange.onlineCoordinators + 1;
this.onCoordinatorSaved(); this.onCoordinatorSaved();
}); });
@ -109,10 +109,11 @@ export class Federation {
updateBook = async (): Promise<void> => { updateBook = async (): Promise<void> => {
this.loading = true; this.loading = true;
this.book = [];
this.triggerHook('onCoordinatorUpdate'); this.triggerHook('onCoordinatorUpdate');
this.exchange.loadingCoordinators = Object.keys(this.coordinators).length; this.exchange.loadingCoordinators = Object.keys(this.coordinators).length;
for (const coor of Object.values(this.coordinators)) { for (const coor of Object.values(this.coordinators)) {
await coor.updateBook(() => { coor.updateBook(() => {
this.onCoordinatorSaved(); this.onCoordinatorSaved();
}); });
} }

View File

@ -1,5 +1,6 @@
import i18n from '../i18n/Web'; import i18n from '../i18n/Web';
import { systemClient } from '../services/System'; import { systemClient } from '../services/System';
import { apiClient } from '../services/api';
import { getHost } from '../utils'; import { getHost } from '../utils';
export type Language = export type Language =
@ -42,8 +43,15 @@ class BaseSettings {
: i18n.resolvedLanguage.substring(0, 2); : i18n.resolvedLanguage.substring(0, 2);
const networkCookie = systemClient.getItem('settings_network'); const networkCookie = systemClient.getItem('settings_network');
this.network = networkCookie !== '' ? networkCookie : 'mainnet';
this.network = networkCookie && networkCookie !== '' ? networkCookie : 'mainnet';
this.host = getHost(); this.host = getHost();
const useProxy = systemClient.getItem('settings_use_proxy');
this.useProxy =
useProxy === 'true' || (useProxy !== 'false' && window.NativeRobosats !== undefined);
apiClient.useProxy = this.useProxy;
} }
public frontend: 'basic' | 'pro' = 'basic'; public frontend: 'basic' | 'pro' = 'basic';
@ -56,6 +64,7 @@ class BaseSettings {
public host?: string; public host?: string;
public unsafeClient: boolean = false; public unsafeClient: boolean = false;
public selfhostedClient: boolean = false; public selfhostedClient: boolean = false;
public useProxy: boolean;
} }
export default BaseSettings; export default BaseSettings;

View File

@ -1,8 +1,12 @@
import { type ApiClient, type Auth } from '..'; import { type ApiClient, type Auth } from '..';
import { systemClient } from '../../System'; import { systemClient } from '../../System';
import ApiWebClient from '../ApiWebClient';
class ApiNativeClient implements ApiClient { class ApiNativeClient implements ApiClient {
private assetsCache: Record<string, string> = {}; public useProxy = true;
private webClient: ApiClient = new ApiWebClient();
private readonly assetsPromises = new Map<string, Promise<string | undefined>>(); private readonly assetsPromises = new Map<string, Promise<string | undefined>>();
private readonly getHeaders: (auth?: Auth) => HeadersInit = (auth) => { private readonly getHeaders: (auth?: Auth) => HeadersInit = (auth) => {
@ -51,6 +55,7 @@ class ApiNativeClient implements ApiClient {
public delete: (baseUrl: string, path: string, auth?: Auth) => Promise<object | undefined> = public delete: (baseUrl: string, path: string, auth?: Auth) => Promise<object | undefined> =
async (baseUrl, path, auth) => { async (baseUrl, path, auth) => {
if (!this.proxy) this.webClient.delete(baseUrl, path, auth);
return await window.NativeRobosats?.postMessage({ return await window.NativeRobosats?.postMessage({
category: 'http', category: 'http',
type: 'delete', type: 'delete',
@ -66,6 +71,7 @@ class ApiNativeClient implements ApiClient {
body: object, body: object,
auth?: Auth, auth?: Auth,
) => Promise<object | undefined> = async (baseUrl, path, body, auth) => { ) => Promise<object | undefined> = async (baseUrl, path, body, auth) => {
if (!this.proxy) this.webClient.post(baseUrl, path, body, auth);
return await window.NativeRobosats?.postMessage({ return await window.NativeRobosats?.postMessage({
category: 'http', category: 'http',
type: 'post', type: 'post',
@ -81,6 +87,7 @@ class ApiNativeClient implements ApiClient {
path, path,
auth, auth,
) => { ) => {
if (!this.proxy) this.webClient.get(baseUrl, path, auth);
return await window.NativeRobosats?.postMessage({ return await window.NativeRobosats?.postMessage({
category: 'http', category: 'http',
type: 'get', type: 'get',

View File

@ -1,6 +1,8 @@
import { type ApiClient, type Auth } from '..'; import { type ApiClient, type Auth } from '..';
class ApiWebClient implements ApiClient { class ApiWebClient implements ApiClient {
public useProxy = false;
private readonly getHeaders: (auth?: Auth) => HeadersInit = (auth) => { private readonly getHeaders: (auth?: Auth) => HeadersInit = (auth) => {
let headers = { let headers = {
'Content-Type': 'application/json', 'Content-Type': 'application/json',

View File

@ -7,6 +7,7 @@ export interface Auth {
} }
export interface ApiClient { export interface ApiClient {
useProxy: boolean;
post: (baseUrl: string, path: string, body: object, auth?: Auth) => Promise<object | undefined>; post: (baseUrl: string, path: string, body: object, auth?: Auth) => Promise<object | undefined>;
put: (baseUrl: string, path: string, body: object, auth?: Auth) => Promise<object | undefined>; put: (baseUrl: string, path: string, body: object, auth?: Auth) => Promise<object | undefined>;
get: (baseUrl: string, path: string, auth?: Auth) => Promise<object | undefined>; get: (baseUrl: string, path: string, auth?: Auth) => Promise<object | undefined>;

View File

@ -464,8 +464,8 @@
"The order has expired": "L'ordre ha expirat", "The order has expired": "L'ordre ha expirat",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "Tu reps via Lightning {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "Reps via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "Reps via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "Tu reps via Lightning {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "Tu envies via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "Tu envies via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "Envies via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "Envies via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "La teva última ordre #{{orderID}}", "Your last order #{{orderID}}": "La teva última ordre #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Fosc", "Dark": "Fosc",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Clar", "Light": "Clar",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "Nabídka vypršela", "The order has expired": "Nabídka vypršela",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Přirážka: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Přirážka: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Tvá poslední nabídka #{{orderID}}", "Your last order #{{orderID}}": "Tvá poslední nabídka #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "Die Order ist abgelaufen", "The order has expired": "Die Order ist abgelaufen",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Aufschlag: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Aufschlag: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Deine letzte Order #{{orderID}}", "Your last order #{{orderID}}": "Deine letzte Order #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "The order has expired", "The order has expired": "The order has expired",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Your last order #{{orderID}}", "Your last order #{{orderID}}": "Your last order #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "La orden ha expirado", "The order has expired": "La orden ha expirado",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Tu última orden #{{orderID}}", "Your last order #{{orderID}}": "Tu última orden #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Oscuro", "Dark": "Oscuro",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Claro", "Light": "Claro",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "Eskaera iraungi da", "The order has expired": "Eskaera iraungi da",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: %{{premium}}", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prima: %{{premium}}",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Zure azken eskaera #{{orderID}}", "Your last order #{{orderID}}": "Zure azken eskaera #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "L'ordre a expiré", "The order has expired": "L'ordre a expiré",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "Vous recevez via Lightning {{amount}} Sats (environ)",
"You receive via {{method}} {{amount}}": "Vous recevez via {{méthode}} {{montant}}", "You receive via {{method}} {{amount}}": "Vous recevez via {{méthode}} {{montant}}",
"You receive {{amount}} Sats (Approx)": "Vous recevez via Lightning {{amount}} Sats (environ)",
"You send via Lightning {{amount}} Sats (Approx)": "Vous envoyez via Lightning {{amount}} Sats (environ)", "You send via Lightning {{amount}} Sats (Approx)": "Vous envoyez via Lightning {{amount}} Sats (environ)",
"You send via {{method}} {{amount}}": "Vous envoyez via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "Vous envoyez via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prime: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prime: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Votre dernière commande #{{orderID}}", "Your last order #{{orderID}}": "Votre dernière commande #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Sombre", "Dark": "Sombre",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "L'ordine è scaduto", "The order has expired": "L'ordine è scaduto",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "La posizione appuntata è approssimativa. La posizione esatta del luogo dell'incontro deve essere indicata nella chat crittografata.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "La posizione appuntata è approssimativa. La posizione esatta del luogo dell'incontro deve essere indicata nella chat crittografata.",
"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 receive {{amount}} Sats (Approx)": "Ricevi {{amount}} Sats via Lightning (approssimativo)",
"You receive via {{method}} {{amount}}": "Ricevi {{amount}} via {{method}}", "You receive via {{method}} {{amount}}": "Ricevi {{amount}} via {{method}}",
"You receive {{amount}} Sats (Approx)": "Ricevi {{amount}} Sats via Lightning (approssimativo)",
"You send via Lightning {{amount}} Sats (Approx)": "Invii {{amount}} Sats via Lightning (approssimativo)", "You send via Lightning {{amount}} Sats (Approx)": "Invii {{amount}} Sats via Lightning (approssimativo)",
"You send via {{method}} {{amount}}": "Invii {{amount}} via {{method}}", "You send via {{method}} {{amount}}": "Invii {{amount}} via {{method}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premio: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premio: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Il tuo ultimo ordine #{{orderID}}", "Your last order #{{orderID}}": "Il tuo ultimo ordine #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Scuro", "Dark": "Scuro",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Chiaro", "Light": "Chiaro",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "注文は期限切れになりました", "The order has expired": "注文は期限切れになりました",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "ライトニングで{{amount}} Satsを受け取ります",
"You receive via {{method}} {{amount}}": "{{method}}で{{amount}}を受け取ります", "You receive via {{method}} {{amount}}": "{{method}}で{{amount}}を受け取ります",
"You receive {{amount}} Sats (Approx)": "ライトニングで{{amount}} Satsを受け取ります",
"You send via Lightning {{amount}} Sats (Approx)": "ライトニングで{{amount}} Satsを送信します", "You send via Lightning {{amount}} Sats (Approx)": "ライトニングで{{amount}} Satsを送信します",
"You send via {{method}} {{amount}}": "{{method}}で{{amount}}を送信します", "You send via {{method}} {{amount}}": "{{method}}で{{amount}}を送信します",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - プレミアム: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - プレミアム: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "前回のオーダー #{{orderID}}", "Your last order #{{orderID}}": "前回のオーダー #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "ダーク", "Dark": "ダーク",
"Disabled": "Disabled",
"Fiat": "フィアット", "Fiat": "フィアット",
"Light": "ライト", "Light": "ライト",
"Mainnet": "メインネット", "Mainnet": "メインネット",

View File

@ -464,8 +464,8 @@
"The order has expired": "Zamówienie wygasło", "The order has expired": "Zamówienie wygasło",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premia: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premia: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Your last order #{{orderID}}", "Your last order #{{orderID}}": "Your last order #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "A ordem expirou", "The order has expired": "A ordem expirou",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prêmio: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Prêmio: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Sua última ordem #{{orderID}}", "Your last order #{{orderID}}": "Sua última ordem #{{orderID}}",
"finished order": "ordem finalizada", "finished order": "ordem finalizada",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "Срок действия ордера истёк", "The order has expired": "Срок действия ордера истёк",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "Закрепленное местоположение является приблизительным. Точное местоположение места встречи необходимо сообщить в зашифрованном чате.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "Закрепленное местоположение является приблизительным. Точное местоположение места встречи необходимо сообщить в зашифрованном чате.",
"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 receive {{amount}} Sats (Approx)": "Вы получаете через Lightning {{amount}} Сатоши (приблизительно)",
"You receive via {{method}} {{amount}}": "Вы получаете через {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "Вы получаете через {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "Вы получаете через Lightning {{amount}} Сатоши (приблизительно)",
"You send via Lightning {{amount}} Sats (Approx)": "Вы отправляете через Lightning {{amount}} Сатоши (приблизительно)", "You send via Lightning {{amount}} Sats (Approx)": "Вы отправляете через Lightning {{amount}} Сатоши (приблизительно)",
"You send via {{method}} {{amount}}": "Вы отправляете через {{method}} {{amount}}", "You send via {{method}} {{amount}}": "Вы отправляете через {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Наценка: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Наценка: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}", "Your last order #{{orderID}}": "Ваш последний ордер #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Темный", "Dark": "Темный",
"Disabled": "Disabled",
"Fiat": "Фиат", "Fiat": "Фиат",
"Light": "Светлый", "Light": "Светлый",
"Mainnet": "Основная сеть", "Mainnet": "Основная сеть",

View File

@ -464,8 +464,8 @@
"The order has expired": "Ordern har förfallit", "The order has expired": "Ordern har förfallit",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Din senaste order #{{orderID}}", "Your last order #{{orderID}}": "Din senaste order #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "Agizo limekwisha muda", "The order has expired": "Agizo limekwisha muda",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Hauwezi kuchukua agizo bado! Subiri {{timeMin}}m {{timeSec}}s", "You cannot take an order yet! Wait {{timeMin}}m {{timeSec}}s": "Hauwezi kuchukua agizo bado! Subiri {{timeMin}}m {{timeSec}}s",
"You receive {{amount}} Sats (Approx)": "Utapokea kupitia Lightning {{amount}} Sats (Takriban)",
"You receive via {{method}} {{amount}}": "Utapokea kupitia {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "Utapokea kupitia {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "Utapokea kupitia Lightning {{amount}} Sats (Takriban)",
"You send via Lightning {{amount}} Sats (Approx)": "Utatuma kupitia Lightning {{amount}} Sats (Takriban)", "You send via Lightning {{amount}} Sats (Approx)": "Utatuma kupitia Lightning {{amount}} Sats (Takriban)",
"You send via {{method}} {{amount}}": "Utatuma kupitia {{method}} {{amount}}", "You send via {{method}} {{amount}}": "Utatuma kupitia {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "Amri yako ya mwisho #{{orderID}}", "Your last order #{{orderID}}": "Amri yako ya mwisho #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Giza", "Dark": "Giza",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Nuru", "Light": "Nuru",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "รายการหมดอายุแล้ว", "The order has expired": "รายการหมดอายุแล้ว",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}", "You receive via {{method}} {{amount}}": "You receive via {{method}} {{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}", "You send via {{method}} {{amount}}": "You send via {{method}} {{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - ค่าพรีเมี่ยม: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - ค่าพรีเมี่ยม: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "รายการล่าสุดของคุณ #{{orderID}}", "Your last order #{{orderID}}": "รายการล่าสุดของคุณ #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "Dark", "Dark": "Dark",
"Disabled": "Disabled",
"Fiat": "Fiat", "Fiat": "Fiat",
"Light": "Light", "Light": "Light",
"Mainnet": "Mainnet", "Mainnet": "Mainnet",

View File

@ -464,8 +464,8 @@
"The order has expired": "订单已到期", "The order has expired": "订单已到期",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "你通过{{method}}接收{{amount}}", "You receive via {{method}} {{amount}}": "你通过{{method}}接收{{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "你通过{{method}}发送{{amount}}", "You send via {{method}} {{amount}}": "你通过{{method}}发送{{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - 溢价: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - 溢价: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "你的上一笔交易 #{{orderID}}", "Your last order #{{orderID}}": "你的上一笔交易 #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "深色", "Dark": "深色",
"Disabled": "Disabled",
"Fiat": "法币", "Fiat": "法币",
"Light": "浅色", "Light": "浅色",
"Mainnet": "主网", "Mainnet": "主网",

View File

@ -464,8 +464,8 @@
"The order has expired": "訂單已到期", "The order has expired": "訂單已到期",
"The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.", "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.": "The pinned location is approximate. The exact location for the meeting place must be exchanged in the encrypted chat.",
"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 receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You receive via {{method}} {{amount}}": "你通過{{method}}接收{{amount}}", "You receive via {{method}} {{amount}}": "你通過{{method}}接收{{amount}}",
"You receive {{amount}} Sats (Approx)": "You receive {{amount}} Sats (Approx)",
"You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)", "You send via Lightning {{amount}} Sats (Approx)": "You send via Lightning {{amount}} Sats (Approx)",
"You send via {{method}} {{amount}}": "你通過{{method}}發送{{amount}}", "You send via {{method}} {{amount}}": "你通過{{method}}發送{{amount}}",
"{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - 溢價: {{premium}}%", "{{price}} {{currencyCode}}/BTC - Premium: {{premium}}%": "{{price}} {{currencyCode}}/BTC - 溢價: {{premium}}%",
@ -489,7 +489,9 @@
"Your last order #{{orderID}}": "你的上一筆交易 #{{orderID}}", "Your last order #{{orderID}}": "你的上一筆交易 #{{orderID}}",
"finished order": "finished order", "finished order": "finished order",
"#43": "Phrases in components/SettingsForm/index.tsx", "#43": "Phrases in components/SettingsForm/index.tsx",
"Build-in": "Build-in",
"Dark": "深色", "Dark": "深色",
"Disabled": "Disabled",
"Fiat": "法幣", "Fiat": "法幣",
"Light": "淺色", "Light": "淺色",
"Mainnet": "主網", "Mainnet": "主網",