mirror of
https://github.com/RoboSats/robosats.git
synced 2024-12-13 02:46:28 +00:00
Add version mismatch detection, refactor GH workflows, draft release.yml, increase prettier scope (#250)
* Refactor GH workflows * Add version mismatch checker and UpdateClient Dialog * Fix finalize release workflow * Increase prettier scope * Increase prettier coverage, add some static to prettierignore * Add CodeQL on PR
This commit is contained in:
parent
e4ddeea39d
commit
37b8fdd233
@ -8,6 +8,11 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
paths: ["frontend", "nodeapp"]
|
paths: ["frontend", "nodeapp"]
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
semver:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
||||||
@ -71,6 +76,7 @@ jobs:
|
|||||||
push: true
|
push: true
|
||||||
tags: |
|
tags: |
|
||||||
recksato/robosats-client:${{ steps.commit.outputs.short }}
|
recksato/robosats-client:${{ steps.commit.outputs.short }}
|
||||||
|
recksato/robosats-client:${{ inputs.semver }}
|
||||||
recksato/robosats-client:latest
|
recksato/robosats-client:latest
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
|
75
.github/workflows/codeql-client.yml
vendored
Normal file
75
.github/workflows/codeql-client.yml
vendored
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL Analysis Client"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ "main" ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ "main" ]
|
||||||
|
paths:
|
||||||
|
- 'frontend'
|
||||||
|
- 'mobile'
|
||||||
|
schedule:
|
||||||
|
- cron: '39 10 * * 2'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'javascript' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v2
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
|
||||||
|
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||||
|
# queries: security-extended,security-and-quality
|
||||||
|
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v2
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||||
|
|
||||||
|
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||||
|
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||||
|
|
||||||
|
# - run: |
|
||||||
|
# echo "Run, Build Application using script"
|
||||||
|
# ./location_of_script_within_repo/buildscript.sh
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v2
|
@ -9,14 +9,16 @@
|
|||||||
# the `language` matrix defined below to confirm you have the correct set of
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
# supported CodeQL languages.
|
# supported CodeQL languages.
|
||||||
#
|
#
|
||||||
name: "CodeQL"
|
name: "CodeQL Analysis Coordinator"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
# The branches below must be a subset of the branches above
|
# The branches below must be a subset of the branches above
|
||||||
# branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
|
paths:
|
||||||
|
- 'api'
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '39 10 * * 2'
|
- cron: '39 10 * * 2'
|
||||||
|
|
||||||
@ -32,7 +34,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
language: [ 'javascript', 'python' ]
|
language: [ 'python' ]
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
name: Backend Image CI
|
name: Coodinator Image CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@ -8,6 +8,11 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
paths: ["api", "chat", "control", "robosats", "frontend"]
|
paths: ["api", "chat", "control", "robosats", "frontend"]
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
semver:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
|
1
.github/workflows/django-test.yml
vendored
1
.github/workflows/django-test.yml
vendored
@ -2,6 +2,7 @@ name: Django Tests
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
workflow_call:
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
paths: ["api", "chat", "control", "robosats"]
|
paths: ["api", "chat", "control", "robosats"]
|
||||||
|
8
.github/workflows/frontend-build.yml
vendored
8
.github/workflows/frontend-build.yml
vendored
@ -2,6 +2,11 @@ name: Frontend Test & Build
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
semver:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
push:
|
push:
|
||||||
branches: [ "main" ]
|
branches: [ "main" ]
|
||||||
paths: [ "frontend" ]
|
paths: [ "frontend" ]
|
||||||
@ -48,12 +53,15 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
name: main-js
|
name: main-js
|
||||||
path: frontend/static/frontend/main.js
|
path: frontend/static/frontend/main.js
|
||||||
|
|
||||||
- name: 'Invoke Backend Build CI workflow'
|
- name: 'Invoke Backend Build CI workflow'
|
||||||
|
if: ${{ inputs.semver }} != ""
|
||||||
uses: benc-uk/workflow-dispatch@v1
|
uses: benc-uk/workflow-dispatch@v1
|
||||||
with:
|
with:
|
||||||
workflow: 'Backend Image CI'
|
workflow: 'Backend Image CI'
|
||||||
token: ${{ secrets.PERSONAL_TOKEN }}
|
token: ${{ secrets.PERSONAL_TOKEN }}
|
||||||
- name: 'Invoke Client App Build CI/CD workflow'
|
- name: 'Invoke Client App Build CI/CD workflow'
|
||||||
|
if: ${{ inputs.semver }} != ""
|
||||||
uses: benc-uk/workflow-dispatch@v1
|
uses: benc-uk/workflow-dispatch@v1
|
||||||
with:
|
with:
|
||||||
workflow: 'Client App Image CI/CD'
|
workflow: 'Client App Image CI/CD'
|
||||||
|
3
.github/workflows/linter.yml
vendored
3
.github/workflows/linter.yml
vendored
@ -37,6 +37,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
prettier: true
|
prettier: true
|
||||||
prettier_dir: frontend
|
prettier_dir: frontend
|
||||||
# Many linting errors
|
|
||||||
|
## Disabled due to error
|
||||||
# eslint: true
|
# eslint: true
|
||||||
# eslint_dir: frontend
|
# eslint_dir: frontend
|
79
.github/workflows/release.yml
vendored
Normal file
79
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
|
||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- "v*.*.*"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-versions:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: 'Checkout'
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- uses: olegtarasov/get-tag@v2.1
|
||||||
|
id: tagName
|
||||||
|
- name: 'Validate versions match (tag, backend, frontend, Android)'
|
||||||
|
id: validate
|
||||||
|
run: |
|
||||||
|
sudo apt-get install jq
|
||||||
|
|
||||||
|
clientV=$(jq -r .version frontend/package.json)
|
||||||
|
coordinatorV=$(jq -r .major version.json).$(jq -r .minor version.json).$(jq -r .patch version.json)
|
||||||
|
tagV=$(git describe --tags --abbrev=0 | sed 's/v//')
|
||||||
|
|
||||||
|
printf "Client version: ${clientV}\nCoordinator version: ${coordinatorV}\nGit tag version: ${tagV}\n"
|
||||||
|
|
||||||
|
if [ "$coordinatorV" = "$clientV" ] && [ "$coordinatorV" = "$tagV" ] ; then
|
||||||
|
echo "Versions match!"
|
||||||
|
else
|
||||||
|
echo "Versions do not match! You might have forgotten to update the version on a component."; exit $ERRCODE;
|
||||||
|
fi
|
||||||
|
|
||||||
|
django-test:
|
||||||
|
uses: reckless-satoshi/robosats/.github/workflows/django-test.yml@main
|
||||||
|
needs: check-versions
|
||||||
|
|
||||||
|
frontend-build:
|
||||||
|
uses: reckless-satoshi/robosats/.github/workflows/frontend-build.yml@main
|
||||||
|
needs: check-versions
|
||||||
|
with:
|
||||||
|
semver: ${{ needs.check-version.tagName.outputs.tag }}
|
||||||
|
|
||||||
|
coordinator-image:
|
||||||
|
uses: reckless-satoshi/robosats/.github/workflows/coordinator-image.yml@main
|
||||||
|
needs: [django-test, frontend-build]
|
||||||
|
with:
|
||||||
|
semver: ${{ needs.check-version.tagName.outputs.tag }}
|
||||||
|
|
||||||
|
client-image:
|
||||||
|
uses: reckless-satoshi/robosats/.github/workflows/client-image.yml@main
|
||||||
|
needs: frontend-build
|
||||||
|
with:
|
||||||
|
semver: ${{ needs.check-version.tagName.outputs.tag }}
|
||||||
|
|
||||||
|
android-build:
|
||||||
|
uses: reckless-satoshi/robosats/.github/workflows/coordinator-image.yml@main
|
||||||
|
needs: frontend-build
|
||||||
|
with:
|
||||||
|
semver: ${{ needs.check-version.tagName.outputs.tag }}
|
||||||
|
|
||||||
|
changelog:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: "Generate release changelog"
|
||||||
|
uses: heinrichreimer/github-changelog-generator-action@v2.3
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
release:
|
||||||
|
needs: [coordinator-image, client-image, android-build, changelog]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
body: ${{ needs.changelog.outputs.changelog }}
|
12
api/utils.py
12
api/utils.py
@ -134,7 +134,7 @@ def get_lnd_version():
|
|||||||
|
|
||||||
robosats_commit_cache = {}
|
robosats_commit_cache = {}
|
||||||
@ring.dict(robosats_commit_cache, expire=3600)
|
@ring.dict(robosats_commit_cache, expire=3600)
|
||||||
def get_commit_robosats():
|
def get_robosats_commit():
|
||||||
|
|
||||||
commit = os.popen('git log -n 1 --pretty=format:"%H"')
|
commit = os.popen('git log -n 1 --pretty=format:"%H"')
|
||||||
commit_hash = commit.read()
|
commit_hash = commit.read()
|
||||||
@ -146,6 +146,16 @@ def get_commit_robosats():
|
|||||||
|
|
||||||
return commit_hash
|
return commit_hash
|
||||||
|
|
||||||
|
robosats_version_cache = {}
|
||||||
|
@ring.dict(robosats_commit_cache, expire=99999)
|
||||||
|
def get_robosats_version():
|
||||||
|
|
||||||
|
with open("version.json") as f:
|
||||||
|
version_dict = json.load(f)
|
||||||
|
|
||||||
|
print(version_dict)
|
||||||
|
return version_dict
|
||||||
|
|
||||||
premium_percentile = {}
|
premium_percentile = {}
|
||||||
@ring.dict(premium_percentile, expire=300)
|
@ring.dict(premium_percentile, expire=300)
|
||||||
def compute_premium_percentile(order):
|
def compute_premium_percentile(order):
|
||||||
|
@ -17,7 +17,7 @@ from control.models import AccountingDay, BalanceLog
|
|||||||
from api.logics import Logics
|
from api.logics import Logics
|
||||||
from api.messages import Telegram
|
from api.messages import Telegram
|
||||||
from secrets import token_urlsafe
|
from secrets import token_urlsafe
|
||||||
from api.utils import get_lnd_version, get_commit_robosats, compute_premium_percentile, compute_avg_premium
|
from api.utils import get_lnd_version, get_robosats_commit, get_robosats_version, compute_premium_percentile, compute_avg_premium
|
||||||
|
|
||||||
from .nick_generator.nick_generator import NickGenerator
|
from .nick_generator.nick_generator import NickGenerator
|
||||||
from robohash import Robohash
|
from robohash import Robohash
|
||||||
@ -837,7 +837,8 @@ class InfoView(ListAPIView):
|
|||||||
context["last_day_volume"] = round(total_volume, 8)
|
context["last_day_volume"] = round(total_volume, 8)
|
||||||
context["lifetime_volume"] = round(lifetime_volume, 8)
|
context["lifetime_volume"] = round(lifetime_volume, 8)
|
||||||
context["lnd_version"] = get_lnd_version()
|
context["lnd_version"] = get_lnd_version()
|
||||||
context["robosats_running_commit_hash"] = get_commit_robosats()
|
context["robosats_running_commit_hash"] = get_robosats_commit()
|
||||||
|
context["version"] = get_robosats_version()
|
||||||
context["alternative_site"] = config("ALTERNATIVE_SITE")
|
context["alternative_site"] = config("ALTERNATIVE_SITE")
|
||||||
context["alternative_name"] = config("ALTERNATIVE_NAME")
|
context["alternative_name"] = config("ALTERNATIVE_NAME")
|
||||||
context["node_alias"] = config("NODE_ALIAS")
|
context["node_alias"] = config("NODE_ALIAS")
|
||||||
|
@ -19,12 +19,7 @@
|
|||||||
"sourceType": "module",
|
"sourceType": "module",
|
||||||
"project": "./tsconfig.json"
|
"project": "./tsconfig.json"
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": ["react", "react-hooks", "@typescript-eslint", "prettier"],
|
||||||
"react",
|
|
||||||
"react-hooks",
|
|
||||||
"@typescript-eslint",
|
|
||||||
"prettier"
|
|
||||||
],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"react-hooks/rules-of-hooks": "error",
|
"react-hooks/rules-of-hooks": "error",
|
||||||
"react-hooks/exhaustive-deps": "warn",
|
"react-hooks/exhaustive-deps": "warn",
|
||||||
|
@ -1 +1,5 @@
|
|||||||
src/components/payment-methods/code/code.js
|
src/components/payment-methods/code/code.js
|
||||||
|
static/rest_framework/**
|
||||||
|
static/admin/**
|
||||||
|
static/frontend/**
|
||||||
|
static/import_export/**
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
{
|
{
|
||||||
"presets": [
|
"presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"],
|
||||||
"@babel/preset-env",
|
|
||||||
"@babel/preset-react",
|
|
||||||
"@babel/preset-typescript"
|
|
||||||
],
|
|
||||||
"plugins": [
|
"plugins": [
|
||||||
[
|
[
|
||||||
"@babel/plugin-transform-runtime",
|
"@babel/plugin-transform-runtime",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "frontend",
|
"name": "frontend",
|
||||||
"version": "1.0.0",
|
"version": "0.2.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -9,7 +9,7 @@
|
|||||||
"build": "webpack --mode production",
|
"build": "webpack --mode production",
|
||||||
"lint": "eslint src/**/*.{js,ts,tsx}",
|
"lint": "eslint src/**/*.{js,ts,tsx}",
|
||||||
"lint:fix": "eslint --fix 'src/**/*.{js,ts,tsx}'",
|
"lint:fix": "eslint --fix 'src/**/*.{js,ts,tsx}'",
|
||||||
"format": "prettier --write 'src/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
|
"format": "prettier --write '**/**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc"
|
||||||
},
|
},
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "",
|
"author": "",
|
||||||
|
@ -32,9 +32,16 @@ import PriceChangeIcon from '@mui/icons-material/PriceChange';
|
|||||||
// Missing flags
|
// Missing flags
|
||||||
import { CataloniaFlag, BasqueCountryFlag } from './Icons';
|
import { CataloniaFlag, BasqueCountryFlag } from './Icons';
|
||||||
|
|
||||||
import { CommunityDialog, ExchangeSummaryDialog, ProfileDialog, StatsDialog } from './Dialogs';
|
import {
|
||||||
|
CommunityDialog,
|
||||||
|
ExchangeSummaryDialog,
|
||||||
|
ProfileDialog,
|
||||||
|
StatsDialog,
|
||||||
|
UpdateClientDialog,
|
||||||
|
} from './Dialogs';
|
||||||
|
|
||||||
import { getCookie } from '../utils/cookies';
|
import { getCookie } from '../utils/cookies';
|
||||||
|
import checkVer from '../utils/checkVer';
|
||||||
|
|
||||||
class BottomBar extends Component {
|
class BottomBar extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
@ -44,6 +51,7 @@ class BottomBar extends Component {
|
|||||||
openCommuniy: false,
|
openCommuniy: false,
|
||||||
openExchangeSummary: false,
|
openExchangeSummary: false,
|
||||||
openClaimRewards: false,
|
openClaimRewards: false,
|
||||||
|
openUpdateClient: false,
|
||||||
num_public_buy_orders: 0,
|
num_public_buy_orders: 0,
|
||||||
num_public_sell_orders: 0,
|
num_public_sell_orders: 0,
|
||||||
book_liquidity: 0,
|
book_liquidity: 0,
|
||||||
@ -72,9 +80,14 @@ class BottomBar extends Component {
|
|||||||
|
|
||||||
getInfo() {
|
getInfo() {
|
||||||
this.setState(null);
|
this.setState(null);
|
||||||
apiClient.get('/api/info/').then(
|
apiClient.get('/api/info/').then((data) => {
|
||||||
(data) =>
|
const versionInfo = checkVer(data.version.major, data.version.minor, data.version.patch);
|
||||||
this.setState(data) &
|
this.setState({
|
||||||
|
...data,
|
||||||
|
openUpdateClient: versionInfo.updateAvailable,
|
||||||
|
coordinatorVersion: versionInfo.coordinatorVersion,
|
||||||
|
clientVersion: versionInfo.clientVersion,
|
||||||
|
});
|
||||||
this.props.setAppState({
|
this.props.setAppState({
|
||||||
nickname: data.nickname,
|
nickname: data.nickname,
|
||||||
loading: false,
|
loading: false,
|
||||||
@ -87,8 +100,8 @@ class BottomBar extends Component {
|
|||||||
earnedRewards: data.earned_rewards,
|
earnedRewards: data.earned_rewards,
|
||||||
lastDayPremium: data.last_day_nonkyc_btc_premium,
|
lastDayPremium: data.last_day_nonkyc_btc_premium,
|
||||||
stealthInvoices: data.wants_stealth,
|
stealthInvoices: data.wants_stealth,
|
||||||
}),
|
});
|
||||||
);
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
handleClickOpenStatsForNerds = () => {
|
handleClickOpenStatsForNerds = () => {
|
||||||
@ -631,6 +644,13 @@ class BottomBar extends Component {
|
|||||||
handleClickCloseCommunity={this.handleClickCloseCommunity}
|
handleClickCloseCommunity={this.handleClickCloseCommunity}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<UpdateClientDialog
|
||||||
|
open={this.state.openUpdateClient}
|
||||||
|
coordinatorVersion={this.state.coordinatorVersion}
|
||||||
|
clientVersion={this.state.clientVersion}
|
||||||
|
handleClickClose={() => this.setState({ openUpdateClient: false })}
|
||||||
|
/>
|
||||||
|
|
||||||
<ExchangeSummaryDialog
|
<ExchangeSummaryDialog
|
||||||
isOpen={this.state.openExchangeSummary}
|
isOpen={this.state.openExchangeSummary}
|
||||||
handleClickCloseExchangeSummary={this.handleClickCloseExchangeSummary}
|
handleClickCloseExchangeSummary={this.handleClickCloseExchangeSummary}
|
||||||
|
114
frontend/src/components/Dialogs/UpdateClient.tsx
Normal file
114
frontend/src/components/Dialogs/UpdateClient.tsx
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { useTranslation } from 'react-i18next';
|
||||||
|
|
||||||
|
import {
|
||||||
|
Dialog,
|
||||||
|
DialogContent,
|
||||||
|
DialogActions,
|
||||||
|
Button,
|
||||||
|
Divider,
|
||||||
|
List,
|
||||||
|
ListItemText,
|
||||||
|
ListItem,
|
||||||
|
ListItemIcon,
|
||||||
|
ListItemButton,
|
||||||
|
Typography,
|
||||||
|
} from '@mui/material';
|
||||||
|
|
||||||
|
import WebIcon from '@mui/icons-material/Web';
|
||||||
|
import AndroidIcon from '@mui/icons-material/Android';
|
||||||
|
import UpcomingIcon from '@mui/icons-material/Upcoming';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
open: boolean;
|
||||||
|
clientVersion: string;
|
||||||
|
coordinatorVersion: string;
|
||||||
|
handleClickClose: () => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
const UpdateClientDialog = ({
|
||||||
|
open,
|
||||||
|
clientVersion,
|
||||||
|
coordinatorVersion,
|
||||||
|
handleClickClose,
|
||||||
|
}: Props): JSX.Element => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Dialog open={open} onClose={handleClickClose}>
|
||||||
|
<DialogContent>
|
||||||
|
<Typography component='h5' variant='h5'>
|
||||||
|
{t('Update your RoboSats client')}
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<Typography>
|
||||||
|
{t(
|
||||||
|
'The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.',
|
||||||
|
{ coordinatorVersion: coordinatorVersion, clientVersion: clientVersion },
|
||||||
|
)}
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
<List dense>
|
||||||
|
<ListItemButton
|
||||||
|
component='a'
|
||||||
|
target='_blank'
|
||||||
|
href={`https://github.com/Reckless-Satoshi/robosats/releases/tag/${coordinatorVersion}`}
|
||||||
|
rel='noreferrer'
|
||||||
|
>
|
||||||
|
<ListItemIcon>
|
||||||
|
<AndroidIcon color='primary' sx={{ height: 32, width: 32 }} />
|
||||||
|
</ListItemIcon>
|
||||||
|
|
||||||
|
<ListItemText
|
||||||
|
secondary={t('Download RoboSats {{coordinatorVersion}} APK from Github releases', {
|
||||||
|
coordinatorVersion: coordinatorVersion,
|
||||||
|
})}
|
||||||
|
primary={t('On Android RoboSats app ')}
|
||||||
|
/>
|
||||||
|
</ListItemButton>
|
||||||
|
|
||||||
|
<Divider />
|
||||||
|
|
||||||
|
<ListItemButton
|
||||||
|
component='a'
|
||||||
|
target='_blank'
|
||||||
|
href={`https://hub.docker.com/r/recksato/robosats-client`}
|
||||||
|
rel='noreferrer'
|
||||||
|
>
|
||||||
|
<ListItemIcon>
|
||||||
|
<UpcomingIcon color='primary' sx={{ height: 32, width: 32 }} />
|
||||||
|
</ListItemIcon>
|
||||||
|
|
||||||
|
<ListItemText
|
||||||
|
secondary={t("Check your node's store or update the Docker image yourself")}
|
||||||
|
primary={t('On your own soverign node')}
|
||||||
|
/>
|
||||||
|
</ListItemButton>
|
||||||
|
|
||||||
|
<Divider />
|
||||||
|
|
||||||
|
<ListItemButton component='a' onClick={() => location.reload(true)}>
|
||||||
|
<ListItemIcon>
|
||||||
|
<WebIcon color='primary' sx={{ height: 32, width: 32 }} />
|
||||||
|
</ListItemIcon>
|
||||||
|
|
||||||
|
<ListItemText
|
||||||
|
secondary={t(
|
||||||
|
'On Tor Browser client simply refresh your tab (click here or press Ctrl+Shift+R)',
|
||||||
|
)}
|
||||||
|
primary={t('On remotely served browser client')}
|
||||||
|
/>
|
||||||
|
</ListItemButton>
|
||||||
|
|
||||||
|
<DialogActions>
|
||||||
|
<Button onClick={handleClickClose}>{t('Go away!')}</Button>
|
||||||
|
</DialogActions>
|
||||||
|
</List>
|
||||||
|
</DialogContent>
|
||||||
|
</Dialog>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default UpdateClientDialog;
|
@ -8,3 +8,4 @@ export { default as ExchangeSummaryDialog } from './ExchangeSummary';
|
|||||||
export { default as ProfileDialog } from './Profile';
|
export { default as ProfileDialog } from './Profile';
|
||||||
export { default as StatsDialog } from './Stats';
|
export { default as StatsDialog } from './Stats';
|
||||||
export { default as EnableTelegramDialog } from './EnableTelegram';
|
export { default as EnableTelegramDialog } from './EnableTelegram';
|
||||||
|
export { default as UpdateClientDialog } from './UpdateClient';
|
||||||
|
25
frontend/src/utils/checkVer.ts
Normal file
25
frontend/src/utils/checkVer.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import packageJson from '../../package.json';
|
||||||
|
|
||||||
|
// Gets SemVer from backend /api/info and compares to local imported frontend version "localVer". Uses major,minor,patch.
|
||||||
|
// If minor of backend > minor of frontend, updateAvailable = true.
|
||||||
|
export const checkVer: (
|
||||||
|
major: number | null,
|
||||||
|
minor: number | null,
|
||||||
|
patch: number | null,
|
||||||
|
) => object = (major, minor, patch) => {
|
||||||
|
if (major === null || minor === null || patch === null) {
|
||||||
|
return { updateAvailable: null };
|
||||||
|
}
|
||||||
|
const semver = packageJson.version.split('.');
|
||||||
|
const updateAvailable = major > Number(semver[0]) || minor > Number(semver[1]);
|
||||||
|
const patchAvailable = !updateAvailable && patch > Number(semver[2]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
updateAvailable: updateAvailable,
|
||||||
|
patchAvailable: patchAvailable,
|
||||||
|
coordinatorVersion: `v${major}.${minor}.${patch}`,
|
||||||
|
clientVersion: `v${semver[0]}.${semver[1]}.${semver[2]}`,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export default checkVer;
|
@ -41,7 +41,8 @@
|
|||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-5.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-5.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||||
|
U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -50,7 +51,8 @@
|
|||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-6.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-6.woff2) format('woff2');
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||||
|
U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -59,7 +61,8 @@
|
|||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-7.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-7.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||||
|
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -104,7 +107,8 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-12.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-12.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||||
|
U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -113,7 +117,8 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-13.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-13.woff2) format('woff2');
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||||
|
U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -122,7 +127,8 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-14.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-14.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||||
|
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -167,7 +173,8 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-19.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-19.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||||
|
U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -176,7 +183,8 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-20.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-20.woff2) format('woff2');
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||||
|
U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -185,7 +193,8 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-21.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-21.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||||
|
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
||||||
/* cyrillic-ext */
|
/* cyrillic-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -230,7 +239,8 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-26.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-26.woff2) format('woff2');
|
||||||
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
|
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0,
|
||||||
|
U+1EA0-1EF9, U+20AB;
|
||||||
}
|
}
|
||||||
/* latin-ext */
|
/* latin-ext */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -239,7 +249,8 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-27.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-27.woff2) format('woff2');
|
||||||
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113,
|
||||||
|
U+2C60-2C7F, U+A720-A7FF;
|
||||||
}
|
}
|
||||||
/* latin */
|
/* latin */
|
||||||
@font-face {
|
@font-face {
|
||||||
@ -248,5 +259,6 @@
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
src: url(/static/css/fonts/roboto-28.woff2) format('woff2');
|
src: url(/static/css/fonts/roboto-28.woff2) format('woff2');
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
|
||||||
|
U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
||||||
}
|
}
|
@ -38,8 +38,12 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@keyframes spin {
|
@keyframes spin {
|
||||||
0% { transform: rotate(0deg); }
|
0% {
|
||||||
100% { transform: rotate(360deg); }
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
transform: rotate(360deg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.appCenter {
|
.appCenter {
|
||||||
@ -71,11 +75,10 @@ input::-webkit-inner-spin-button {
|
|||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
input[type=number] {
|
input[type='number'] {
|
||||||
-moz-appearance: textfield;
|
-moz-appearance: textfield;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.bottomBar {
|
.bottomBar {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
@ -136,27 +139,29 @@ input[type=number] {
|
|||||||
.phoneFlippedSmallAvatar:after {
|
.phoneFlippedSmallAvatar:after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0; left: 0; bottom: 0; right: 0;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: 2.4px solid #1976d2;
|
border: 2.4px solid #1976d2;
|
||||||
box-shadow: inset 0px 0px 35px rgb(255, 255, 255);
|
box-shadow: inset 0px 0px 35px rgb(255, 255, 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
.MuiButton-textInherit {color : '#111111';}
|
.MuiButton-textInherit {
|
||||||
|
color: '#111111';
|
||||||
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar
|
::-webkit-scrollbar {
|
||||||
{
|
|
||||||
width: 6px; /* for vertical scrollbars */
|
width: 6px; /* for vertical scrollbars */
|
||||||
height: 6px; /* for horizontal scrollbars */
|
height: 6px; /* for horizontal scrollbars */
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar-track
|
::-webkit-scrollbar-track {
|
||||||
{
|
|
||||||
background: rgba(0, 0, 0, 0.1);
|
background: rgba(0, 0, 0, 0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb
|
::-webkit-scrollbar-thumb {
|
||||||
{
|
|
||||||
background: rgba(0, 0, 0, 0.5);
|
background: rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
.loaderCenter {
|
.loaderCenter {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -11,14 +11,9 @@
|
|||||||
"color": "#FFFFFF",
|
"color": "#FFFFFF",
|
||||||
"mainnet_onion": "robomaxim......onion",
|
"mainnet_onion": "robomaxim......onion",
|
||||||
"testnet_onion": null,
|
"testnet_onion": null,
|
||||||
"mainnet_ln_nodes_pubkeys": [
|
"mainnet_ln_nodes_pubkeys": ["03e96as....", "02aaecc...."],
|
||||||
"03e96as....",
|
"testnet_ln_nodes_pubkeys": ["0284ff2...."],
|
||||||
"02aaecc...."
|
"logo_svg_200x200": "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"120\" height=\"120\"> <rect x=\"14\" y=\"23\" width=\"200\" height=\"50\" fill=\"lime\" stroke=\"black\" /> </svg>"
|
||||||
],
|
|
||||||
"testnet_ln_nodes_pubkeys": [
|
|
||||||
"0284ff2...."
|
|
||||||
],
|
|
||||||
"logo_svg_200x200": "<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.1\" width=\"120\" height=\"120\"> <rect x=\"14\" y=\"23\" width=\"200\" height=\"50\" fill=\"lime\" stroke=\"black\" \/> <\/svg>"
|
|
||||||
},
|
},
|
||||||
"coordinator_2": {
|
"coordinator_2": {
|
||||||
"...": "..."
|
"...": "..."
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +0,0 @@
|
|||||||
/*!****************************************!*\
|
|
||||||
!*** ./node_modules/jsqr/dist/jsQR.js ***!
|
|
||||||
\****************************************/
|
|
||||||
|
|
||||||
/*!*************************************************************!*\
|
|
||||||
!*** ./node_modules/react-webcam-qr-scanner/dist/Worker.js ***!
|
|
||||||
\*************************************************************/
|
|
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@
|
|||||||
/*!****************************************!*\
|
|
||||||
!*** ./node_modules/jsqr/dist/jsQR.js ***!
|
|
||||||
\****************************************/
|
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "No podràs completar un intercanvi. Fes servir <1>Tor Browser</1> i vista el <3>Onion</3> site.",
|
"phone_unsafe_alert": "No podràs completar un intercanvi. Fes servir <1>Tor Browser</1> i vista el <3>Onion</3> site.",
|
||||||
"Hide": "Amagar",
|
"Hide": "Amagar",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Intercanvi LN P2P Fàcil y Privat",
|
"Simple and Private LN P2P Exchange": "Intercanvi LN P2P Fàcil y Privat",
|
||||||
"This is your trading avatar": "Aquest és el teu Robot de compravenda",
|
"This is your trading avatar": "Aquest és el teu Robot de compravenda",
|
||||||
@ -23,7 +22,6 @@
|
|||||||
"Let's go!": "Som-hi!",
|
"Let's go!": "Som-hi!",
|
||||||
"Save token and PGP credentials to file": "Guardar arxiu amb token y credencials PGP",
|
"Save token and PGP credentials to file": "Guardar arxiu amb token y credencials PGP",
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Ordre",
|
"Order": "Ordre",
|
||||||
"Customize": "Personalitzar",
|
"Customize": "Personalitzar",
|
||||||
@ -81,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "No tens un avatar robot",
|
"You do not have a robot avatar": "No tens un avatar robot",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Necessites generar un avatar robot abans de crear una ordre",
|
"You need to generate a robot avatar in order to become an order maker": "Necessites generar un avatar robot abans de crear una ordre",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Sense especificar",
|
"not specified": "Sense especificar",
|
||||||
"Instant SEPA": "SEPA Instantània",
|
"Instant SEPA": "SEPA Instantània",
|
||||||
@ -90,9 +87,6 @@
|
|||||||
"Cash F2F": "Efectiu en persona",
|
"Cash F2F": "Efectiu en persona",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Ven",
|
"Seller": "Ven",
|
||||||
"Buyer": "Compra",
|
"Buyer": "Compra",
|
||||||
@ -227,7 +221,6 @@
|
|||||||
"RoboSats in Reddit": "RoboSats a Reddit",
|
"RoboSats in Reddit": "RoboSats a Reddit",
|
||||||
"Current onchain payout fee": "Cost actual de rebre onchain",
|
"Current onchain payout fee": "Cost actual de rebre onchain",
|
||||||
|
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Order details page",
|
"ORDER PAGE - OrderPage.js": "Order details page",
|
||||||
"Order Box": "Ordre",
|
"Order Box": "Ordre",
|
||||||
"Contract": "Contracte",
|
"Contract": "Contracte",
|
||||||
@ -299,7 +292,6 @@
|
|||||||
"You are not allowed to see this order": "No tens permís per a veure aquesta ordre",
|
"You are not allowed to see this order": "No tens permís per a veure aquesta ordre",
|
||||||
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues": "Els Satoshis Robòtics del magatzem no t'han entès. Si us plau, omple un Bug Issue a Github https://github.com/reckless-satoshi/robosats/issues",
|
"The Robotic Satoshis working in the warehouse did not understand you. Please, fill a Bug Issue in Github https://github.com/reckless-satoshi/robosats/issues": "Els Satoshis Robòtics del magatzem no t'han entès. Si us plau, omple un Bug Issue a Github https://github.com/reckless-satoshi/robosats/issues",
|
||||||
|
|
||||||
|
|
||||||
"CHAT BOX - Chat.js": "Finestra del xat",
|
"CHAT BOX - Chat.js": "Finestra del xat",
|
||||||
"You": "Tu",
|
"You": "Tu",
|
||||||
"Peer": "Ell",
|
"Peer": "Ell",
|
||||||
@ -475,7 +467,6 @@
|
|||||||
"Completed in": "Completat en",
|
"Completed in": "Completat en",
|
||||||
"Contract exchange rate": "Taxa de canvi del contracte",
|
"Contract exchange rate": "Taxa de canvi del contracte",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Tancar",
|
"Close": "Tancar",
|
||||||
"What is RoboSats?": "Què és RoboSats?",
|
"What is RoboSats?": "Què és RoboSats?",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Nebudeš moct dokončit obchod. Použij <1>Tor Browser</1> a navšťiv <3>Onion</3> stránku.",
|
"phone_unsafe_alert": "Nebudeš moct dokončit obchod. Použij <1>Tor Browser</1> a navšťiv <3>Onion</3> stránku.",
|
||||||
"Hide": "Skrýt",
|
"Hide": "Skrýt",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Jednoduchá LN P2P burza",
|
"Simple and Private LN P2P Exchange": "Jednoduchá LN P2P burza",
|
||||||
"This is your trading avatar": "Toto je tvůj uživatelský avatar",
|
"This is your trading avatar": "Toto je tvůj uživatelský avatar",
|
||||||
@ -23,8 +22,6 @@
|
|||||||
"Let's go!": "Navštívit!",
|
"Let's go!": "Navštívit!",
|
||||||
"Save token and PGP credentials to file": "Uložit soubor s tokenem a PGP klíčem",
|
"Save token and PGP credentials to file": "Uložit soubor s tokenem a PGP klíčem",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Nabídka",
|
"Order": "Nabídka",
|
||||||
"Customize": "Přizpůsobit",
|
"Customize": "Přizpůsobit",
|
||||||
@ -82,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "Nemáš robota a avatar",
|
"You do not have a robot avatar": "Nemáš robota a avatar",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Aby si se mohl stát tvůrcem nabídky musíš si vygenerovat avatar a robota",
|
"You need to generate a robot avatar in order to become an order maker": "Aby si se mohl stát tvůrcem nabídky musíš si vygenerovat avatar a robota",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "nespecifikováno",
|
"not specified": "nespecifikováno",
|
||||||
"Instant SEPA": "Okamžitá SEPA",
|
"Instant SEPA": "Okamžitá SEPA",
|
||||||
@ -91,7 +87,6 @@
|
|||||||
"Cash F2F": "Hotovost v tváří v tvář",
|
"Cash F2F": "Hotovost v tváří v tvář",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Prodavající",
|
"Seller": "Prodavající",
|
||||||
"Buyer": "Kupující",
|
"Buyer": "Kupující",
|
||||||
@ -165,7 +160,6 @@
|
|||||||
"yes": "ano",
|
"yes": "ano",
|
||||||
"no": "ne",
|
"no": "ne",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Statistiky pro nerdy",
|
"Stats For Nerds": "Statistiky pro nerdy",
|
||||||
"LND version": "LND verze",
|
"LND version": "LND verze",
|
||||||
@ -329,7 +323,6 @@
|
|||||||
"Verified signature by {{nickname}}": "Ověřený podpis {{nickname}}",
|
"Verified signature by {{nickname}}": "Ověřený podpis {{nickname}}",
|
||||||
"Cannot verify signature of {{nickname}}": "Nelze ověřit podpis {{nickname}}",
|
"Cannot verify signature of {{nickname}}": "Nelze ověřit podpis {{nickname}}",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Průvodce obchodem",
|
"Contract Box": "Průvodce obchodem",
|
||||||
"Robots show commitment to their peers": "Roboti dávají najevo oddanost svým společníkum",
|
"Robots show commitment to their peers": "Roboti dávají najevo oddanost svým společníkum",
|
||||||
@ -472,7 +465,6 @@
|
|||||||
"{{routingFeeSats}} MiliSats": "{{routingFeeSats}} MiliSatů",
|
"{{routingFeeSats}} MiliSats": "{{routingFeeSats}} MiliSatů",
|
||||||
"Platform covered routing fee": "Poplatek za routing hrazený platformou",
|
"Platform covered routing fee": "Poplatek za routing hrazený platformou",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Zavřít",
|
"Close": "Zavřít",
|
||||||
"What is RoboSats?": "Co je RoboSats?",
|
"What is RoboSats?": "Co je RoboSats?",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Du wirst nicht in der Lage sein, einen Handel abzuschließen. Benutze <1>Tor Browser</1> und besuche die <3>Onion</3> Seite.",
|
"phone_unsafe_alert": "Du wirst nicht in der Lage sein, einen Handel abzuschließen. Benutze <1>Tor Browser</1> und besuche die <3>Onion</3> Seite.",
|
||||||
"Hide": "Ausblenden",
|
"Hide": "Ausblenden",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Einfache und private LN P2P-Börse",
|
"Simple and Private LN P2P Exchange": "Einfache und private LN P2P-Börse",
|
||||||
"This is your trading avatar": "Dies ist dein Handelsavatar",
|
"This is your trading avatar": "Dies ist dein Handelsavatar",
|
||||||
@ -23,8 +22,6 @@
|
|||||||
"Let's go!": "Los gehts!",
|
"Let's go!": "Los gehts!",
|
||||||
"Save token and PGP credentials to file": "Token und PGP-Anmeldeinformationen in einer Datei speichern",
|
"Save token and PGP credentials to file": "Token und PGP-Anmeldeinformationen in einer Datei speichern",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "Dies ist die Seite, auf der Benutzer neue Angebote erstellen können",
|
"MAKER PAGE - MakerPage.js": "Dies ist die Seite, auf der Benutzer neue Angebote erstellen können",
|
||||||
"Order": "Order",
|
"Order": "Order",
|
||||||
"Customize": "Anpassen",
|
"Customize": "Anpassen",
|
||||||
@ -82,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "Du hast keinen Roboter-Avatar",
|
"You do not have a robot avatar": "Du hast keinen Roboter-Avatar",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Du musst einen Roboter-Avatar erstellen, um ein Maker zu werden.",
|
"You need to generate a robot avatar in order to become an order maker": "Du musst einen Roboter-Avatar erstellen, um ein Maker zu werden.",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Nicht definiert",
|
"not specified": "Nicht definiert",
|
||||||
"Instant SEPA": "Instant SEPA",
|
"Instant SEPA": "Instant SEPA",
|
||||||
@ -91,7 +87,6 @@
|
|||||||
"Cash F2F": "Cash F2F",
|
"Cash F2F": "Cash F2F",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Verkäufer",
|
"Seller": "Verkäufer",
|
||||||
"Buyer": "Käufer",
|
"Buyer": "Käufer",
|
||||||
@ -120,7 +115,6 @@
|
|||||||
"Filter has no results": "Filter hat keine Ergebnisse",
|
"Filter has no results": "Filter hat keine Ergebnisse",
|
||||||
"Be the first one to create an order": "Sei der Erste, der ein Angebot erstellt",
|
"Be the first one to create an order": "Sei der Erste, der ein Angebot erstellt",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Statistiken für Nerds",
|
"Stats For Nerds": "Statistiken für Nerds",
|
||||||
"LND version": "LND-Version",
|
"LND version": "LND-Version",
|
||||||
@ -180,7 +174,6 @@
|
|||||||
"Inactive order": "Inaktive Order",
|
"Inactive order": "Inaktive Order",
|
||||||
"You do not have previous orders": "Du hast keine vorherige Order",
|
"You do not have previous orders": "Du hast keine vorherige Order",
|
||||||
|
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Order details page",
|
"ORDER PAGE - OrderPage.js": "Order details page",
|
||||||
"Order Box": "Angebots-Box",
|
"Order Box": "Angebots-Box",
|
||||||
"Contract": "Vertrag",
|
"Contract": "Vertrag",
|
||||||
@ -280,7 +273,6 @@
|
|||||||
"Save messages as a JSON file": "Nachrichten als JSON-Datei speichern",
|
"Save messages as a JSON file": "Nachrichten als JSON-Datei speichern",
|
||||||
"Messages": "Nachrichten",
|
"Messages": "Nachrichten",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Vertrags-Box",
|
"Contract Box": "Vertrags-Box",
|
||||||
"Robots show commitment to their peers": "Roboter verpflichten sich ihren Gegenübern",
|
"Robots show commitment to their peers": "Roboter verpflichten sich ihren Gegenübern",
|
||||||
@ -387,7 +379,6 @@
|
|||||||
"Does not look like a valid lightning invoice": "Sieht nicht nach einer gültigen Lightning-Invoice aus",
|
"Does not look like a valid lightning invoice": "Sieht nicht nach einer gültigen Lightning-Invoice aus",
|
||||||
"The invoice provided has already expired": "Die angegebene Invoice ist bereits abgelaufen",
|
"The invoice provided has already expired": "Die angegebene Invoice ist bereits abgelaufen",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Schließen",
|
"Close": "Schließen",
|
||||||
"What is RoboSats?": "Was ist RoboSats?",
|
"What is RoboSats?": "Was ist RoboSats?",
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
"You are self-hosting RoboSats": "You are self-hosting RoboSats",
|
"You are self-hosting RoboSats": "You are self-hosting RoboSats",
|
||||||
"RoboSats client is served from your own node granting you the strongest security and privacy.": "RoboSats client is served from your own node granting you the strongest security and privacy.",
|
"RoboSats client is served from your own node granting you the strongest security and privacy.": "RoboSats client is served from your own node granting you the strongest security and privacy.",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
|
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
|
||||||
"This is your trading avatar": "This is your trading avatar",
|
"This is your trading avatar": "This is your trading avatar",
|
||||||
@ -25,8 +24,6 @@
|
|||||||
"Let's go!": "Let's go!",
|
"Let's go!": "Let's go!",
|
||||||
"Save token and PGP credentials to file": "Save token and PGP credentials to file",
|
"Save token and PGP credentials to file": "Save token and PGP credentials to file",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Order",
|
"Order": "Order",
|
||||||
"Customize": "Customize",
|
"Customize": "Customize",
|
||||||
@ -84,7 +81,6 @@
|
|||||||
"You do not have a robot avatar": "You do not have a robot avatar",
|
"You do not have a robot avatar": "You do not have a robot avatar",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "You need to generate a robot avatar in order to become an order maker",
|
"You need to generate a robot avatar in order to become an order maker": "You need to generate a robot avatar in order to become an order maker",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Not specified",
|
"not specified": "Not specified",
|
||||||
"Instant SEPA": "Instant SEPA",
|
"Instant SEPA": "Instant SEPA",
|
||||||
@ -93,7 +89,6 @@
|
|||||||
"Cash F2F": "Cash F2F",
|
"Cash F2F": "Cash F2F",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Seller",
|
"Seller": "Seller",
|
||||||
"Buyer": "Buyer",
|
"Buyer": "Buyer",
|
||||||
@ -169,7 +164,6 @@
|
|||||||
"Depth chart": "Depth chart",
|
"Depth chart": "Depth chart",
|
||||||
"Chart": "Chart",
|
"Chart": "Chart",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Stats For Nerds",
|
"Stats For Nerds": "Stats For Nerds",
|
||||||
"LND version": "LND version",
|
"LND version": "LND version",
|
||||||
@ -233,6 +227,14 @@
|
|||||||
"Current onchain payout fee": "Current onchain payout fee",
|
"Current onchain payout fee": "Current onchain payout fee",
|
||||||
"Use stealth invoices": "Use stealth invoices",
|
"Use stealth invoices": "Use stealth invoices",
|
||||||
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.",
|
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.",
|
||||||
|
"Update your RoboSats client": "Update your RoboSats client",
|
||||||
|
"The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.": "The RoboSats coordinator is on version {{coordinatorVersion}}, but your client app is {{clientVersion}}. This version mismatch might lead to a bad user experience.",
|
||||||
|
"Download RoboSats {{coordinatorVersion}} APK from Github releases": "Download RoboSats {{coordinatorVersion}} APK from Github releases",
|
||||||
|
"On Android RoboSats app": "On Android RoboSats app",
|
||||||
|
"Check your node's store or update the Docker image yourself": "Check your node's store or update the Docker image yourself",
|
||||||
|
"On your own sovereign node": "On your own sovereign node",
|
||||||
|
"Simply refresh your Tor Browser tab (or press Ctrl+Shift+R)": "Simply refresh your Tor Browser tab (or press Ctrl+Shift+R)",
|
||||||
|
"On remotely served client via web": "On remotely served client via web",
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Order details page",
|
"ORDER PAGE - OrderPage.js": "Order details page",
|
||||||
"Order Box": "Order Box",
|
"Order Box": "Order Box",
|
||||||
@ -339,7 +341,6 @@
|
|||||||
"Verified signature by {{nickname}}": "Verified signature by {{nickname}}",
|
"Verified signature by {{nickname}}": "Verified signature by {{nickname}}",
|
||||||
"Cannot verify signature of {{nickname}}": "Cannot verify signature of {{nickname}}",
|
"Cannot verify signature of {{nickname}}": "Cannot verify signature of {{nickname}}",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Contract Box",
|
"Contract Box": "Contract Box",
|
||||||
"Robots show commitment to their peers": "Robots show commitment to their peers",
|
"Robots show commitment to their peers": "Robots show commitment to their peers",
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
"You are self-hosting RoboSats": "Estás hosteando RoboSats",
|
"You are self-hosting RoboSats": "Estás hosteando RoboSats",
|
||||||
"RoboSats client is served from your own node granting you the strongest security and privacy.": "El cliente RoboSats es servido por tu propio nodo, gozas de la mayor seguridad y privacidad.",
|
"RoboSats client is served from your own node granting you the strongest security and privacy.": "El cliente RoboSats es servido por tu propio nodo, gozas de la mayor seguridad y privacidad.",
|
||||||
|
|
||||||
|
|
||||||
"UserGenPage": "User Generation Page and Landing Page",
|
"UserGenPage": "User Generation Page and Landing Page",
|
||||||
"Simple and Private LN P2P Exchange": "Intercambio LN P2P Fácil y Privado",
|
"Simple and Private LN P2P Exchange": "Intercambio LN P2P Fácil y Privado",
|
||||||
"This is your trading avatar": "Este es tu Robot de compraventa",
|
"This is your trading avatar": "Este es tu Robot de compraventa",
|
||||||
@ -25,7 +24,6 @@
|
|||||||
"Let's go!": "¡Vamos!",
|
"Let's go!": "¡Vamos!",
|
||||||
"Save token and PGP credentials to file": "Guardar archivo con token y credenciales PGP",
|
"Save token and PGP credentials to file": "Guardar archivo con token y credenciales PGP",
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Orden",
|
"Order": "Orden",
|
||||||
"Customize": "Personalizar",
|
"Customize": "Personalizar",
|
||||||
@ -83,7 +81,6 @@
|
|||||||
"You do not have a robot avatar": "No tienes un avatar robot",
|
"You do not have a robot avatar": "No tienes un avatar robot",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Necesitas generar un avatar robot antes de crear una orden",
|
"You need to generate a robot avatar in order to become an order maker": "Necesitas generar un avatar robot antes de crear una orden",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Sin especificar",
|
"not specified": "Sin especificar",
|
||||||
"Instant SEPA": "SEPA Instantánea",
|
"Instant SEPA": "SEPA Instantánea",
|
||||||
@ -94,7 +91,6 @@
|
|||||||
"Cash F2F": "Efectivo en persona",
|
"Cash F2F": "Efectivo en persona",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Vende",
|
"Seller": "Vende",
|
||||||
"Buyer": "Compra",
|
"Buyer": "Compra",
|
||||||
@ -233,7 +229,6 @@
|
|||||||
"Use stealth invoices": "Facturas sigilosas",
|
"Use stealth invoices": "Facturas sigilosas",
|
||||||
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Las facturas sigilosas no contienen información sobre tu orden excepto una referencia a la misma. Activalas para no desvelar información a tu proveedor de wallet custodial.",
|
"Stealth lightning invoices do not contain details about the trade except an order reference. Enable this setting if you don't want to disclose details to a custodial lightning wallet.": "Las facturas sigilosas no contienen información sobre tu orden excepto una referencia a la misma. Activalas para no desvelar información a tu proveedor de wallet custodial.",
|
||||||
|
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Order details page",
|
"ORDER PAGE - OrderPage.js": "Order details page",
|
||||||
"Order Box": "Orden",
|
"Order Box": "Orden",
|
||||||
"Contract": "Contrato",
|
"Contract": "Contrato",
|
||||||
@ -483,7 +478,6 @@
|
|||||||
"Completed in": "Completado en",
|
"Completed in": "Completado en",
|
||||||
"Contract exchange rate": "Tasa de cambio del contrato",
|
"Contract exchange rate": "Tasa de cambio del contrato",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Cerrar",
|
"Close": "Cerrar",
|
||||||
"What is RoboSats?": "¿Qué es RoboSats?",
|
"What is RoboSats?": "¿Qué es RoboSats?",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Ezingo duzu trukea osatu. Erabili <1>Tor Browser</1> eta bisitatu <3>Onion</3> gunea.",
|
"phone_unsafe_alert": "Ezingo duzu trukea osatu. Erabili <1>Tor Browser</1> eta bisitatu <3>Onion</3> gunea.",
|
||||||
"Hide": "Ezkutatu",
|
"Hide": "Ezkutatu",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "LN P2P Exchange Sinple eta Pribatua",
|
"Simple and Private LN P2P Exchange": "LN P2P Exchange Sinple eta Pribatua",
|
||||||
"This is your trading avatar": "Hau da zure salerosketa Robota",
|
"This is your trading avatar": "Hau da zure salerosketa Robota",
|
||||||
@ -23,8 +22,6 @@
|
|||||||
"Let's go!": "Goazen!",
|
"Let's go!": "Goazen!",
|
||||||
"Save token and PGP credentials to file": "Gorde tokena eta PGP kredentzialak fitxategira",
|
"Save token and PGP credentials to file": "Gorde tokena eta PGP kredentzialak fitxategira",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Eskaera",
|
"Order": "Eskaera",
|
||||||
"Customize": "Pertsonalizatu",
|
"Customize": "Pertsonalizatu",
|
||||||
@ -82,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "Ez daukazu robot avatarrik",
|
"You do not have a robot avatar": "Ez daukazu robot avatarrik",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Robot avatar bat sortu behar duzu eskaera bat egin ahal izateko",
|
"You need to generate a robot avatar in order to become an order maker": "Robot avatar bat sortu behar duzu eskaera bat egin ahal izateko",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Zehaztu gabea",
|
"not specified": "Zehaztu gabea",
|
||||||
"Instant SEPA": "Bat-bateko SEPA",
|
"Instant SEPA": "Bat-bateko SEPA",
|
||||||
@ -91,7 +87,6 @@
|
|||||||
"Cash F2F": "Eskudirua aurrez-aurre",
|
"Cash F2F": "Eskudirua aurrez-aurre",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Saltzaile",
|
"Seller": "Saltzaile",
|
||||||
"Buyer": "Erosle",
|
"Buyer": "Erosle",
|
||||||
@ -120,7 +115,6 @@
|
|||||||
"Filter has no results": "Iragazkiak ez du emaitzarik",
|
"Filter has no results": "Iragazkiak ez du emaitzarik",
|
||||||
"Be the first one to create an order": "Lehena izan eskaera bat sortzen",
|
"Be the first one to create an order": "Lehena izan eskaera bat sortzen",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Nerdentzako estatistikak",
|
"Stats For Nerds": "Nerdentzako estatistikak",
|
||||||
"LND version": "LND bersioa",
|
"LND version": "LND bersioa",
|
||||||
@ -284,7 +278,6 @@
|
|||||||
"Verified signature by {{nickname}}": "{{nickname}}ren egiaztatutako sinadura",
|
"Verified signature by {{nickname}}": "{{nickname}}ren egiaztatutako sinadura",
|
||||||
"Cannot verify signature of {{nickname}}": "Ezin izan da {{nickname}}ren sinadura egiaztatu",
|
"Cannot verify signature of {{nickname}}": "Ezin izan da {{nickname}}ren sinadura egiaztatu",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Kontratua",
|
"Contract Box": "Kontratua",
|
||||||
"Robots show commitment to their peers": "Robotek beren pareekiko konpromezua erakusten dute",
|
"Robots show commitment to their peers": "Robotek beren pareekiko konpromezua erakusten dute",
|
||||||
@ -405,7 +398,6 @@
|
|||||||
"Lightning": "Lightning",
|
"Lightning": "Lightning",
|
||||||
"Onchain": "Onchain",
|
"Onchain": "Onchain",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Itxi",
|
"Close": "Itxi",
|
||||||
"What is RoboSats?": "Zer da RoboSats?",
|
"What is RoboSats?": "Zer da RoboSats?",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Vous ne serez pas en mesure d'effectuer un échange. Utilisez <1>Tor Browser</1> et visitez le site <3>Onion</3>.",
|
"phone_unsafe_alert": "Vous ne serez pas en mesure d'effectuer un échange. Utilisez <1>Tor Browser</1> et visitez le site <3>Onion</3>.",
|
||||||
"Hide": "Cacher",
|
"Hide": "Cacher",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Echange LN P2P simple et privé",
|
"Simple and Private LN P2P Exchange": "Echange LN P2P simple et privé",
|
||||||
"This is your trading avatar": "Ceci est votre avatar d'échange",
|
"This is your trading avatar": "Ceci est votre avatar d'échange",
|
||||||
@ -19,7 +18,6 @@
|
|||||||
"Info": "Info",
|
"Info": "Info",
|
||||||
"View Book": "Voir livre",
|
"View Book": "Voir livre",
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Ordre",
|
"Order": "Ordre",
|
||||||
"Customize": "Personnaliser",
|
"Customize": "Personnaliser",
|
||||||
@ -65,7 +63,6 @@
|
|||||||
"Must be less than {{maxSats}": "Doit être moins que {{maxSats}}",
|
"Must be less than {{maxSats}": "Doit être moins que {{maxSats}}",
|
||||||
"Must be more than {{minSats}}": "Doit être plus que {{minSats}}",
|
"Must be more than {{minSats}}": "Doit être plus que {{minSats}}",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Non spécifié",
|
"not specified": "Non spécifié",
|
||||||
"Instant SEPA": "Instant SEPA",
|
"Instant SEPA": "Instant SEPA",
|
||||||
@ -74,7 +71,6 @@
|
|||||||
"Cash F2F": "En espèces face-à-face",
|
"Cash F2F": "En espèces face-à-face",
|
||||||
"On-Chain BTC": "BTC on-Chain",
|
"On-Chain BTC": "BTC on-Chain",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Vendeur",
|
"Seller": "Vendeur",
|
||||||
"Buyer": "Acheteur",
|
"Buyer": "Acheteur",
|
||||||
@ -102,7 +98,6 @@
|
|||||||
"No orders found to buy BTC for {{currencyCode}}": "Aucun ordre trouvé pour acheter des BTC pour {{currencyCode}}",
|
"No orders found to buy BTC for {{currencyCode}}": "Aucun ordre trouvé pour acheter des BTC pour {{currencyCode}}",
|
||||||
"Be the first one to create an order": "Soyez le premier à créer un ordre",
|
"Be the first one to create an order": "Soyez le premier à créer un ordre",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Stats pour des geeks",
|
"Stats For Nerds": "Stats pour des geeks",
|
||||||
"LND version": "Version",
|
"LND version": "Version",
|
||||||
@ -159,7 +154,6 @@
|
|||||||
"Number of public BUY orders": "Nombre d'ordres d'ACHAT publics",
|
"Number of public BUY orders": "Nombre d'ordres d'ACHAT publics",
|
||||||
"Number of public SELL orders": "Nombre d'ordres de VENTE publics",
|
"Number of public SELL orders": "Nombre d'ordres de VENTE publics",
|
||||||
|
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Order details page",
|
"ORDER PAGE - OrderPage.js": "Order details page",
|
||||||
"Order Box": "Ordres",
|
"Order Box": "Ordres",
|
||||||
"Contract": "Contrat",
|
"Contract": "Contrat",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Non sarai in grado di completare un'operazione. Usa <1>Tor Browser</1> e visita il sito <3>Onion</3>",
|
"phone_unsafe_alert": "Non sarai in grado di completare un'operazione. Usa <1>Tor Browser</1> e visita il sito <3>Onion</3>",
|
||||||
"Hide": "Nascondi",
|
"Hide": "Nascondi",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Semplice e privata borsa di scambio LN P2P",
|
"Simple and Private LN P2P Exchange": "Semplice e privata borsa di scambio LN P2P",
|
||||||
"This is your trading avatar": "Questo è il tuo Robottino",
|
"This is your trading avatar": "Questo è il tuo Robottino",
|
||||||
@ -23,8 +22,6 @@
|
|||||||
"Let's go!": "Andiamo!",
|
"Let's go!": "Andiamo!",
|
||||||
"Save token and PGP credentials to file": "Salva il gettone e le credenziali PGP in un file",
|
"Save token and PGP credentials to file": "Salva il gettone e le credenziali PGP in un file",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Ordina",
|
"Order": "Ordina",
|
||||||
"Customize": "Personalizza",
|
"Customize": "Personalizza",
|
||||||
@ -82,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "Non hai un Robottino",
|
"You do not have a robot avatar": "Non hai un Robottino",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Devi generare un Robottino prima di impostare un ordine",
|
"You need to generate a robot avatar in order to become an order maker": "Devi generare un Robottino prima di impostare un ordine",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Non specificato",
|
"not specified": "Non specificato",
|
||||||
"Instant SEPA": "SEPA istantaneo",
|
"Instant SEPA": "SEPA istantaneo",
|
||||||
@ -91,7 +87,6 @@
|
|||||||
"Cash F2F": "Contante, faccia-a-faccia",
|
"Cash F2F": "Contante, faccia-a-faccia",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Offerente",
|
"Seller": "Offerente",
|
||||||
"Buyer": "Acquirente",
|
"Buyer": "Acquirente",
|
||||||
@ -120,7 +115,6 @@
|
|||||||
"Filter has no results": "Il filtro corrente non ha risultati",
|
"Filter has no results": "Il filtro corrente non ha risultati",
|
||||||
"Be the first one to create an order": "Crea tu il primo ordine",
|
"Be the first one to create an order": "Crea tu il primo ordine",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Statistiche per secchioni",
|
"Stats For Nerds": "Statistiche per secchioni",
|
||||||
"LND version": "Versione LND",
|
"LND version": "Versione LND",
|
||||||
@ -284,7 +278,6 @@
|
|||||||
"Verified signature by {{nickname}}": "Verifica la firma di {{nickname}}",
|
"Verified signature by {{nickname}}": "Verifica la firma di {{nickname}}",
|
||||||
"Cannot verify signature of {{nickname}}": "Non è possibile verificare la firma di {{nickname}}",
|
"Cannot verify signature of {{nickname}}": "Non è possibile verificare la firma di {{nickname}}",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Contratto",
|
"Contract Box": "Contratto",
|
||||||
"Robots show commitment to their peers": "I Robottini dimostrano dedizione verso i loro pari",
|
"Robots show commitment to their peers": "I Robottini dimostrano dedizione verso i loro pari",
|
||||||
@ -392,7 +385,6 @@
|
|||||||
"The invoice provided has already expired": "La fattura inviata è già scaduta",
|
"The invoice provided has already expired": "La fattura inviata è già scaduta",
|
||||||
"Make sure to EXPORT the chat log. The staff might request your exported chat log JSON in order to solve discrepancies. It is your responsibility to store it.": "Assicurati di esportare il log della chat. Lo staff potrebbe richiedere il file JSON di log della chat esportato per risolvere eventuali dispute. È tua responsabilità conservarlo.",
|
"Make sure to EXPORT the chat log. The staff might request your exported chat log JSON in order to solve discrepancies. It is your responsibility to store it.": "Assicurati di esportare il log della chat. Lo staff potrebbe richiedere il file JSON di log della chat esportato per risolvere eventuali dispute. È tua responsabilità conservarlo.",
|
||||||
|
|
||||||
|
|
||||||
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
"INFO DIALOG - InfoDiagog.js": "App information and clarifications and terms of use",
|
||||||
"Close": "Chiudi",
|
"Close": "Chiudi",
|
||||||
"What is RoboSats?": "Cos'è RoboSats?",
|
"What is RoboSats?": "Cos'è RoboSats?",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "Nie będziesz w stanie sfinalizować transakcji. Użyj <1>Tor Browser</1> i odwiedź witrynę <3>Onion</3>.",
|
"phone_unsafe_alert": "Nie będziesz w stanie sfinalizować transakcji. Użyj <1>Tor Browser</1> i odwiedź witrynę <3>Onion</3>.",
|
||||||
"Hide": "Ukryć",
|
"Hide": "Ukryć",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Łatwa i prywatna wymiana P2P LN",
|
"Simple and Private LN P2P Exchange": "Łatwa i prywatna wymiana P2P LN",
|
||||||
"This is your trading avatar": "To jest twój awatar handlowy",
|
"This is your trading avatar": "To jest twój awatar handlowy",
|
||||||
@ -19,7 +18,6 @@
|
|||||||
"Info": "Info",
|
"Info": "Info",
|
||||||
"View Book": "Zobacz książkę",
|
"View Book": "Zobacz książkę",
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "To jest strona, na której użytkownicy mogą tworzyć nowe zamówienia",
|
"MAKER PAGE - MakerPage.js": "To jest strona, na której użytkownicy mogą tworzyć nowe zamówienia",
|
||||||
"Order": "Zamówienie",
|
"Order": "Zamówienie",
|
||||||
"Customize": "Dostosuj",
|
"Customize": "Dostosuj",
|
||||||
@ -65,7 +63,6 @@
|
|||||||
"Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}",
|
"Must be less than {{maxSats}": "To musi być mniej niż {{maxSats}}",
|
||||||
"Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}",
|
"Must be more than {{minSats}}": "To musi być więcej niż {{minSats}}",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Ciągi metod płatności",
|
"PAYMENT METHODS - autocompletePayments.js": "Ciągi metod płatności",
|
||||||
"not specified": "Nieokreślony",
|
"not specified": "Nieokreślony",
|
||||||
"Instant SEPA": "Natychmiastowe SEPA",
|
"Instant SEPA": "Natychmiastowe SEPA",
|
||||||
@ -74,7 +71,6 @@
|
|||||||
"Cash F2F": "Cash F2F",
|
"Cash F2F": "Cash F2F",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "Strona Zamówienia książki",
|
"BOOK PAGE - BookPage.js": "Strona Zamówienia książki",
|
||||||
"Seller": "Sprzedawca",
|
"Seller": "Sprzedawca",
|
||||||
"Buyer": "Kupujący",
|
"Buyer": "Kupujący",
|
||||||
@ -102,7 +98,6 @@
|
|||||||
"No orders found to buy BTC for {{currencyCode}}": "Nie znaleziono zamówień na zakup BTC za {{currencyCode}}",
|
"No orders found to buy BTC for {{currencyCode}}": "Nie znaleziono zamówień na zakup BTC za {{currencyCode}}",
|
||||||
"Be the first one to create an order": "Bądź pierwszą osobą, która utworzy zamówienie",
|
"Be the first one to create an order": "Bądź pierwszą osobą, która utworzy zamówienie",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Profil użytkownika paska dolnego i różne okna dialogowe",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Profil użytkownika paska dolnego i różne okna dialogowe",
|
||||||
"Stats For Nerds": "Statystyki dla nerdów",
|
"Stats For Nerds": "Statystyki dla nerdów",
|
||||||
"LND version": "LND wersja",
|
"LND version": "LND wersja",
|
||||||
@ -159,7 +154,6 @@
|
|||||||
"Number of public BUY orders": "Liczba publicznych zamówień BUY",
|
"Number of public BUY orders": "Liczba publicznych zamówień BUY",
|
||||||
"Number of public SELL orders": "Liczba publicznych zleceń SPRZEDAŻY",
|
"Number of public SELL orders": "Liczba publicznych zleceń SPRZEDAŻY",
|
||||||
|
|
||||||
|
|
||||||
"ORDER PAGE - OrderPage.js": "Strona szczegółów zamówienia",
|
"ORDER PAGE - OrderPage.js": "Strona szczegółów zamówienia",
|
||||||
"Order Box": "Pole zamówienia",
|
"Order Box": "Pole zamówienia",
|
||||||
"Contract": "Kontrakt",
|
"Contract": "Kontrakt",
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
"phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
|
"phone_unsafe_alert": "У Вас не будет возможности завершить сделку. Используйте <1>Tor Browser</1> и посетите <3>Onion</3> сайт.",
|
||||||
"Hide": "Скрыть",
|
"Hide": "Скрыть",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Простой и Конфиденциальный LN P2P Обмен",
|
"Simple and Private LN P2P Exchange": "Простой и Конфиденциальный LN P2P Обмен",
|
||||||
"This is your trading avatar": "Это Ваш торговый аватар",
|
"This is your trading avatar": "Это Ваш торговый аватар",
|
||||||
@ -23,8 +22,6 @@
|
|||||||
"Let's go!": "Поехали!",
|
"Let's go!": "Поехали!",
|
||||||
"Save token and PGP credentials to file": "Сохранить токен и учетные данные PGP в файл",
|
"Save token and PGP credentials to file": "Сохранить токен и учетные данные PGP в файл",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "Ордер",
|
"Order": "Ордер",
|
||||||
"Customize": "Настроить",
|
"Customize": "Настроить",
|
||||||
@ -82,7 +79,6 @@
|
|||||||
"You do not have a robot avatar": "У Вас нет аватара робота",
|
"You do not have a robot avatar": "У Вас нет аватара робота",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "Вам нужно сгенерировать аватар робота, чтобы стать мейкером ордеров",
|
"You need to generate a robot avatar in order to become an order maker": "Вам нужно сгенерировать аватар робота, чтобы стать мейкером ордеров",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "Не указано",
|
"not specified": "Не указано",
|
||||||
"Instant SEPA": "Мгновенный SEPA",
|
"Instant SEPA": "Мгновенный SEPA",
|
||||||
@ -91,7 +87,6 @@
|
|||||||
"Cash F2F": "Наличные F2F",
|
"Cash F2F": "Наличные F2F",
|
||||||
"On-Chain BTC": "Ончейн BTC",
|
"On-Chain BTC": "Ончейн BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "Продавец",
|
"Seller": "Продавец",
|
||||||
"Buyer": "Покупатель",
|
"Buyer": "Покупатель",
|
||||||
@ -167,7 +162,6 @@
|
|||||||
"Depth chart": "Схемами глубин",
|
"Depth chart": "Схемами глубин",
|
||||||
"Chart": "Схемами",
|
"Chart": "Схемами",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "Cтатистика для умников",
|
"Stats For Nerds": "Cтатистика для умников",
|
||||||
"LND version": "LND версия",
|
"LND version": "LND версия",
|
||||||
@ -337,7 +331,6 @@
|
|||||||
"Verified signature by {{nickname}}": "Проверенная подпись пользователя {{nickname}}",
|
"Verified signature by {{nickname}}": "Проверенная подпись пользователя {{nickname}}",
|
||||||
"Cannot verify signature of {{nickname}}": "Не удается проверить подпись {{nickname}}",
|
"Cannot verify signature of {{nickname}}": "Не удается проверить подпись {{nickname}}",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Окно контракта",
|
"Contract Box": "Окно контракта",
|
||||||
"Robots show commitment to their peers": "Роботы демонстрируют приверженность к своим пирам",
|
"Robots show commitment to their peers": "Роботы демонстрируют приверженность к своим пирам",
|
||||||
|
@ -7,7 +7,6 @@
|
|||||||
"You are self-hosting RoboSats": "คูณกำลัง host RoboSats เอง",
|
"You are self-hosting RoboSats": "คูณกำลัง host RoboSats เอง",
|
||||||
"RoboSats is served from your own node granting you the strongest security and privacy.": "คุณกำลังใช้งาน RoboSats บน node ของคุณ ทำให้คุณได้รับความปลอดภัยและความเป็นส่วนตัวมากขึ้น",
|
"RoboSats is served from your own node granting you the strongest security and privacy.": "คุณกำลังใช้งาน RoboSats บน node ของคุณ ทำให้คุณได้รับความปลอดภัยและความเป็นส่วนตัวมากขึ้น",
|
||||||
|
|
||||||
|
|
||||||
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
"USER GENERATION PAGE - UserGenPage.js": "Landing Page and User Generation",
|
||||||
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
|
"Simple and Private LN P2P Exchange": "Simple and Private LN P2P Exchange",
|
||||||
"This is your trading avatar": "โรบอทสำหรับซื้อขาย",
|
"This is your trading avatar": "โรบอทสำหรับซื้อขาย",
|
||||||
@ -25,8 +24,6 @@
|
|||||||
"Let's go!": "ไปกันเถอะ!",
|
"Let's go!": "ไปกันเถอะ!",
|
||||||
"Save token and PGP credentials to file": "บันทึก token และการรับรอง PGP ไปที่ไฟล์",
|
"Save token and PGP credentials to file": "บันทึก token และการรับรอง PGP ไปที่ไฟล์",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
"MAKER PAGE - MakerPage.js": "This is the page where users can create new orders",
|
||||||
"Order": "รายการซื้อขาย",
|
"Order": "รายการซื้อขาย",
|
||||||
"Customize": "ปรับแต่ง",
|
"Customize": "ปรับแต่ง",
|
||||||
@ -84,7 +81,6 @@
|
|||||||
"You do not have a robot avatar": "คุณไม่มีโรบอท",
|
"You do not have a robot avatar": "คุณไม่มีโรบอท",
|
||||||
"You need to generate a robot avatar in order to become an order maker": "คุณต้องมีโรบอทก่อนจึงจะสามารถสร้างรายการซื้อขายได้",
|
"You need to generate a robot avatar in order to become an order maker": "คุณต้องมีโรบอทก่อนจึงจะสามารถสร้างรายการซื้อขายได้",
|
||||||
|
|
||||||
|
|
||||||
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
"PAYMENT METHODS - autocompletePayments.js": "Payment method strings",
|
||||||
"not specified": "ไม่ระบุ",
|
"not specified": "ไม่ระบุ",
|
||||||
"Instant SEPA": "Instant SEPA",
|
"Instant SEPA": "Instant SEPA",
|
||||||
@ -93,7 +89,6 @@
|
|||||||
"Cash F2F": "เงินสด (นัดพบ)",
|
"Cash F2F": "เงินสด (นัดพบ)",
|
||||||
"On-Chain BTC": "On-Chain BTC",
|
"On-Chain BTC": "On-Chain BTC",
|
||||||
|
|
||||||
|
|
||||||
"BOOK PAGE - BookPage.js": "The Book Order page",
|
"BOOK PAGE - BookPage.js": "The Book Order page",
|
||||||
"Seller": "ผู้ขาย",
|
"Seller": "ผู้ขาย",
|
||||||
"Buyer": "ผู้ซื้อ",
|
"Buyer": "ผู้ซื้อ",
|
||||||
@ -167,7 +162,6 @@
|
|||||||
"yes": "ใช่",
|
"yes": "ใช่",
|
||||||
"no": "ไม่ใช่",
|
"no": "ไม่ใช่",
|
||||||
|
|
||||||
|
|
||||||
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
"BOTTOM BAR AND MISC - BottomBar.js": "Bottom Bar user profile and miscellaneous dialogs",
|
||||||
"Stats For Nerds": "สถิติสำหรับผู้สนใจ",
|
"Stats For Nerds": "สถิติสำหรับผู้สนใจ",
|
||||||
"LND version": "LND version",
|
"LND version": "LND version",
|
||||||
@ -333,7 +327,6 @@
|
|||||||
"Verified signature by {{nickname}}": "ลายเซ็นต์ที่ถูกตรวจสอบแล้วโดย {{nickname}}",
|
"Verified signature by {{nickname}}": "ลายเซ็นต์ที่ถูกตรวจสอบแล้วโดย {{nickname}}",
|
||||||
"Cannot verify signature of {{nickname}}": "ไม่สามารถตรวจสอบลายเซ็นต์ของ {{nickname}}",
|
"Cannot verify signature of {{nickname}}": "ไม่สามารถตรวจสอบลายเซ็นต์ของ {{nickname}}",
|
||||||
|
|
||||||
|
|
||||||
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
"CONTRACT BOX - TradeBox.js": "The Contract Box that guides users trough the whole trade pipeline",
|
||||||
"Contract Box": "Contract Box",
|
"Contract Box": "Contract Box",
|
||||||
"Robots show commitment to their peers": "โรบอทต้องแสดงความรับผิดชอบต่อคู่ค้าของตน",
|
"Robots show commitment to their peers": "โรบอทต้องแสดงความรับผิดชอบต่อคู่ค้าของตน",
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx"
|
||||||
},
|
},
|
||||||
"include": ["src"]
|
"include": ["src"]
|
||||||
}
|
}
|
||||||
|
@ -1,32 +1,28 @@
|
|||||||
import path from "path";
|
import path from 'path';
|
||||||
import { Configuration } from "webpack";
|
import { Configuration } from 'webpack';
|
||||||
|
|
||||||
const config: Configuration = {
|
const config: Configuration = {
|
||||||
entry: "./src/index.js",
|
entry: './src/index.js',
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.(ts|js)x?$/,
|
test: /\.(ts|js)x?$/,
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
use: {
|
use: {
|
||||||
loader: "babel-loader",
|
loader: 'babel-loader',
|
||||||
options: {
|
options: {
|
||||||
presets: [
|
presets: ['@babel/preset-env', '@babel/preset-react', '@babel/preset-typescript'],
|
||||||
"@babel/preset-env",
|
|
||||||
"@babel/preset-react",
|
|
||||||
"@babel/preset-typescript",
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
extensions: [".tsx", ".ts", ".jsx", ".js"],
|
extensions: ['.tsx', '.ts', '.jsx', '.js'],
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
path: path.resolve(__dirname, "static/frontend"),
|
path: path.resolve(__dirname, 'static/frontend'),
|
||||||
filename: "main.js",
|
filename: 'main.js',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
5
version.json
Normal file
5
version.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"major":0,
|
||||||
|
"minor":2,
|
||||||
|
"patch":0
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user