From 6ec318cf7c28db25b1effcfb8ab5fabef6233a07 Mon Sep 17 00:00:00 2001 From: Ross Goldberg Date: Wed, 21 Nov 2018 13:11:57 -0600 Subject: [PATCH 01/52] List Qbase (QBS) --- .../src/main/java/bisq/asset/coins/Qbase.java | 38 +++++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../test/java/bisq/asset/coins/QbaseTest.java | 28 ++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Qbase.java create mode 100644 assets/src/test/java/bisq/asset/coins/QbaseTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Qbase.java b/assets/src/main/java/bisq/asset/coins/Qbase.java new file mode 100644 index 0000000000..94d70f4304 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Qbase.java @@ -0,0 +1,38 @@ +package bisq.asset.coins; + +import bisq.asset.AddressValidationResult; +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class Qbase extends Coin { + public Qbase() { + super("Qbase", "QBS", new Qbase.QbaseAddressValidator()); + } + + + public static class QbaseAddressValidator extends Base58BitcoinAddressValidator { + + public QbaseAddressValidator() { + super(new Qbase.QbaseParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (!address.matches("^[B][a-km-zA-HJ-NP-Z1-9]{25,34}$")) + return AddressValidationResult.invalidStructure(); + + return super.validate(address); + } + } + + + public static class QbaseParams extends NetworkParametersAdapter { + + public QbaseParams() { + addressHeader = 25; + p2shHeader = 5; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index e99268b926..62fc42d4ec 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -61,6 +61,7 @@ bisq.asset.coins.Nimiq bisq.asset.coins.PIVX bisq.asset.coins.PRiVCY bisq.asset.coins.PZDC +bisq.asset.coins.Qbase bisq.asset.coins.QMCoin bisq.asset.coins.QRL bisq.asset.coins.Radium diff --git a/assets/src/test/java/bisq/asset/coins/QbaseTest.java b/assets/src/test/java/bisq/asset/coins/QbaseTest.java new file mode 100644 index 0000000000..31c43752af --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/QbaseTest.java @@ -0,0 +1,28 @@ +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class QbaseTest extends AbstractAssetTest { + public QbaseTest() { + super(new Qbase()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("BBrv1uUkQxpWayMvaVSw9Gr4X7CcdWUtcC"); + assertValidAddress("BNMFjkDk9qqcF2rtoAbqbqWiHa41GPkQ2G"); + assertValidAddress("B73WdFQXx8VGNg8h1BeJj6H2BEa1xrbtsT"); + assertValidAddress("BGq4DH2BnS4kFWuNNQqfmiDLZvjaWtvnWX"); + assertValidAddress("B9b8iTbVVcQrohrEnJ9ho4QUftHS3svB84"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("bBrv1uUkQxpWayMvaVSw9Gr4X7CcdWUtcC"); + assertInvalidAddress("B3rv1uUkQxpWayMvaVSw9Gr4X7CcdWUtcC"); + assertInvalidAddress("PXP75NnwDryYswQb9RaPFBchqLRSvBmDP"); + assertInvalidAddress("PKr3vQ7S"); + } +} From bcbb7db4a4b80ccd0e5935d7b9eb4617b00cda64 Mon Sep 17 00:00:00 2001 From: Jake Tarren Date: Thu, 29 Nov 2018 20:22:49 -0500 Subject: [PATCH 02/52] Update Horizen (ZEN) --- .../java/bisq/asset/coins/{ZenCash.java => Horizen.java} | 8 ++++---- .../src/main/resources/META-INF/services/bisq.asset.Asset | 2 +- .../asset/coins/{ZenCashTest.java => HorizenTest.java} | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) rename assets/src/main/java/bisq/asset/coins/{ZenCash.java => Horizen.java} (92%) rename assets/src/test/java/bisq/asset/coins/{ZenCashTest.java => HorizenTest.java} (92%) diff --git a/assets/src/main/java/bisq/asset/coins/ZenCash.java b/assets/src/main/java/bisq/asset/coins/Horizen.java similarity index 92% rename from assets/src/main/java/bisq/asset/coins/ZenCash.java rename to assets/src/main/java/bisq/asset/coins/Horizen.java index 1f588c2171..24e9fe24aa 100644 --- a/assets/src/main/java/bisq/asset/coins/ZenCash.java +++ b/assets/src/main/java/bisq/asset/coins/Horizen.java @@ -24,14 +24,14 @@ import bisq.asset.Coin; import org.bitcoinj.core.AddressFormatException; import org.bitcoinj.core.Base58; -public class ZenCash extends Coin { +public class Horizen extends Coin { - public ZenCash() { - super("ZenCash", "ZEN", new ZenCashAddressValidator()); + public Horizen() { + super("Horizen", "ZEN", new HorizenAddressValidator()); } - public static class ZenCashAddressValidator implements AddressValidator { + public static class HorizenAddressValidator implements AddressValidator { @Override public AddressValidationResult validate(String address) { diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index 49af60cb4d..9079935b7c 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -26,6 +26,7 @@ bisq.asset.coins.Dragonglass bisq.asset.coins.Ether bisq.asset.coins.EtherClassic bisq.asset.coins.Gridcoin +bisq.asset.coins.Horizen bisq.asset.coins.Kekcoin bisq.asset.coins.Litecoin$Mainnet bisq.asset.coins.Litecoin$Regtest @@ -50,7 +51,6 @@ bisq.asset.coins.TurtleCoin bisq.asset.coins.Unobtanium bisq.asset.coins.Zcash bisq.asset.coins.Zcoin -bisq.asset.coins.ZenCash bisq.asset.coins.Zero bisq.asset.coins.ZeroOneCoin bisq.asset.tokens.EtherStone diff --git a/assets/src/test/java/bisq/asset/coins/ZenCashTest.java b/assets/src/test/java/bisq/asset/coins/HorizenTest.java similarity index 92% rename from assets/src/test/java/bisq/asset/coins/ZenCashTest.java rename to assets/src/test/java/bisq/asset/coins/HorizenTest.java index c25d8b7ac1..f79ae0e8cb 100644 --- a/assets/src/test/java/bisq/asset/coins/ZenCashTest.java +++ b/assets/src/test/java/bisq/asset/coins/HorizenTest.java @@ -21,10 +21,10 @@ import bisq.asset.AbstractAssetTest; import org.junit.Test; -public class ZenCashTest extends AbstractAssetTest { +public class HorizenTest extends AbstractAssetTest { - public ZenCashTest() { - super(new ZenCash()); + public HorizenTest() { + super(new Horizen()); } @Test From c1ee78196cf60a6b44522841013b5f7a650ba880 Mon Sep 17 00:00:00 2001 From: Astrych Date: Sun, 9 Dec 2018 01:01:04 +0100 Subject: [PATCH 03/52] List Pinkcoin (PINK) --- .../main/java/bisq/asset/coins/Pinkcoin.java | 39 +++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/PinkcoinTest.java | 43 +++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Pinkcoin.java create mode 100644 assets/src/test/java/bisq/asset/coins/PinkcoinTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Pinkcoin.java b/assets/src/main/java/bisq/asset/coins/Pinkcoin.java new file mode 100644 index 0000000000..b27bece164 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Pinkcoin.java @@ -0,0 +1,39 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class Pinkcoin extends Coin { + + public Pinkcoin() { + super("Pinkcoin", "PINK", new Base58BitcoinAddressValidator(new PinkcoinParams())); + } + + + public static class PinkcoinParams extends NetworkParametersAdapter { + + public PinkcoinParams() { + addressHeader = 3; + p2shHeader = 28; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index 49af60cb4d..b403c4aad4 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -37,6 +37,7 @@ bisq.asset.coins.MonetaryUnit bisq.asset.coins.MoX bisq.asset.coins.Namecoin bisq.asset.coins.Neos +bisq.asset.coins.Pinkcoin bisq.asset.coins.PIVX bisq.asset.coins.PZDC bisq.asset.coins.QMCoin diff --git a/assets/src/test/java/bisq/asset/coins/PinkcoinTest.java b/assets/src/test/java/bisq/asset/coins/PinkcoinTest.java new file mode 100644 index 0000000000..3d6ec9be67 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/PinkcoinTest.java @@ -0,0 +1,43 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class PinkcoinTest extends AbstractAssetTest { + + public PinkcoinTest() { + super(new Pinkcoin()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("2KZEgvipDn5EkDAFB8UR8nVXuKuKt8rmgH"); + assertValidAddress("2KVgwafcbw9LcJngqAzxu8UKpQSRwNhtTH"); + assertValidAddress("2TPDcXRRmvTxJQ4V8xNhP1KmrTmH9KKCkg"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("PPo1gCi4xoC87gZZsnU2Uj6vSgZAAD9com"); + assertInvalidAddress("z4Vg3S5pJEJY45tHX7u6X1r9tv2DEvCShi2"); + assertInvalidAddress("1dQT9U73rNmomYkkxQwcNYhfQr9yy4Ani"); + } +} From 46be816af72edcb1c67ede33875fe9184c35810b Mon Sep 17 00:00:00 2001 From: camthegeek Date: Mon, 10 Dec 2018 07:50:11 -0500 Subject: [PATCH 04/52] List Aeon (AEON) --- .../src/main/java/bisq/asset/coins/Aeon.java | 28 ++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../test/java/bisq/asset/coins/AeonTest.java | 44 +++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Aeon.java create mode 100644 assets/src/test/java/bisq/asset/coins/AeonTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Aeon.java b/assets/src/main/java/bisq/asset/coins/Aeon.java new file mode 100644 index 0000000000..a1ded133e6 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Aeon.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Coin; +import bisq.asset.CryptonoteAddressValidator; + +public class Aeon extends Coin { + + public Aeon() { + super("Aeon", "AEON", new CryptonoteAddressValidator("Wm", "Xn")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index d093cd01a2..9154b3e3ae 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -3,6 +3,7 @@ # See bisq.asset.Asset and bisq.asset.AssetRegistry for further details. # See https://bisq.network/list-asset for complete instructions. bisq.asset.coins.Actinium +bisq.asset.coins.Aeon bisq.asset.coins.BitcoinClashic bisq.asset.coins.BitcoinRhodium bisq.asset.coins.Bitcoin$Mainnet diff --git a/assets/src/test/java/bisq/asset/coins/AeonTest.java b/assets/src/test/java/bisq/asset/coins/AeonTest.java new file mode 100644 index 0000000000..17c5911955 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/AeonTest.java @@ -0,0 +1,44 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + + package bisq.asset.coins; + + import bisq.asset.AbstractAssetTest; + import org.junit.Test; + + public class AeonTest extends AbstractAssetTest { + + public AeonTest() { + super(new Aeon()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("WmsSXcudnpRFjXr5qZzEY5AF64J6CpFKHYXJS92rF9WjHVjQvJxrmSGNQnSfwwJtGGeUMKvLYn5nz2yL9f6M4FN51Z5r8zt4C"); + assertValidAddress("XnY88EywrSDKiQkeeoq261dShCcz1vEDwgk3Wxz77AWf9JBBtDRMTD9Fe3BMFAVyMPY1sP44ovKKpi4UrAR26o661aAcATQ1k"); + assertValidAddress("Wmu42kYBnVJgDhBUPEtK5dicGPEtQLDUVWTHW74GYvTv1Zrki2DWqJuWKcWV4GVcqnEMgb1ZiufinCi7WXaGAmiM2Bugn9yTx"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress(""); + assertInvalidAddress("WmsSXcudnpRFjXr5qZzEY5AF64J6CpFKHYXJS92rF9WjHVjQvJxrmSGNQnSfwwJtGGeUMKvLYn5nz2yL9f6M4FN51Z5r8zt4"); + assertInvalidAddress("XnY88EywrSDKiQkeeoq261dShCcz1vEDwgk3Wxz77AWf9JBBtDRMTD9Fe3BMFAVyMPY1sP44ovKKpi4UrAR26o661aAcATQ1kZz"); + assertInvalidAddress("XaY88EywrSDKiQkeeoq261dShCcz1vEDwgk3Wxz77AWf9JBBtDRMTD9Fe3BMFAVyMPY1sP44ovKKpi4UrAR26o661aAcATQ1k"); + assertInvalidAddress("Wmu42kYBnVJgDhBUPEtK5dicGPEtQLDUVWTHW74GYv#vZrki2DWqJuWKcWV4GVcqnEMgb1ZiufinCi7WXaGAmiM2Bugn9yTx"); + } +} From 57f66f35a3247713553cf6f21b36e9d0d09f9770 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Mon, 10 Dec 2018 14:33:01 +0100 Subject: [PATCH 05/52] Add more logs --- core/src/main/java/bisq/core/app/BisqSetup.java | 2 +- .../java/bisq/core/btc/wallet/BtcWalletService.java | 1 + .../main/java/bisq/core/offer/OpenOfferManager.java | 10 ++++++---- .../tasks/maker/MakerSetupDepositTxListener.java | 1 + 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/bisq/core/app/BisqSetup.java b/core/src/main/java/bisq/core/app/BisqSetup.java index 3762393ee2..210ac1e1b3 100644 --- a/core/src/main/java/bisq/core/app/BisqSetup.java +++ b/core/src/main/java/bisq/core/app/BisqSetup.java @@ -591,7 +591,7 @@ public class BisqSetup { tradeManager.getAddressEntriesForAvailableBalanceStream() .filter(addressEntry -> addressEntry.getOfferId() != null) .forEach(addressEntry -> { - log.debug("swapPendingOfferFundingEntries, offerId={}, OFFER_FUNDING", addressEntry.getOfferId()); + log.warn("Swapping pending OFFER_FUNDING entries at startup. offerId={}", addressEntry.getOfferId()); btcWalletService.swapTradeEntryToAvailableEntry(addressEntry.getOfferId(), AddressEntry.Context.OFFER_FUNDING); }); diff --git a/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java b/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java index 25c8be245f..d00ac34d92 100644 --- a/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/BtcWalletService.java @@ -656,6 +656,7 @@ public class BtcWalletService extends WalletService { } public void resetAddressEntriesForOpenOffer(String offerId) { + log.info("resetAddressEntriesForOpenOffer offerId={}", offerId); swapTradeEntryToAvailableEntry(offerId, AddressEntry.Context.OFFER_FUNDING); swapTradeEntryToAvailableEntry(offerId, AddressEntry.Context.RESERVED_FOR_TRADE); } diff --git a/core/src/main/java/bisq/core/offer/OpenOfferManager.java b/core/src/main/java/bisq/core/offer/OpenOfferManager.java index d298b52e4d..695dc01847 100644 --- a/core/src/main/java/bisq/core/offer/OpenOfferManager.java +++ b/core/src/main/java/bisq/core/offer/OpenOfferManager.java @@ -177,11 +177,13 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe } private void cleanUpAddressEntries() { - Set openTradesIdSet = openOffers.getList().stream().map(OpenOffer::getId).collect(Collectors.toSet()); + Set openOffersIdSet = openOffers.getList().stream().map(OpenOffer::getId).collect(Collectors.toSet()); btcWalletService.getAddressEntriesForOpenOffer().stream() - .filter(e -> !openTradesIdSet.contains(e.getOfferId())) + .filter(e -> !openOffersIdSet.contains(e.getOfferId())) .forEach(e -> { - log.warn("We found an outdated addressEntry for openOffer {}", e.getOfferId()); + log.warn("We found an outdated addressEntry for openOffer {} (openOffers does not contain that " + + "offer), offers.size={}", + e.getOfferId(), openOffers.size()); btcWalletService.resetAddressEntriesForOpenOffer(e.getOfferId()); }); } @@ -483,7 +485,7 @@ public class OpenOfferManager implements PeerManager.Listener, DecryptedDirectMe openOffer.setState(OpenOffer.State.CANCELED); openOffers.remove(openOffer); closedTradableManager.add(openOffer); - log.debug("removeOpenOffer, offerId={}", offer.getId()); + log.info("onRemoved offerId={}", offer.getId()); btcWalletService.resetAddressEntriesForOpenOffer(offer.getId()); resultHandler.handleResult(); } diff --git a/core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSetupDepositTxListener.java b/core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSetupDepositTxListener.java index e296f4015a..b0a2c02872 100644 --- a/core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSetupDepositTxListener.java +++ b/core/src/main/java/bisq/core/trade/protocol/tasks/maker/MakerSetupDepositTxListener.java @@ -114,6 +114,7 @@ public class MakerSetupDepositTxListener extends TradeTask { } private void swapReservedForTradeEntry() { + log.info("swapReservedForTradeEntry"); processModel.getBtcWalletService().swapTradeEntryToAvailableEntry(trade.getId(), AddressEntry.Context.RESERVED_FOR_TRADE); } From b9a286047f296423c9d4999f0e7564625ba5046e Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Mon, 10 Dec 2018 15:20:34 +0100 Subject: [PATCH 06/52] Add script to clean up app directory and change privileges to poweruser --- desktop/package/macosx/finalize.sh | 3 +-- desktop/package/windows/64bitBuild.bat | 6 ++++-- desktop/package/windows/Bisq.iss | 20 +++++++++++++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) mode change 100755 => 100644 desktop/package/windows/Bisq.iss diff --git a/desktop/package/macosx/finalize.sh b/desktop/package/macosx/finalize.sh index b580975e7f..d62f059e71 100755 --- a/desktop/package/macosx/finalize.sh +++ b/desktop/package/macosx/finalize.sh @@ -36,7 +36,7 @@ cp "$macOS/$dmg" "$target_dir/" deb64="Bisq-64bit-$version.deb" cp "$linux64/$deb64" "$target_dir/" -exe="Bisq-$version.exe" +exe="Bisq.exe" exe64="Bisq-64bit-$version.exe" cp "$win64/$exe" "$target_dir/$exe64" @@ -52,7 +52,6 @@ gpg --digest-algo SHA256 --verify $dmg{.asc*,} gpg --digest-algo SHA256 --verify $deb64{.asc*,} gpg --digest-algo SHA256 --verify $exe64{.asc*,} -#mkdir ../../build/vm/vm_shared_windows_32bit/$version cp -r . $win64/$version open "." diff --git a/desktop/package/windows/64bitBuild.bat b/desktop/package/windows/64bitBuild.bat index 409173d8ef..28b121b8cc 100644 --- a/desktop/package/windows/64bitBuild.bat +++ b/desktop/package/windows/64bitBuild.bat @@ -5,12 +5,14 @@ :: 64 bit build :: Needs Inno Setup 5 or later (http://www.jrsoftware.org/isdl.php) +cd ../../ + SET version=0.9.0 :: Private setup -SET outdir=\\VBOXSVR\vm_shared_windows +::SET outdir=\\VBOXSVR\vm_shared_windows :: Others might use the following -:: SET outdir=. +SET outdir=. call "%JAVA_HOME%\bin\javapackager.exe" -deploy ^ -BappVersion="%version%" ^ diff --git a/desktop/package/windows/Bisq.iss b/desktop/package/windows/Bisq.iss old mode 100755 new mode 100644 index 07c4a65221..e39860f6b1 --- a/desktop/package/windows/Bisq.iss +++ b/desktop/package/windows/Bisq.iss @@ -1,13 +1,14 @@ ;This file will be executed next to the application bundle image ;I.e. current directory will contain folder Bisq with application files [Setup] + AppId={{bisq}} AppName=Bisq AppVersion=0.9.0 AppVerName=Bisq AppPublisher=Bisq AppComments=Bisq -AppCopyright=Copyright (C) 2016 +AppCopyright=Copyright (C) 2018 AppPublisherURL=https://bisq.network AppSupportURL=https://bisq.network ;AppUpdatesURL=http://java.com/ @@ -26,10 +27,10 @@ MinVersion=0,5.1 OutputBaseFilename=Bisq Compression=lzma SolidCompression=yes -PrivilegesRequired=lowest +PrivilegesRequired=poweruser SetupIconFile=Bisq\Bisq.ico UninstallDisplayIcon={app}\Bisq.ico -UninstallDisplayName=Bisq +UninstallDisplayName=Bisq WizardImageStretch=No WizardSmallImageFile=Bisq-setup-icon.bmp ArchitecturesInstallIn64BitMode=x64 @@ -64,11 +65,24 @@ begin Result := False; end; +//Delete old app directory to prevent issues during update +procedure DeleteOldAppDataDirectory; +var + entry: String; +begin + entry := ExpandConstant('{localappdata}') + '\Bisq\'; + if DirExists(entry) then begin + DelTree(entry, true, true, true); + end +end; + + function InitializeSetup(): Boolean; begin // Possible future improvements: // if version less or same => just launch app // if upgrade => check if same app is running and wait for it to exit // Add pack200/unpack200 support? + DeleteOldAppDataDirectory; Result := True; end; From 02b0f17fc9c06ebf82dcdd42ad9ebd33a4c14f3d Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Mon, 10 Dec 2018 15:24:02 +0100 Subject: [PATCH 07/52] Adapt to redesign --- desktop/package/windows/Bisq-setup-icon.bmp | Bin 9800 -> 9294 bytes desktop/package/windows/Bisq.ico | Bin 37998 -> 56092 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/desktop/package/windows/Bisq-setup-icon.bmp b/desktop/package/windows/Bisq-setup-icon.bmp index b78242dec35a1254259457bd886b49d7bdebc43d..98ee6b3e34fc7bc97173039b45f80ba3d0ed887e 100644 GIT binary patch literal 9294 zcmeI1`B#)x7{}`$=;!``<{hm(ok$rFvA`vaw1nIu#Ztu7QfYIEcFSYgNn1{P9b2uF z3$qU+IN&gB0|O!mDiF#J!|E^$i+$gD;rep#op)xCI;T^>aGrbT-sgVa=RWtj&%JN_ z@)dX8=KqPr|5^BGCO)^{cBj8y{CDmS=`&ezzp`o?^P9rZCImlb4+;j1vU-zP=qRQ3wdv5i7zSq4Icf?-4Ctna_HD)(Uwtz^c@ z*?hzjgEhXdbmzX3ozL3WW9|D_nV|51c>HvGO1HN&5Nar#jRW;7bK;ff8U~Ek&3>iy zIjoMJVYhs^eqS%b!mG}V82vp8O0d2*pIbxqC3=E#c6mG2<|ZoWhm|nIhP;)LA-une)fX-zY%BGRv(C^V-g^YL#nRJo&7oO_C&<1cX0A%*?U-AFSiZ73oVes%Gv7?;fICFaP|&O){gskt`Tlu^8e@&N<~ zgb30`5(04|XMp2zTnLZ`;luL>M#n}eRZ{WGi$|l+sKu~}o!zXCHO{H%F5|Y8D&etT z*M2gwcOdZU#g4YtY^qBj&R0t_xSk20L?S^ckr$8GAKTlT~lCFL$Ye&q+Y4VM#s9%qPPJrj^y?N1GdkWymy$M73$HYgFGKC zL(k>p8dy%87nYgkM`{^Pow~3+U)~q;iN;@7+mtU#o{Xh^mRY3o#&4Fr5@l73 zElonaIl|GNC;v96%yJ_9awgp%AO(_Z%WbuYdGh4m2hQIcev~($(|au%yN;94OyEHqMXyQm>AoHsoDV7Jqw_keD4CR_I_k z7wYdLvq@-S&zFn0%Q+#}_Ew*0{N?MqPv8TiVh!ozN!7x(yZ?oYG)fL z)Uce<+PeuJ5wH)YpG#5DbBkZKc&<6Sid^o}zTqiLm8fMoAJ2|wcOoq6Rc9Wasml#A zx_h`At8a__NhD@cnumR}tgDzbAOg$zhVvzM9f3SfAJOh0zODN#!4eH5Hc!S9UTTW! z^Yu}ESm`dxv`x%+Z|CWDs^Z zo~F8oRYdx@G}Wr(T>9qXwSODhaU$UYBHDBJQ(OH<6pg zEES?+(_jOukjsf9At$f%yJ)!kGBx6R6`2~#&0Xmxp`RRU>V?9sR2Qkp<%Ab4GR|eA z6W~9-aEPlX#LD)e*2k>zoOt5rgsJmdbGWLwoM?H#wI917^}NutF)vwpf0RaP9IQwB zgnj2iPbDrPJ*IxGa@#C0FCcM{enfU{H!baQZxBOjNNalqVJ zv?*3U2S$UFYqa83NluGd-t0`XDaLSbq;5(UfyUaVKjh8iav)B$Ip}&F0faIsrv8tH zpXC~eJm?!Za^c{_$#F8@!;^}@2KDDPACZ<2j8{+lQ75JhGxdaZX`sUq+ADB&c-j&z z3#bXgQzIJ4N0j7BcUfwFlDPT^p?p#MukyaHn-XxW%|m{M1$;R zy%h6j+O5mX%Hk6rq5q47RxM9Ti8h_D6&R!u!4$7YHE{urS{#-%BxITd{YX#Tyfh^Z;aQLkn4j5%#ao%0~SUZGL6Lj8*5**Lptq_lRR0N=46p9+XP}1oj z3d0gY=akf*{`0q`7EQqT!<%l2Jj$%bn+04Vg@s2Nhs%kM4gFX4Id^IBW(_MSG&jJE zr{*QOyl;afS!t4H3xv ekyPOA7e;?D-eM5>|fz literal 9800 zcmeHM30PEB6n=m#$}+O4fPxsJ?)Q2Fvrkr^?|bt&@4R!*`QN!`x%Uw=CCr~` zJ)Xd|KYqjUdlEkjrU$MJ9tp@3SENW|y!fi@{ADLy_P-Y6|Cy?OJd2B^)=%~Gip!Z|rP z5U#JU*DS9=mA;SQpN58pva&MxBq1RoD=X{TwQKDvX=-XZ)q236?F#&3%$k}Scoqo?CB?;p>@2Ay|JjLQwk(jn?42c| zJT?-9Ze3j+n`0{ac-*l-A3qny+Jo11&sSfSm#b=Ot~Auw*Ic=RP*ljIIaz$1a+!3~ zns+!FU9f+EW1Dpl!F>Zb{>&5R78WR%FIZ^PCPqMZv+69* zm#7=XyW>#j8^(dEb7#-QA34(9#@?CfL`)-#M?DrK%@@n0`I3CGR3gsL6P-v(oIUM% zC&mf^OvK3bmFY7LGp+lmmX>C?NG_FZ+4LS~DqSsYF~3toCx(v?4IdXeCh&33EQxjO6hM+7sMxVF`<$(;UD_sH9gGGJN?E(+3}7CLJ^0*&u%Z12gojSp z9UUze3E3&Ekjv&yn@%&GLh9@4@nZNhuSYBn8!-l%LiubW*e?J{Z2%F?vuCRwG8? zYa9Ihq{(c}XvYz==E$THGVe--eC4vp*7kRQ-H5YaH!oTV&y}1R-hYsrh3&j)Gbo+| zyY>w5^g$R5>o-s#k+#_}>M#G7U)dlX8H;`%y-ua23Ukp?_^3voZQI7P?8Kh&w_Wt_ySVExpA$PV$MY-8_X7}jO z;1MWRIDXt8J9EmjG11>p09a!zcyUgiAeVAXMWmfbVS%(kZ44VZwy3B;sg(17`!!TPA~#wge=J$HWH8>`?w8mM5#A37W{W7hV~A7avt$3`{O*VUo=v2nUFHcpHM z>JkuQEyR9A>B#vDsRj*1*@cTgfA>AoUxSQ}kIKtbo_0q~67{c%TnX?_a;_T^?r$&t@!V724?MO^t{_>X>Pyo6UM}Is- z4dG>XZ2frF)aN$7^-kiEIIP&I9ux#BW+ahxG@h!}oj}JSc3Ya8p9z^n2EvUf0*DH7 z3&5O;Y7A5)CZb4pghUdXI1-{LN`w)EBNUhs%81{TN_hGEb;YUj4?oE~HV zLJR>&K_*|TIl}}H{Dz_8jPiH$%t%c)41?BDaX ziJ0tRZI9KO1~D@|LU-%lsSAOM|1q^|-s83aK`T0w`yr5 cHV!KmE{*qCmX%IO8@`> diff --git a/desktop/package/windows/Bisq.ico b/desktop/package/windows/Bisq.ico index 803352295563a2975b49c36056fa667a1504252a..4b6dda49516651f477272bc26758baa3a7b1e7f2 100644 GIT binary patch literal 56092 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 T38{L6gj793&X!PrKM4O1F+yl( literal 37998 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 From 1739034b3d88b10ca89860ce920162d584072e31 Mon Sep 17 00:00:00 2001 From: Steve Jain Date: Mon, 10 Dec 2018 18:04:27 -0500 Subject: [PATCH 08/52] Refine various ui strings --- .../resources/i18n/displayStrings.properties | 86 ++++++++++--------- 1 file changed, 45 insertions(+), 41 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 66831747a5..8def811b7c 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -556,7 +556,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Yes, I have started the payment portfolio.pending.step2_seller.waitPayment.headline=Wait for payment portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=The deposit transaction has at least one blockchain confirmation.\nYou need to wait until the BTC buyer starts the {0} payment. -portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until he starts the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=The BTC buyer has not started his payment!\nThe max. allowed period for the trade has elapsed.\nYou can wait longer and give the trading peer more time or contact the arbitrator for opening a dispute. # suppress inspection "UnusedProperty" @@ -807,26 +807,26 @@ support.buyerOfferer=BTC buyer/Maker support.sellerOfferer=BTC seller/Maker support.buyerTaker=BTC buyer/Taker support.sellerTaker=BTC seller/Taker -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\n\ +support.backgroundInfo=Bisq is not a company and does not guarantee customer support.\n\n\ If there are disputes in the trade process (e.g. one trader does not follow the trade protocol) \ the application will display an \"Open dispute\" button after the trade period is over \ -for contacting the arbitrator.\n\ -If there is an issue with the application, the software will try to detect this and, if possible, display \ +for contacting the arbitrator.\n\n\ +If there is an issue with the application, the software will try to detect it and, if possible, display \ an \"Open support ticket\" button to contact the arbitrator who will forward the issue \ to the developers.\n\n\ If you are having an issue and did not see the \"Open support ticket\" button, \ -you can open a support ticket manually by selecting the trade which causes the problem \ -under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". \ -Please use that only if you are sure that the software is not working as expected. \ -If you have problems or questions, please review the FAQ at the \ -bisq.network web page or post in the Bisq forum at the support section. +you can open a support ticket manually by selecting the trade causing issues \ +under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". \ +Please use this method only if you are sure that the software is not working as expected. \ +If you have problems or questions, please review the FAQ on the \ +bisq.network web page or post in the Bisq forum in the Support section. support.initialInfo=Please note the basic rules for the dispute process:\n\ -1. You need to respond to the arbitrators requests in between 2 days.\n\ -2. The maximum period for the dispute is 14 days.\n\ -3. You need to fulfill what the arbitrator is requesting from you to deliver evidence for your case.\n\ +1. You need to respond to the arbitrator's requests within 2 days.\n\ +2. The maximum period for a dispute is 14 days.\n\ +3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n\ 4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\n\ -Please read more in detail about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +Please read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=System message: {0} support.youOpenedTicket=You opened a request for support. support.youOpenedDispute=You opened a request for a dispute.\n\n{0} @@ -899,11 +899,11 @@ settings.net.warn.usePublicNodes=If you use the public Bitcoin network you are e settings.net.warn.usePublicNodes.useProvided=No, use provided nodes settings.net.warn.usePublicNodes.usePublic=Yes, use public network settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\n\ - Connecting to nodes which are not following the Bitcoin Core consensus rules could screw up your wallet and cause problems in the trade process.\n\n\ - Users who connect to nodes that violate consensus rules are responsible for any damage created by that. \ - Disputes caused by that would be decided in favor of the other peer. No technical support will be given \ - to users who ignore our warning and protection mechanisms! -settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you get connected exclusively to that.) + Connecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\n\ + Users who connect to nodes that violate consensus rules are responsible for any resulting damage. \ + Any resulting disputes will be decided in favor of the other peer. No technical support will be given \ + to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Onion address settings.net.creationDateColumn=Established @@ -926,18 +926,18 @@ settings.net.inbound=inbound settings.net.outbound=outbound settings.net.reSyncSPVChainLabel=Resync SPV chain settings.net.reSyncSPVChainButton=Delete SPV file and resync -settings.net.reSyncSPVSuccess=The SPV chain file will be deleted at the next startup. You need to restart your application now.\n\n\ -After the restart it can take a while for resyncing with the network and you will only see all transactions once the resync is completed.\n\nPlease make another restart after the resync has completed because there are sometimes inconsistencies leading to incorrect balance display. -settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please have patience, it can take a while when resyncing with the network. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\n\ +After the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=The resync is now completed. Please restart the application. settings.net.reSyncSPVFailed=Could not delete SPV chain file.\nError: {0} setting.about.aboutBisq=About Bisq -setting.about.about=Bisq is an open source project and a decentralized network of users who want to exchange bitcoin with national currencies or alternative crypto currencies in a privacy protecting way. Learn more about Bisq on our project web page. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq web page setting.about.code=Source code setting.about.agpl=AGPL License setting.about.support=Support Bisq -setting.about.def=Bisq is not a company but a community project and open for participation. If you want to participate or support Bisq please follow the links below. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Contribute setting.about.donate=Donate setting.about.providers=Data providers @@ -959,11 +959,11 @@ setting.about.subsystems.val=Network version: {0}; P2P message version: {1}; Loc account.tab.arbitratorRegistration=Arbitrator registration account.tab.account=Account account.info.headline=Welcome to your Bisq Account -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\n\ -An empty Bitcoin wallet was created the first time you started Bisq.\n\ -We recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\n\ -Privacy & Security:\n\ -Bisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\n\ +A new Bitcoin wallet was created the first time you started Bisq.\n\n\ +We strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\n\ +Privacy & security note: \ +because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=National currency accounts account.menu.altCoinsAccountView=Altcoin accounts @@ -976,7 +976,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Register arbitrator account.arbitratorRegistration.revoke=Revoke registration -account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=You need to set at least 1 language.\nWe added the default language for you. account.arbitratorRegistration.removedSuccess=You have successfully removed your arbitrator from the P2P network. account.arbitratorRegistration.removedFailed=Could not remove arbitrator.{0} @@ -996,8 +996,8 @@ account.arbitratorSelection.minOne=You need to have at least one arbitrator sele account.altcoin.yourAltcoinAccounts=Your altcoin accounts account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as \ -described on the {1} web page.\nUsing wallets from centralized exchanges where you don''t have your keys under \ -your control or using a not compatible wallet software can lead to loss of the traded funds!\nThe arbitrator is \ +described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or \ +(b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is \ not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=I understand and confirm that I know which wallet I need to use. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill \ @@ -1091,16 +1091,16 @@ account.password.removePw.button=Remove password account.password.removePw.headline=Remove password protection for wallet account.password.setPw.button=Set password account.password.setPw.headline=Set password protection for wallet -account.password.info=With password protection you need to enter your password when withdrawing bitcoin \ -out of your wallet or if you want to view or restore a wallet from seed words as well as at application startup. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin \ +out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Backup your wallets seed words account.seed.info=Please write down both wallet seed words and the date! \ -You can recover your wallet any time with those seed words and the date.\n\ -The seed words are used for both the BTC and the BSQ wallet.\n\n\ +You can recover your wallet any time with seed words and the date.\n\ +The same seed words are used for the BTC and BSQ wallet.\n\n\ You should write down the seed words on a sheet of paper. Do not save them on your computer.\n\n\ Please note that the seed words are NOT a replacement for a backup.\n\ -You need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\n\ +You need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\n\ Importing seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=You have not setup a wallet password which would protect the display of the seed words.\n\n\ Do you want to display the seed words? @@ -1938,8 +1938,8 @@ popup.headline.error=Error popup.doNotShowAgain=Don't show again popup.reportError.log=Open log file popup.reportError.gitHub=Report to GitHub issue tracker -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\n\ -The error message will be copied to the clipboard when you click the below buttons.\n\ +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\n\ +The error message will be copied to the clipboard when you click a button below.\n\ It will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Please try to restart your application and check your network connection to see if you can resolve the issue. @@ -1995,7 +1995,11 @@ popup.warning.nodeBanned=One of the {0} nodes got banned. Please restart your ap popup.warning.priceRelay=price relay popup.warning.seed=seed -popup.info.securityDepositInfo=To ensure that both traders follow the trade protocol they need to pay a security deposit.\n\nThe deposit will stay in your local trading wallet until the offer gets accepted by another trader.\nIt will be refunded to you after the trade has successfully completed.\n\nPlease note that you need to keep your application running if you have an open offer. When another trader wants to take your offer it requires that your application is online for executing the trade protocol.\nBe sure that you have standby mode deactivated as that would disconnect the network (standby of the monitor is not a problem). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security \ +deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's \ +refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take \ +it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it \ +doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\n\ The bank ID (BIC/SWIFT) of the seller''s bank is: {0}. @@ -2021,7 +2025,7 @@ popup.shutDownInProgress.msg=Shutting down application can take a few seconds.\n popup.attention.forTradeWithId=Attention required for trade with ID {0} popup.roundedFiatValues.headline=New privacy feature: Rounded fiat values -popup.roundedFiatValues.msg=To increase privacy of your trade the {0} amount was rounded.\n\nDepending on the client version you''ll pay or receive either values with decimals or rounded ones.\n\nBoth values do comply from now on with the trade protocol.\n\nAlso be aware that BTC values are changed automatically to match the rounded fiat amount as close as possible. +popup.roundedFiatValues.msg=To increase privacy of your trade the {0} amount was rounded.\n\nDepending on the client version you''ll pay or receive either values with decimals or rounded ones.\n\nBoth values do comply from now on with the trade protocol.\n\nAlso be aware that BTC values are changed automatically to match the rounded fiat amount as close as possible. #################################################################### @@ -2299,7 +2303,7 @@ payment.emailOrMobile=Email or mobile nr payment.useCustomAccountName=Use custom account name payment.maxPeriod=Max. allowed trade period payment.maxPeriodAndLimit=Max. trade duration: {0} / Max. trade limit: {1} / Account age: {2} -payment.maxPeriodAndLimitCrypto=Max. trade duration: {0} / Max. trade limit: {1} +payment.maxPeriodAndLimitCrypto=Max. trade duration: {0} / Max. trade limit: {1} payment.currencyWithSymbol=Currency: {0} payment.nameOfAcceptedBank=Name of accepted bank payment.addAcceptedBank=Add accepted bank From c4336638083b5902295ca8ab700b47dd280ed738 Mon Sep 17 00:00:00 2001 From: Steve Jain Date: Mon, 10 Dec 2018 18:36:06 -0500 Subject: [PATCH 09/52] Change customer service text --- core/src/main/resources/i18n/displayStrings.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 8def811b7c..dd581cf0b9 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -807,7 +807,7 @@ support.buyerOfferer=BTC buyer/Maker support.sellerOfferer=BTC seller/Maker support.buyerTaker=BTC buyer/Taker support.sellerTaker=BTC seller/Taker -support.backgroundInfo=Bisq is not a company and does not guarantee customer support.\n\n\ +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\n\ If there are disputes in the trade process (e.g. one trader does not follow the trade protocol) \ the application will display an \"Open dispute\" button after the trade period is over \ for contacting the arbitrator.\n\n\ From 94a6c73e53b86ce1ab74c6aac74e1c244f5da816 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 12:01:59 +0100 Subject: [PATCH 10/52] Use different install trigger to clean up local tor and app directories --- desktop/package/windows/Bisq.iss | 81 +++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/desktop/package/windows/Bisq.iss b/desktop/package/windows/Bisq.iss index e39860f6b1..1fc5bb1537 100644 --- a/desktop/package/windows/Bisq.iss +++ b/desktop/package/windows/Bisq.iss @@ -27,7 +27,7 @@ MinVersion=0,5.1 OutputBaseFilename=Bisq Compression=lzma SolidCompression=yes -PrivilegesRequired=poweruser +PrivilegesRequired=lowest SetupIconFile=Bisq\Bisq.ico UninstallDisplayIcon={app}\Bisq.ico UninstallDisplayName=Bisq @@ -65,6 +65,55 @@ begin Result := False; end; +procedure DirectoryCopy(SourcePath, DestPath: string); +var + FindRec: TFindRec; + SourceFilePath: string; + DestFilePath: string; +begin + if FindFirst(SourcePath + '\*', FindRec) then + begin + try + repeat + if (FindRec.Name <> '.') and (FindRec.Name <> '..') then + begin + SourceFilePath := SourcePath + '\' + FindRec.Name; + DestFilePath := DestPath + '\' + FindRec.Name; + if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then + begin + if FileCopy(SourceFilePath, DestFilePath, False) then + begin + Log(Format('Copied %s to %s', [SourceFilePath, DestFilePath])); + end + else + begin + Log(Format('Failed to copy %s to %s', [SourceFilePath, DestFilePath])); + end; + end + else + begin + if DirExists(DestFilePath) or CreateDir(DestFilePath) then + begin + Log(Format('Created %s', [DestFilePath])); + DirectoryCopy(SourceFilePath, DestFilePath); + end + else + begin + Log(Format('Failed to create %s', [DestFilePath])); + end; + end; + end; + until not FindNext(FindRec); + finally + FindClose(FindRec); + end; + end + else + begin + Log(Format('Failed to list %s', [SourcePath])); + end; +end; + //Delete old app directory to prevent issues during update procedure DeleteOldAppDataDirectory; var @@ -76,6 +125,35 @@ begin end end; +procedure DeleteTorFiles; +var + mainnetDir: String; + torDir: String; + hiddenServiceDir: String; + hiddenServiceBackupDir : String; +begin + mainnetDir := ExpandConstant('{userappdata}') + '\Bisq\btc_mainnet'; + torDir := mainnetDir + '\tor\*'; + hiddenServiceDir := mainnetDir + '\tor\hiddenservice'; + hiddenServiceBackupDir := mainnetDir + '\hiddenservice_backup'; + if DirExists(hiddenServiceDir) then begin + if DirExists(hiddenServiceBackupDir) then begin + DelTree(hiddenServiceBackupDir, true, true, true); + end + CreateDir(hiddenServiceBackupDir); + DirectoryCopy(hiddenServiceDir, hiddenServiceBackupDir); + DelTree(torDir, false, true, true); + CreateDir(hiddenServiceDir); + DirectoryCopy(hiddenServiceBackupDir, hiddenServiceDir); + end +end; + +function PrepareToInstall(var NeedsRestart: Boolean): String; +begin + DeleteOldAppDataDirectory; + DeleteTorFiles; + Result := ''; +end; function InitializeSetup(): Boolean; begin @@ -83,6 +161,5 @@ begin // if version less or same => just launch app // if upgrade => check if same app is running and wait for it to exit // Add pack200/unpack200 support? - DeleteOldAppDataDirectory; Result := True; end; From a54298690f6f831284ee84699f95e0d5c510c668 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 11 Dec 2018 12:10:28 +0100 Subject: [PATCH 11/52] Update display string - Remove info that you cannot import seeds from pre v0.5.0 wallets --- core/src/main/resources/i18n/displayStrings.properties | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index dd581cf0b9..b6c373746b 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -1106,11 +1106,10 @@ account.seed.warn.noPw.msg=You have not setup a wallet password which would prot Do you want to display the seed words? account.seed.warn.noPw.yes=Yes, and don't ask me again account.seed.enterPw=Enter password to view seed words -account.seed.restore.info=Please note that you cannot import a wallet from an old Bisq version (any version before 0.5.0), \ - because the wallet format has changed!\n\n\ - If you want to move the funds from the old version to the new Bisq application send it with a bitcoin transaction.\n\n\ - Also be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\n\ - It is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is \ + only for emergency cases and might cause problems with the internal wallet database.\n\ + It is not a way for applying a backup! Please use a backup from the application data directory for restoring a \ + previous application state. account.seed.restore.ok=Ok, I understand and want to restore From 1769fcc067dc604afa2f35e3a9433def06045ccd Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 11 Dec 2018 13:55:56 +0100 Subject: [PATCH 12/52] Fix missing render update issue --- desktop/src/main/java/bisq/desktop/util/GUIUtil.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java index 9f8ce6a25d..6235b036bc 100644 --- a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java +++ b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java @@ -813,10 +813,13 @@ public class GUIUtil { int maxHeight = rowHeight * maxNumRows + headerHeight; checkArgument(maxHeight >= minHeight, "maxHeight cannot be smaller as minHeight"); int height = Math.min(maxHeight, Math.max(minHeight, size * rowHeight + headerHeight)); - tableView.setMaxHeight(-1); - tableView.setMinHeight(-1); - tableView.setMaxHeight(height); - tableView.setMinHeight(height); + + tableView.setPrefHeight(-1); + // We need to delay the setter to the next render frame as otherwise views don' get updated in some cases + // Not 100% clear what causes that issue, but seems the requestLayout method is not called otherwise + UserThread.execute(() -> { + tableView.setPrefHeight(height); + }); } public static Tuple2, Integer> addRegionCountryTradeCurrencyComboBoxes(GridPane gridPane, From bc8a6b676c90d3116ea8804205a1925538c8cf8e Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 11 Dec 2018 13:58:26 +0100 Subject: [PATCH 13/52] Set invisible before height is set to avoid flicker --- desktop/src/main/java/bisq/desktop/util/GUIUtil.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java index 6235b036bc..5d9705dc0f 100644 --- a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java +++ b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java @@ -815,10 +815,12 @@ public class GUIUtil { int height = Math.min(maxHeight, Math.max(minHeight, size * rowHeight + headerHeight)); tableView.setPrefHeight(-1); + tableView.setVisible(false); // We need to delay the setter to the next render frame as otherwise views don' get updated in some cases // Not 100% clear what causes that issue, but seems the requestLayout method is not called otherwise UserThread.execute(() -> { tableView.setPrefHeight(height); + tableView.setVisible(true); }); } From 98c2fd65ec463600b2857f549c3b6553d039727c Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 14:26:02 +0100 Subject: [PATCH 14/52] Use upper case in button labels --- desktop/src/main/java/bisq/desktop/components/MenuItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/components/MenuItem.java b/desktop/src/main/java/bisq/desktop/components/MenuItem.java index 668d0924f0..53810a66d5 100644 --- a/desktop/src/main/java/bisq/desktop/components/MenuItem.java +++ b/desktop/src/main/java/bisq/desktop/components/MenuItem.java @@ -58,7 +58,7 @@ public class MenuItem extends JFXButton implements Toggle { this.viewClass = viewClass; this.baseNavPath = baseNavPath; - setLabelText(title); + setLabelText(title.toUpperCase()); setPrefHeight(40); setPrefWidth(240); setAlignment(Pos.CENTER_LEFT); From e7e4484bdc7732245822add0dad19889c467458a Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 14:26:38 +0100 Subject: [PATCH 15/52] Reset previous selected tab to prevent unexpected lifecycle calls --- .../src/main/java/bisq/desktop/main/dao/DaoView.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java b/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java index d19677e11e..40b44d471a 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/DaoView.java @@ -40,6 +40,7 @@ import javax.inject.Inject; import javafx.fxml.FXML; +import javafx.scene.control.ScrollPane; import javafx.scene.control.Tab; import javafx.scene.control.TabPane; @@ -136,6 +137,15 @@ public class DaoView extends ActivatableViewAndModel { } private void loadView(Class viewClass) { + + if (selectedTab != null && selectedTab.getContent() != null) { + if (selectedTab.getContent() instanceof ScrollPane) { + ((ScrollPane) selectedTab.getContent()).setContent(null); + } else { + selectedTab.setContent(null); + } + } + View view = viewLoader.load(viewClass); if (view instanceof BsqWalletView) { selectedTab = bsqWalletTab; From ecc0424542d92e5986b3e07a63fa469bd137f84e Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 15:28:34 +0100 Subject: [PATCH 16/52] Prevent duplicate activation of account views. Fixes #2053. --- .../desktop/main/account/AccountView.java | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java index 40bfc802ff..6e880fd65e 100644 --- a/desktop/src/main/java/bisq/desktop/main/account/AccountView.java +++ b/desktop/src/main/java/bisq/desktop/main/account/AccountView.java @@ -100,6 +100,8 @@ public class AccountView extends ActivatableView { navigation.navigateTo(MainView.class, AccountView.class, FiatAccountsView.class); else loadView(viewPath.tip()); + } else { + resetSelectedTab(); } }; @@ -115,22 +117,20 @@ public class AccountView extends ActivatableView { }; tabChangeListener = (ov, oldValue, newValue) -> { - if (arbitratorRegistrationTab != null) { + if (arbitratorRegistrationTab != null && selectedTab != arbitratorRegistrationTab) { navigation.navigateTo(MainView.class, AccountView.class, ArbitratorRegistrationView.class); - } else if (newValue == fiatAccountsTab) { + } else if (newValue == fiatAccountsTab && selectedTab != fiatAccountsTab) { navigation.navigateTo(MainView.class, AccountView.class, FiatAccountsView.class); - } else if (newValue == altcoinAccountsTab) { + } else if (newValue == altcoinAccountsTab && selectedTab != altcoinAccountsTab) { navigation.navigateTo(MainView.class, AccountView.class, AltCoinAccountsView.class); - } else if (newValue == notificationTab) { + } else if (newValue == notificationTab && selectedTab != notificationTab) { navigation.navigateTo(MainView.class, AccountView.class, MobileNotificationsView.class); - } else if (newValue == passwordTab) { + } else if (newValue == passwordTab && selectedTab != passwordTab) { navigation.navigateTo(MainView.class, AccountView.class, PasswordView.class); - } else if (newValue == seedwordsTab) { + } else if (newValue == seedwordsTab && selectedTab != seedwordsTab) { navigation.navigateTo(MainView.class, AccountView.class, SeedWordsView.class); - } else if (newValue == backupTab) { + } else if (newValue == backupTab && selectedTab != backupTab) { navigation.navigateTo(MainView.class, AccountView.class, BackupView.class); - } else { - navigation.navigateTo(MainView.class, AccountView.class, FiatAccountsView.class); } }; @@ -202,13 +202,7 @@ public class AccountView extends ActivatableView { private void loadView(Class viewClass) { View view = viewLoader.load(viewClass); - if (selectedTab != null && selectedTab.getContent() != null) { - if (selectedTab.getContent() instanceof ScrollPane) { - ((ScrollPane) selectedTab.getContent()).setContent(null); - } else { - selectedTab.setContent(null); - } - } + resetSelectedTab(); if (view instanceof ArbitratorRegistrationView) { if (arbitratorRegistrationTab != null) { @@ -239,4 +233,14 @@ public class AccountView extends ActivatableView { } root.getSelectionModel().select(selectedTab); } + + private void resetSelectedTab() { + if (selectedTab != null && selectedTab.getContent() != null) { + if (selectedTab.getContent() instanceof ScrollPane) { + ((ScrollPane) selectedTab.getContent()).setContent(null); + } else { + selectedTab.setContent(null); + } + } + } } From 9f52592a2c1f747cb3323a45d8aed089e8c605ea Mon Sep 17 00:00:00 2001 From: sys96 <33090942+System96@users.noreply.github.com> Date: Tue, 11 Dec 2018 09:53:06 -0500 Subject: [PATCH 17/52] List FourtyTwo (FRTY) Official project URL: [http://coin42.co] (Temporary address: http://coin42.tk) Official block explorer URL: [http://explorer.coin42.co] --- .../asset/CryptonoteAddressValidator.java | 8 ++++ .../main/java/bisq/asset/coins/FourtyTwo.java | 28 ++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/FourtyTwoTest.java | 44 +++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/FourtyTwo.java create mode 100644 assets/src/test/java/bisq/asset/coins/FourtyTwoTest.java diff --git a/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java b/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java index df992f1b05..47a6883154 100644 --- a/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java +++ b/assets/src/main/java/bisq/asset/CryptonoteAddressValidator.java @@ -49,6 +49,10 @@ public class CryptonoteAddressValidator implements AddressValidator { //Aeon & Blur-type addresses return AddressValidationResult.validAddress(); } + else if (prefix.length() == 4 && address.length() == 94 + prefix.length()) { + // FourtyTwo-type address + return AddressValidationResult.validAddress(); + } else { //Non-supported prefix return AddressValidationResult.invalidStructure(); @@ -63,6 +67,10 @@ public class CryptonoteAddressValidator implements AddressValidator { // Aeon, Mask & Blur-type subaddress return AddressValidationResult.validAddress(); } + if (subAddressPrefix.length() == 5 && address.length() == 96 + subAddressPrefix.length()) { + // FourtyTwo-type subaddress + return AddressValidationResult.validAddress(); + } else { // Non-supported subAddress return AddressValidationResult.invalidStructure(); diff --git a/assets/src/main/java/bisq/asset/coins/FourtyTwo.java b/assets/src/main/java/bisq/asset/coins/FourtyTwo.java new file mode 100644 index 0000000000..fb21882df4 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/FourtyTwo.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Coin; +import bisq.asset.CryptonoteAddressValidator; + +public class FourtyTwo extends Coin { + + public FourtyTwo() { + super("FourtyTwo", "FRTY", new CryptonoteAddressValidator("foUr", "SNake")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index d093cd01a2..d6ff6a6fe8 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -22,6 +22,7 @@ bisq.asset.coins.Dogecoin bisq.asset.coins.Dragonglass bisq.asset.coins.Ether bisq.asset.coins.EtherClassic +bisq.asset.coins.FourtyTwo bisq.asset.coins.Gridcoin bisq.asset.coins.Kekcoin bisq.asset.coins.Litecoin diff --git a/assets/src/test/java/bisq/asset/coins/FourtyTwoTest.java b/assets/src/test/java/bisq/asset/coins/FourtyTwoTest.java new file mode 100644 index 0000000000..76442ad0f8 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/FourtyTwoTest.java @@ -0,0 +1,44 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; +import org.junit.Test; + +public class FourtyTwoTest extends AbstractAssetTest { + + public FourtyTwoTest() { + super(new FourtyTwo()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("foUrDvc6vtJYMvqpx4oydJjL445udJ83M8rAqpkF8hEcbyLCp5MhvLaLGXtVYkqVXDG8YEpGBU7F241FtWXVCFEK7EMgnjrsM8"); + assertValidAddress("foUrFDEDkMGjV4HJzgYqSHhPTFaHfcpLM4WGZjYQZyrcCgyZs32QweCZEysK8eNxgsWdXv3YBP8QWDDWBAPu55eJ6gLf2TubwG"); + assertValidAddress("SNakeyQFcEacGHFaCgj4VpdfM3VTsFDygNHswx3CtKpn8uD1DmrbFwfM11cSyv3CZrNNWh4AALYuGS4U4pxYPHTiBn2DUJASoQw4B"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress(""); + assertInvalidAddress("fUrDvc6vtJYMvqpx4oydJjL445udJ83M8rAqpkF8hEcbyLCp5MhvLaLGXtVYkqVXDG8YEpGBU7F241FtWXVCFEK7EMgnjrsM8"); + assertInvalidAddress("UrFDEDkMGjV4HJzgYqSHhPTFaHfcpLM4WGZjYQZyrcCgyZs32QweCZEysK8eNxgsWdXv3YBP8QWDDWBAPu55eJ6gLf2TubwG"); + assertInvalidAddress("keyQFcEacGHFaCgj4VpdfM3VTsFDygNHswx3CtKpn8uD1DmrbFwfM11cSyv3CZrNNWh4AALYuGS4U4pxYPHTiBn2DUJASoQw4B!"); + assertInvalidAddress("akeyQFcEacGHFaCgj4VpdfM3VTsFDygNHswx3CtKpn8uD1DmrbFwfM11cSyv3CZrNNWh4AALYuGS4U4pxYPHTiBn2DUJASoQw4B"); + } +} From 2da96436066fcd107d4a9cdb3ae6540f96df2eac Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 16:07:27 +0100 Subject: [PATCH 18/52] Round volume in contract views. Fixes #2042. --- core/src/main/java/bisq/core/trade/Contract.java | 14 ++++++++++++++ .../main/overlays/windows/ContractWindow.java | 2 +- .../overlays/windows/DisputeSummaryWindow.java | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/bisq/core/trade/Contract.java b/core/src/main/java/bisq/core/trade/Contract.java index 2ec150d2ee..5058165079 100644 --- a/core/src/main/java/bisq/core/trade/Contract.java +++ b/core/src/main/java/bisq/core/trade/Contract.java @@ -17,8 +17,11 @@ package bisq.core.trade; +import bisq.core.locale.CurrencyUtil; import bisq.core.monetary.Price; +import bisq.core.monetary.Volume; import bisq.core.offer.OfferPayload; +import bisq.core.offer.OfferUtil; import bisq.core.payment.payload.PaymentAccountPayload; import bisq.core.payment.payload.PaymentMethod; import bisq.core.proto.CoreProtoResolver; @@ -220,6 +223,17 @@ public final class Contract implements NetworkPayload { return Coin.valueOf(tradeAmount); } + public Volume getTradeVolume() { + Volume volumeByAmount = getTradePrice().getVolumeByAmount(getTradeAmount()); + + if (getPaymentMethodId().equals(PaymentMethod.HAL_CASH_ID)) + volumeByAmount = OfferUtil.getAdjustedVolumeForHalCash(volumeByAmount); + else if (CurrencyUtil.isFiatCurrency(getOfferPayload().getCurrencyCode())) + volumeByAmount = OfferUtil.getRoundedFiatVolume(volumeByAmount); + + return volumeByAmount; + } + public Price getTradePrice() { return Price.valueOf(offerPayload.getCurrencyCode(), tradePrice); } diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java index 0965a09ea3..390db264de 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/ContractWindow.java @@ -133,7 +133,7 @@ public class ContractWindow extends Overlay { addConfirmationLabelLabel(gridPane, ++rowIndex, Res.get("shared.tradeAmount"), formatter.formatCoinWithCode(contract.getTradeAmount())); addConfirmationLabelLabel(gridPane, ++rowIndex, formatter.formatVolumeLabel(currencyCode, ":"), - formatter.formatVolumeWithCode(contract.getTradePrice().getVolumeByAmount(contract.getTradeAmount()))); + formatter.formatVolumeWithCode(contract.getTradeVolume())); String securityDeposit = Res.getWithColAndCap("shared.buyer") + " " + formatter.formatCoinWithCode(offer.getBuyerSecurityDeposit()) + diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java index d5657d3c72..54756d3a33 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/DisputeSummaryWindow.java @@ -267,7 +267,7 @@ public class DisputeSummaryWindow extends Overlay { addConfirmationLabelLabel(gridPane, ++rowIndex, Res.get("shared.tradePrice"), formatter.formatPrice(contract.getTradePrice())); addConfirmationLabelLabel(gridPane, ++rowIndex, Res.get("shared.tradeVolume"), - formatter.formatVolumeWithCode(contract.getTradePrice().getVolumeByAmount(contract.getTradeAmount()))); + formatter.formatVolumeWithCode(contract.getTradeVolume())); } private void addCheckboxes() { From fe53c0b7bdc41603d497543f83f78d40fa839576 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 16:26:03 +0100 Subject: [PATCH 19/52] Trigger validation of volume when percentage price is changed. Fixes #2044. --- .../java/bisq/desktop/main/offer/MutableOfferViewModel.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java b/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java index a79ec67e9c..eac6fdb79e 100644 --- a/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java +++ b/desktop/src/main/java/bisq/desktop/main/offer/MutableOfferViewModel.java @@ -797,6 +797,11 @@ public abstract class MutableOfferViewModel ext inputIsMarketBasedPrice = true; } marketPriceMargin.set(btcFormatter.formatRoundedDoubleWithPrecision(dataModel.getMarketPriceMargin() * 100, 2)); + + // We want to trigger a recalculation of the volume + UserThread.execute(() -> { + onFocusOutVolumeTextField(true, false); + }); } void onFocusOutVolumeTextField(boolean oldValue, boolean newValue) { From 11a6dc922111f8fb52b9f3d9b743883bb5cf8939 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 16:47:30 +0100 Subject: [PATCH 20/52] Fix upper case issue on label update --- desktop/src/main/java/bisq/desktop/components/MenuItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/components/MenuItem.java b/desktop/src/main/java/bisq/desktop/components/MenuItem.java index 53810a66d5..8bd3fee4ad 100644 --- a/desktop/src/main/java/bisq/desktop/components/MenuItem.java +++ b/desktop/src/main/java/bisq/desktop/components/MenuItem.java @@ -130,7 +130,7 @@ public class MenuItem extends JFXButton implements Toggle { } public void setLabelText(String value) { - setText(value); + setText(value.toUpperCase()); } From 84c73f4ce45c15a7c77b37c5fb20b1a955e385c3 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Tue, 11 Dec 2018 16:48:59 +0100 Subject: [PATCH 21/52] Remove unnecessary uppercase --- desktop/src/main/java/bisq/desktop/components/MenuItem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/components/MenuItem.java b/desktop/src/main/java/bisq/desktop/components/MenuItem.java index 8bd3fee4ad..8c79a20410 100644 --- a/desktop/src/main/java/bisq/desktop/components/MenuItem.java +++ b/desktop/src/main/java/bisq/desktop/components/MenuItem.java @@ -58,7 +58,7 @@ public class MenuItem extends JFXButton implements Toggle { this.viewClass = viewClass; this.baseNavPath = baseNavPath; - setLabelText(title.toUpperCase()); + setLabelText(title); setPrefHeight(40); setPrefWidth(240); setAlignment(Pos.CENTER_LEFT); From cd5139261adafbdd8d451800eb49646fa971fd55 Mon Sep 17 00:00:00 2001 From: devopsralf Date: Wed, 12 Dec 2018 00:14:44 -0500 Subject: [PATCH 22/52] List Remix (RMX) --- .../src/main/java/bisq/asset/coins/Remix.java | 28 +++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../test/java/bisq/asset/coins/RemixTest.java | 47 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Remix.java create mode 100644 assets/src/test/java/bisq/asset/coins/RemixTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Remix.java b/assets/src/main/java/bisq/asset/coins/Remix.java new file mode 100644 index 0000000000..6ed1b334c2 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Remix.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Coin; +import bisq.asset.RegexAddressValidator; + +public class Remix extends Coin { + + public Remix() { + super("Remix", "RMX", new RegexAddressValidator("^((REMXi|SubRM)[1-9A-HJ-NP-Za-km-z]{94})$")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index d093cd01a2..ef9ccde622 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -36,6 +36,7 @@ bisq.asset.coins.PIVX bisq.asset.coins.PZDC bisq.asset.coins.QMCoin bisq.asset.coins.Radium +bisq.asset.coins.Remix bisq.asset.coins.Ryo bisq.asset.coins.Siafund bisq.asset.coins.Spectrecoin diff --git a/assets/src/test/java/bisq/asset/coins/RemixTest.java b/assets/src/test/java/bisq/asset/coins/RemixTest.java new file mode 100644 index 0000000000..ae0aeb921c --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/RemixTest.java @@ -0,0 +1,47 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; +import org.junit.Test; + +public class RemixTest extends AbstractAssetTest { + + public RemixTest() { + super(new Remix()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("REMXisBbsyWKYdENidNhiP3bGaVwVgtescK2ZuJMtxed4TqJGH8VX57gMSTyfC43FULSM4XXzmj727SGjDNak16mGaYdban4o4m"); + assertValidAddress("REMXiqQhgfqWtZ1gfxP4iDbXEV4f8cUDFAp2Bz43PztJSJvv2mUqG4Z2YFBMauJV74YCDcJLyqkbCfsC55LNJhQfZxdiE5tGxKq"); + assertValidAddress("SubRM7BgZyGiccN3pKuRPrN52FraE9j7miu17MDwx6wWb7J6XWeDykk48JBZ3QVSXR7GJWr2RdpjK3YCRAUdTbfRL4wGAn7oggi"); + assertValidAddress("SubRM9N9dmoeawsXqNt94jVn6vSurYxxU3E6mEoMnzWvAMB7QjL3Zc9dmKTD64wE5ePFfACVLVLTZZa6GKVp6FuZ7Z9dJheMoJb"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress(""); + assertInvalidAddress("REMXiqQhgfqWtZ1gfxP4iDbXEV4f8cUDFAp2Bz43PztJSJvv2mUqG4Z2YFBMauJV74YCDcJLyqkbCfsC55LNJhQ"); + assertInvalidAddress("REMXIqQhgfqWtZ1gfxP4iDbXEV4f8cUDFApdfgdfgdfgdfgr4453453453444JV74YCDcJLyqkbCfsC55LNJhQfZxdiE5tGxKq"); + assertInvalidAddress("REMXiqQhgfqWtZ1gfxP4iDbXEV4f8cUDFAp2Bz43PztJS4dssdffffsdfsdfffffdfgdfgsaqkbCfsC4iDbXEV4f8cUDFAp2Bz"); + assertInvalidAddress("SubRM9N9dmoeawsXqNt94jVn6vSurYxxU3E6mEoMnzWvAMB7QL3Zc9dmKTD64wE5ePFfACVLVLTZZa6GKVp6FuZ7Z9dJheMo69"); + assertInvalidAddress("SubRM9N9dmoeawsXqNt94jdfsdfsdfsdfsdfsdfJb"); + assertInvalidAddress("SubrM9N9dmoeawsXqNt94jVn6vSfeet"); + } +} From 5bf7ba46a7a0cb97c7552a883689a8522b447557 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 12 Dec 2018 13:35:13 +0100 Subject: [PATCH 23/52] Handle cycles in case of applying a empty snapshot --- .../dao/governance/period/CycleService.java | 42 ++++++++++--------- .../dao/state/DaoStateSnapshotService.java | 23 ++++++---- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/bisq/core/dao/governance/period/CycleService.java b/core/src/main/java/bisq/core/dao/governance/period/CycleService.java index 0300201dad..4276c448e4 100644 --- a/core/src/main/java/bisq/core/dao/governance/period/CycleService.java +++ b/core/src/main/java/bisq/core/dao/governance/period/CycleService.java @@ -68,7 +68,7 @@ public class CycleService implements DaoStateListener, DaoSetupService { @Override public void start() { - daoStateService.getCycles().add(getFirstCycle()); + addFirstCycle(); } @@ -96,6 +96,28 @@ public class CycleService implements DaoStateListener, DaoSetupService { // API /////////////////////////////////////////////////////////////////////////////////////////// + public void addFirstCycle() { + daoStateService.getCycles().add(getFirstCycle()); + } + + public int getCycleIndex(Cycle cycle) { + return (cycle.getHeightOfFirstBlock() - genesisBlockHeight) / cycle.getDuration(); + } + + public boolean isTxInCycle(Cycle cycle, String txId) { + return daoStateService.getTx(txId).filter(tx -> isBlockHeightInCycle(tx.getBlockHeight(), cycle)).isPresent(); + } + + + /////////////////////////////////////////////////////////////////////////////////////////// + // Private + /////////////////////////////////////////////////////////////////////////////////////////// + + private boolean isBlockHeightInCycle(int blockHeight, Cycle cycle) { + return blockHeight >= cycle.getHeightOfFirstBlock() && + blockHeight <= cycle.getHeightOfLastBlock(); + } + private Optional maybeCreateNewCycle(int blockHeight, LinkedList cycles) { // We want to set the correct phase and cycle before we start parsing a new block. // For Genesis block we did it already in the start method. @@ -128,24 +150,6 @@ public class CycleService implements DaoStateListener, DaoSetupService { return new Cycle(genesisBlockHeight, ImmutableList.copyOf(daoPhasesWithDefaultDuration)); } - public int getCycleIndex(Cycle cycle) { - return (cycle.getHeightOfFirstBlock() - genesisBlockHeight) / cycle.getDuration(); - } - - public boolean isTxInCycle(Cycle cycle, String txId) { - return daoStateService.getTx(txId).filter(tx -> isBlockHeightInCycle(tx.getBlockHeight(), cycle)).isPresent(); - } - - private boolean isBlockHeightInCycle(int blockHeight, Cycle cycle) { - return blockHeight >= cycle.getHeightOfFirstBlock() && - blockHeight <= cycle.getHeightOfLastBlock(); - } - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Private - /////////////////////////////////////////////////////////////////////////////////////////// - private Cycle createNewCycle(int blockHeight, Cycle previousCycle) { List daoPhaseList = previousCycle.getDaoPhaseList().stream() .map(daoPhase -> { diff --git a/core/src/main/java/bisq/core/dao/state/DaoStateSnapshotService.java b/core/src/main/java/bisq/core/dao/state/DaoStateSnapshotService.java index fe20b7de82..091a331098 100644 --- a/core/src/main/java/bisq/core/dao/state/DaoStateSnapshotService.java +++ b/core/src/main/java/bisq/core/dao/state/DaoStateSnapshotService.java @@ -17,6 +17,7 @@ package bisq.core.dao.state; +import bisq.core.dao.governance.period.CycleService; import bisq.core.dao.state.model.DaoState; import bisq.core.dao.state.model.blockchain.Block; @@ -41,6 +42,7 @@ public class DaoStateSnapshotService implements DaoStateListener { private final DaoStateService daoStateService; private final GenesisTxInfo genesisTxInfo; + private final CycleService cycleService; private final DaoStateStorageService daoStateStorageService; private DaoState snapshotCandidate; @@ -53,9 +55,11 @@ public class DaoStateSnapshotService implements DaoStateListener { @Inject public DaoStateSnapshotService(DaoStateService daoStateService, GenesisTxInfo genesisTxInfo, + CycleService cycleService, DaoStateStorageService daoStateStorageService) { this.daoStateService = daoStateService; this.genesisTxInfo = genesisTxInfo; + this.cycleService = cycleService; this.daoStateStorageService = daoStateStorageService; this.daoStateService.addBsqStateListener(this); @@ -128,19 +132,13 @@ public class DaoStateSnapshotService implements DaoStateListener { log.warn("We applied already a snapshot with chainHeight {}. We will reset the daoState and " + "start over from the genesis transaction again.", chainHeightOfLastApplySnapshot); persisted = new DaoState(); - int genesisBlockHeight = genesisTxInfo.getGenesisBlockHeight(); - persisted.setChainHeight(genesisBlockHeight); - chainHeightOfLastApplySnapshot = genesisBlockHeight; - daoStateService.applySnapshot(persisted); + applyEmptySnapshot(persisted); } } } else if (fromReorg) { log.info("We got a reorg and we want to apply the snapshot but it is empty. That is expected in the first blocks until the " + "first snapshot has been created. We use our applySnapshot method and restart from the genesis tx"); - int genesisBlockHeight = genesisTxInfo.getGenesisBlockHeight(); - persisted.setChainHeight(genesisBlockHeight); - chainHeightOfLastApplySnapshot = genesisBlockHeight; - daoStateService.applySnapshot(persisted); + applyEmptySnapshot(persisted); } } else { log.info("Try to apply snapshot but no stored snapshot available. That is expected at first blocks."); @@ -152,6 +150,15 @@ public class DaoStateSnapshotService implements DaoStateListener { // Private /////////////////////////////////////////////////////////////////////////////////////////// + private void applyEmptySnapshot(DaoState persisted) { + int genesisBlockHeight = genesisTxInfo.getGenesisBlockHeight(); + persisted.setChainHeight(genesisBlockHeight); + chainHeightOfLastApplySnapshot = genesisBlockHeight; + daoStateService.applySnapshot(persisted); + // In case we apply an empty snapshot we need to trigger the cycleService.addFirstCycle method + cycleService.addFirstCycle(); + } + @VisibleForTesting int getSnapshotHeight(int genesisHeight, int height, int grid) { return Math.round(Math.max(genesisHeight + 3 * grid, height) / grid) * grid - grid; From 9ee3c0e39b0c5ed58f0936c137a929c890b35892 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 12 Dec 2018 18:56:05 +0100 Subject: [PATCH 24/52] Add missing param for test --- .../bisq/core/dao/state/DaoStateSnapshotServiceTest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/src/test/java/bisq/core/dao/state/DaoStateSnapshotServiceTest.java b/core/src/test/java/bisq/core/dao/state/DaoStateSnapshotServiceTest.java index 61761af5f8..7941e7bb5a 100644 --- a/core/src/test/java/bisq/core/dao/state/DaoStateSnapshotServiceTest.java +++ b/core/src/test/java/bisq/core/dao/state/DaoStateSnapshotServiceTest.java @@ -17,6 +17,8 @@ package bisq.core.dao.state; +import bisq.core.dao.governance.period.CycleService; + import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @@ -31,7 +33,7 @@ import static org.junit.Assert.assertTrue; import static org.powermock.api.mockito.PowerMockito.mock; @RunWith(PowerMockRunner.class) -@PrepareForTest({DaoStateService.class, GenesisTxInfo.class, DaoStateStorageService.class}) +@PrepareForTest({DaoStateService.class, GenesisTxInfo.class, CycleService.class, DaoStateStorageService.class}) @PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*"}) public class DaoStateSnapshotServiceTest { @@ -41,6 +43,7 @@ public class DaoStateSnapshotServiceTest { public void setup() { daoStateSnapshotService = new DaoStateSnapshotService(mock(DaoStateService.class), mock(GenesisTxInfo.class), + mock(CycleService.class), mock(DaoStateStorageService.class)); } From ac2b9d8f1eafba038bea7b8eac97eb7c62cd50bd Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 12 Dec 2018 22:51:44 +0100 Subject: [PATCH 25/52] Fix render issue with table size --- desktop/src/main/java/bisq/desktop/util/GUIUtil.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java index 5d9705dc0f..82424756a2 100644 --- a/desktop/src/main/java/bisq/desktop/util/GUIUtil.java +++ b/desktop/src/main/java/bisq/desktop/util/GUIUtil.java @@ -817,7 +817,10 @@ public class GUIUtil { tableView.setPrefHeight(-1); tableView.setVisible(false); // We need to delay the setter to the next render frame as otherwise views don' get updated in some cases - // Not 100% clear what causes that issue, but seems the requestLayout method is not called otherwise + // Not 100% clear what causes that issue, but seems the requestLayout method is not called otherwise. + // We still need to set the height immediately, otherwise some views render a incorrect layout. + tableView.setPrefHeight(height); + UserThread.execute(() -> { tableView.setPrefHeight(height); tableView.setVisible(true); From 54bd2d57c42cd3e3229777423b02f4a15d7ccd52 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 09:48:25 +0100 Subject: [PATCH 26/52] Update translations --- .../i18n/displayStrings_de.properties | 53 +- .../i18n/displayStrings_el.properties | 47 +- .../i18n/displayStrings_es.properties | 49 +- .../i18n/displayStrings_fa.properties | 161 ++- .../i18n/displayStrings_fr.properties | 1268 ++++++++++++----- .../i18n/displayStrings_hu.properties | 47 +- .../i18n/displayStrings_pt.properties | 563 ++++---- .../i18n/displayStrings_ro.properties | 47 +- .../i18n/displayStrings_ru.properties | 173 +-- .../i18n/displayStrings_sr.properties | 47 +- .../i18n/displayStrings_th.properties | 23 +- .../i18n/displayStrings_vi.properties | 803 +++++------ .../i18n/displayStrings_zh.properties | 47 +- core/update_translations.sh | 3 +- 14 files changed, 1960 insertions(+), 1371 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings_de.properties b/core/src/main/resources/i18n/displayStrings_de.properties index ae7ede57d9..7e77fcfc1b 100644 --- a/core/src/main/resources/i18n/displayStrings_de.properties +++ b/core/src/main/resources/i18n/displayStrings_de.properties @@ -193,6 +193,9 @@ shared.all=Alle shared.edit=Bearbeiten shared.advancedOptions=Erweiterte Optionen shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Ja, ich habe die Zahlung begonnen portfolio.pending.step2_seller.waitPayment.headline=Auf Zahlung warten portfolio.pending.step2_seller.f2fInfo.headline=Kontaktinformation des Käufers portfolio.pending.step2_seller.waitPayment.msg=Die Kautionstransaktion hat mindestens eine Blockchain-Bestätigung.\nSie müssen warten bis der BTC-Käufer die {0}-Zahlung beginnt. -portfolio.pending.step2_seller.warn=Der BTC-Käufer hat die {0}-Zahlung noch nicht getätigt.\nSie müssen warten bis die Zahlung begonnen wurde.\nWenn der Handel nicht bis {1} abgeschlossen wurde, wird der Vermittler diesen untersuchen. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=Der BTC-Käufer hat seine Zahlung noch nicht begonnen!\nDie maximale Handelsdauer wurde überschritten.\nSie können länger warten um dem Handelspartner mehr Zeit zu geben oder den Vermittler kontaktieren, um einen Konflikt zu öffnen. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Keine Transaktionen verfügbar funds.tx.revert=Umkehren funds.tx.txSent=Transaktion erfolgreich zu einer neuen Adresse in der lokalen Bisq-Brieftasche gesendet. funds.tx.direction.self=An Sie selbst senden -funds.tx.proposalTxFee=Mining-Gebühr für Antrag +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Rückerstattungsantrag funds.tx.compensationRequestTxFee=Entlohnungsanfrage @@ -762,9 +765,9 @@ support.buyerOfferer=BTC-Käufer/Ersteller support.sellerOfferer=BTC-Verkäufer/Ersteller support.buyerTaker=BTC-Käufer/Abnehmer support.sellerTaker=BTC-Verkäufer/Abnehmer -support.backgroundInfo=Bisq ist keine Firma und betreibt keine Form von Kundendienst.\n\nFalls es während des Handelsprozess (z.B. ein Händler befolgt nicht das Handelsprotokoll) zu Konflikten kommen sollte, wird die Anwendung nach der Handelsdauer eine \"Konflikt öffnen\"-Schaltfläche anzeigen, um den Vermittler zu kontaktieren.\nIm Falle von Softwarefehlern oder anderen Problemen, die von der Anwendung entdeckt werden, wird eine \"Support-Ticket öffnen\" Schaltfläche angezeigt, um den Vermittler zu kontaktieren, der die Probleme an die Entwickler weiterleitet.\n\nFalls ein Nutzer durch einen Fehler fest hängt, ohne dass die \"Support-Ticket öffnen\"-Schaltfläche angezeigt wird, können Sie mit einer speziellen Tastenkombination manuell ein Support-Ticket öffnen.\n\nBitte nutzen Sie diese nur, wenn Sie sicher sind, dass sich die Software nicht wie erwartet verhält. Falls Sie nicht wissen wie man Bisq verwendet oder andere Fragen haben, überprüfen Sie bitte die FAQ auf der bisq.io-Website oder erstellen Sie einen Post im Support-Abschnitt des Bisq-Forums.\n\nFalls Sie sicher sind, dass Sie ein Support-Ticket öffnen wollen, wählen Sie bitte den Handel, der Probleme bereitet, unter \"Mappe/Offene Händel\" und drücken Sie die Tastenkombination \"alt + o\" oder \"option + o\" um das Support-Ticket zu öffnen. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Bitte beachten Sie die grundlegenden Regeln für den Konfliktprozess:\n1. Sie müssen innerhalb von zwei Tagen auf die Anfrage des Vermittlers reagieren.\n2. Die maximale Dauer des Konflikts ist 14 Tage.\n3. Sie müssen befolgen, was der Vermittler von Ihnen verlangt, um Beweise für ihren Fall zu liefern.\n4. Sie haben beim ersten Start dieser Anwendung die Regeln akzeptiert, die im Wiki in den Nutzungsbedingungen zusammengefasst wurden.\n\nErfahren Sie mehr über den Konfliktprozess in unserem Wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Systemnachricht: {0} support.youOpenedTicket=Sie haben eine Anfrage für Support geöffnet. support.youOpenedDispute=Sie haben eine Anfrage für einen Konflikt geöffnet.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Spezifische Bitcoin-Core-Knoten verwenden settings.net.warn.usePublicNodes=Falls Sie das öffentliche Bitcoin-Netzwerk verwenden sind Sie einem schwerwiegenden Datenschutzproblem ausgesetzt durch das fehlerhafte Design und Implementierung des Bloom Filters in SPV-Brieftaschen wie BitcoinJ (verwendet in Bisq). Jeder verbundene Bitcoin-Core-Knoten könnte herausfinden, dass alle Ihre Brieftaschen-Adressen einer Person gehören.\n\nBitte informieren Sie sich dazu auf folgender Seite: https://bisq.network/blog/privacy-in-bitsquare.\n\nSind Sie sicher, dass Sie öffentliche Knoten verwenden möchten? settings.net.warn.usePublicNodes.useProvided=Nein, bereitgestellte Knoten verwenden settings.net.warn.usePublicNodes.usePublic=Ja, öffentliches Netzwerk verwenden -settings.net.warn.useCustomNodes.B2XWarning=Bitte stellen Sie sicher, dass Sie sich mit einem vertrauenswürdigen Bitcoin-Core-Knoten verbinden!\n\nWenn Sie sich mit Knoten verbinden, die gegen die Bitcoin Core Konsensus-Regeln verstoßen, kann es zu Problemen in Ihrer Brieftasche und im Verlauf des Handelsprozesses kommen.\n\nBenutzer die sich zu oben genannten Knoten verbinden, sind für den verursachten Schaden verantwortlich. Dadurch entstandene Konflikte werden zugunsten des anderen Teilnehmers entschieden. Benutzer die unsere Warnungen und Sicherheitsmechanismen ignorieren wird keine technische Unterstützung geleistet! -settings.net.localhostBtcNodeInfo=(Hintergrundinformation: Falls Sie einen lokalen Bitcoin-Knoten einsetzen (localhost) werden Sie nur mit diesem verbunden.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Verbundene Peers settings.net.onionAddressColumn=Onion-Adresse settings.net.creationDateColumn=Eingerichtet @@ -857,17 +860,17 @@ settings.net.inbound=eingehend settings.net.outbound=ausgehend settings.net.reSyncSPVChainLabel=SPV-Kette neu synchronisieren settings.net.reSyncSPVChainButton=SPV-Datei löschen und neu synchronisieren -settings.net.reSyncSPVSuccess=Die SPV-Kettendatei wird beim nächsten Start gelöscht. Sie müssen Ihre Anwendung jetzt neu starten.\n\nNach dem Neustart kann es eine Weile dauern, bis neu mit dem Netzwerk synchronisiert wurde und Sie werden erst alle Transaktionen sehen, wenn synchronisiert wurde.\n\nBitte starten Sie Ihre Anwendung nach Abschluss der Synchronisation neu, da es manchmal Inkonsistenten gibt, die zum Anzeigen falscher Guthaben führen. -settings.net.reSyncSPVAfterRestart=Die SPV-Kettendatei wurde gelöscht. Haben Sie bitte Geduld, es kann eine Weile dauern mit dem Netzwerk neu zu synchronisieren. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Die erneute Synchronisation ist jetzt abgeschlossen. Bitte starten Sie die Anwendung neu. settings.net.reSyncSPVFailed=Konnte SPV-Kettendatei nicht löschen.\nFehler: {0} setting.about.aboutBisq=Über Bisq -setting.about.about=bisq ist ein Open-Source-Projekt und ein dezentrales Netzwerk von Nutzern, die Bitcoins gegen nationale Währungen oder alternative Cryptowährungen auf einem Weg tauschen wollen, der die Privatsphäre schützt. Lernen Sie auf unser Projektwebsite mehr über Bisq. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq-Website setting.about.code=Quellcode setting.about.agpl=AGPL-Lizenz setting.about.support=Bisq unterstützen -setting.about.def=Bisq ist keine Firma, sondern ein Gemeinschaftsprojekt, das offen für Mitwirken ist. Wenn Sie an Bisq mitwirken oder das Projekt unterstützen wollen, folgen Sie bitte den unten stehenden Links. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Mitwirken setting.about.donate=Spenden setting.about.providers=Datenanbieter @@ -889,7 +892,7 @@ setting.about.subsystems.val=Netzwerkversion: {0}; P2P-Nachrichtenversion: {1}; account.tab.arbitratorRegistration=Vermittler-Registrierung account.tab.account=Konto account.info.headline=Willkommen in Ihrem Bisq-Konto -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Nationale Währungskonten account.menu.altCoinsAccountView=Altcoin-Konten @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Öffentlicher Schlüssel account.arbitratorRegistration.register=Vermittler registrieren account.arbitratorRegistration.revoke=Registrierung widerrufen -account.arbitratorRegistration.info.msg=Beachten Sie bitte, dass Sie nach dem Widerrufen für 15 Tage verfügbar bleiben müssen, da es Händel geben kann, die Sie als Vermittler nutzen. Die maximal erlaubte Handelsdauer ist 8 Tage und der Konfliktprozess kann bis zu 7 Tage dauern. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Sie müssen wenigstens eine Sprache festlegen.\nWir haben Ihre Standardsprache für Sie hinzugefügt. account.arbitratorRegistration.removedSuccess=Sie haben Ihren Vermittler erfolgreich aus dem P2P-Netzwerk entfernt. account.arbitratorRegistration.removedFailed=Der Vermittler konnte nicht entfernt werden.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Sie können nur Vermittler wählen, die wenig account.arbitratorSelection.minOne=Sie müssen wenigstens einen Vermittler auswählen. account.altcoin.yourAltcoinAccounts=Ihre Altcoin-Konten -account.altcoin.popup.wallet.msg=Bitte stellen Sie sicher, dass Sie die Anforderungen für die Nutzung von {0}-Brieftaschen befolgen, die auf der {1}-Website beschrieben werden.\nDie Verwendung von Brieftaschen zentraler Börsen, bei denen Sie Ihre Schlüssel nicht selber verwalten, oder das Nutzen inkompatibler Brieftasche-Software können zum Verlust der gehandelten Gelder führen!\nDer Vermittler ist kein {2}-Spezialist und kann Ihnen in einem solchen Fall nicht helfen. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Ich verstehe und bestätige, dass ich weiß, welche Brieftasche ich benutzen muss. account.altcoin.popup.xmr.msg=Wenn Sie XMR auf Bisq handeln wollen, stellen Sie bitte sicher, dass Sie die folgenden Bedingungen verstehen und erfüllen:\n\nUm XMR zu senden, brauchen Sie entweder die offizielle Monero GUI Wallet oder die einfache Monero CLI Wallet mit aktivierter store-tx-info (Standard in neuen Versionen).\nStellen Sie bitte sicher, dass Sie auf den Tx-Schlüssel zugreifen können.\nmonero-wallet-cli: (nutzen Sie das get_tx_key Kommando)\nmonero-wallet-gui: (gehen sie zum Verlauf Tab und klicken Sie die (P) Schaltfläche um die Zahlungsbestätigung anzuzeigen)\n\nZusätzlich zum XMR checktx Werkzeug (https://xmr.llcoins.net/checktx.html) kann die Überprüfung auch innerhalb der Brieftasche durchgeführt werden. \nmonero-wallet-cli: verwenden Sie den Befehl (check_tx_key)\nmonero-wallet-gui: gehen Sie zur Erweitert > Beweisen/Prüfen-Seite\n\nIn normalen Blockexplorern ist die Übertragung nicht überprüfbar.\n\nIm Fall eines Konflikts müssen Sie dem Vermittler folgende Daten übergeben:\n- Den privaten Tx-Schlüssel\n- Den Transaktionshash\n- Die öffentliche Adresse des Empfängers\n\nSollten Sie die Daten nicht übergeben können oder eine inkompatible Wallet verwendet haben, werden Sie den Konflikt verlieren. Der XMR Sender ist in der Verantwortung die Übertragung der XMR gegenüber dem Vermittler im Falle eines Konflikts zu beweisen.\n\nEs wird keine Zahlungskennung benötigt, nur eine normale öffentliche Adresse.\n\nFalls Sie sich über diesen Prozess im Unklaren sind, besuchen Sie (https://www.getmonero.org/resources/user-guides/prove-payment.html) oder das Moneroforum (https://forum.getmonero.org) um weitere Informationen zu finden. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Passwort entfernen account.password.removePw.headline=Passwortschutz Ihrer Brieftasche entfernen account.password.setPw.button=Passwort festlegen account.password.setPw.headline=Passwortschutz Ihrer Brieftasche einrichten -account.password.info=Mit Passwortschutz müssen Sie Ihr Passwort eingeben, sowohl wenn Sie Bitcoins aus Ihrer Brieftasche abheben, wenn Sie Ihre Brieftasche einsehen oder aus den Seed-Wörtern wiederherstellen wollen, als auch beim Start der Anwendung. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Backup der Seed-Wörter Ihrer Brieftasche erstellen -account.seed.info=Bitte schreiben Sie die sowohl Seed-Wörter als auch das Datum auf! Mit diesen Seed-Wörtern und dem Datum können Sie Ihre Brieftasche jederzeit wiederherstellen.\nDie Seed-Wörter werden für die BTC- und BSQ-Brieftasche genutzt.\n\nSchreiben Sie die Seed-Wörter auf ein Blatt Papier schreiben und speichern Sie sie nicht auf Ihrem Computer.\n\nBitte beachten Sie, dass die Seed-Wörter KEIN Ersatz für ein Backup sind.\nSie müssen ein Backup des gesamten Anwendungsverzeichnisses unter \"Konto/Backup\" erstellen, um den ursprünglichen Zustand der Anwendung wiederherstellen zu können.\nDas Importieren der Seed-Wörter wird nur für Notfälle empfohlen. Die Anwendung wird ohne richtiges Backup der Datenbankdateien und Schlüssel nicht funktionieren! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Sie haben kein Brieftasche-Passwort festgelegt, was das Anzeigen der Seed-Wörter schützen würde.\n\nMöchten Sie die Seed-Wörter jetzt anzeigen? account.seed.warn.noPw.yes=Ja, und nicht erneut fragen account.seed.enterPw=Geben Sie Ihr Passwort ein um die Seed-Wörter zu sehen -account.seed.restore.info=Beachten Sie, dass Sie eine Brieftasche aus einer alten Bisq-Version nicht importieren können (Versionen vor 0.5.0), weil sich das Waller-Format geändert hat!\n\nWenn Sie die Gelder aus der alten Version in die neue Bisq-Anwendung bewegen wollen, senden Sie diese mit einer Bitcoin-Transaktion.\n\nBeachten Sie auch, dass Brieftasche-Wiederherstellung nur für Notfälle ist und Probleme mit der internen Brieftasche-Datenbank verursachen kann.\nEs ist kein Weg ein Backup anzuwenden! Bitte nutzen Sie ein Backup aus dem Anwendungsdatenordner um eine vorherigen Zustand wiederherzustellen. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, ich verstehe und möchte wiederherstellen @@ -1303,7 +1306,7 @@ dao.burnBsq.assets.lookBackPeriod=Überprüfungsphase dao.burnBsq.assets.trialFee=Gebühr für Probezeit dao.burnBsq.assets.totalFee=Insgesamt gezahlte Gebühren dao.burnBsq.assets.days={0} Tage -dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial perios is {0}. +dao.burnBsq.assets.toFewDays=Die Altcoingebühr ist zu niedrig. Die min. Anzahl Tage für die Probezeit sind {0} Tage. # suppress inspection "UnusedProperty" dao.assetState.UNDEFINED=Undefiniert @@ -1319,7 +1322,7 @@ dao.assetState.REMOVED_BY_VOTING=Durch Abstimmung entfernt dao.proofOfBurn.header=Nachweis der Verbrennung dao.proofOfBurn.amount=Betrag dao.proofOfBurn.preImage=Vorabbild -dao.proofOfBurn.burn=Verbrennen +dao.proofOfVerbrennen.burn=Verbrennen dao.proofOfBurn.allTxs=Alle Transaktionen zum Nachweis der Verbrennung dao.proofOfBurn.myItems=Meine Transaktionen zum Nachweis der Verbrennung dao.proofOfBurn.date=Datum @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Vorschlagtyp dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=Meine Stimme +dao.proposal.table.header.remove=Entfernen dao.proposal.table.icon.tooltip.removeProposal=Antrag entfernen dao.proposal.table.icon.tooltip.changeVote=Aktuelles Votum: ''{0}''. Votum abändern zu: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=BSQ-Gelder senden dao.wallet.send.sendBtc=BTC-Gelder senden dao.wallet.send.sendFunds.headline=Abhebeanfrage bestätigen dao.wallet.send.sendFunds.details=Sende: {0}\nAn Empfangsadresse: {1}\nBenötigte Transaktionsgebühr ist: {2} ({3} Satoshis/Byte)\nTransaktionsgröße: {4} Kb\n\nDer Empfänger erhält: {5}\n\nSind Sie sicher, dass Sie diesen Betrag abheben wollen? -dao.wallet.chainHeightSynced=Synchronisiert bis Block: {0} (letzter Block: {1}) -dao.wallet.chainHeightSyncing=Synchronisiere Block: {0} (letzter Block: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Typ # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Überprüfung fehlgeschlagen.\nBitte l displayUpdateDownloadWindow.success=Die neue Version wurde erfolgreich heruntergeladen und die Signatur überprüft.\n\nBitte öffnen Sie das Downloadverzeichnis, schließen die Anwendung und installieren die neue Version. displayUpdateDownloadWindow.download.openDir=Downloadverzeichnis öffnen -disputeSummaryWindow.title=Zusammenfassung +disputeZusammenfassungWindow.title=Zusammenfassung disputeSummaryWindow.openDate=Erstellungsdatum des Tickets disputeSummaryWindow.role=Rolle des Händlers disputeSummaryWindow.evidence=Beweis @@ -1741,7 +1746,7 @@ popup.headline.error=Fehler popup.doNotShowAgain=Nicht erneut anzeigen popup.reportError.log=Protokolldatei öffnen popup.reportError.gitHub=Auf GitHub-Issue-Tracker melden -popup.reportError={0}\n\nUm uns bei der Verbesserung der Software zu helfen, erstellen Sie bitte einen Fehlerbericht auf unserem Issue-Tracker auf GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nDie Fehlermeldung wird in die Zwischenablage kopiert, wenn Sie auf die Schaltflächen unten klicken.\nEs wird das Debuggen einfacher machen, wenn Sie die bisq.log Datei anfügen. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Versuchen Sie bitte Ihre Anwendung neu zu starten und überprüfen Sie Ihre Netzwerkverbindung um zu sehen, ob Sie das Problem beheben können. popup.error.takeOfferRequestFailed=Es ist ein Fehler aufgetreten, als jemand versuchte eins Ihrer Angebote anzunehmen:\n{0} @@ -1776,9 +1781,9 @@ popup.warning.lockedUpFunds=Sie haben eingesperrte Gelder von einem fehlgeschlag popup.warning.nodeBanned=Einer der {0} Knoten wurde gebannt. Bitte starten Sie die Anwendung neu, um sicher zu sein, nicht mit gebannten Knoten verbunden zu werden. popup.warning.priceRelay=Preisrelais -popup.warning.seed=Seed +popup.warning.Seed=Seed -popup.info.securityDepositInfo=Um sicherzustellen, dass beide Händler dem Handelsprotokoll folgen, müssen diese eine Kaution zahlen.\n\nDie Kaution bleibt in Ihrer lokalen Brieftasche, bis das Angebot von einem anderen Händler angenommen wurde.\nSie wird Ihnen zurückerstattet, nachdem der Handel erfolgreich abgeschlossen wurde.\n\nBitte beachten Sie, dass Sie die Anwendung laufen lassen müssen, wenn Sie ein offenes Angebot haben.\nWenn ein anderer Händler Ihr Angebot annehmen möchte ist es notwendig, dass Ihre Anwendung online ist und reagieren kann.\nStellen Sie sicher, dass Sie den Ruhezustand deaktiviert haben, da dieser Ihren Client vom Netzwerk trennen würde (Der Ruhezustand des Monitors ist kein Problem). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Stellen Sie sicher, dass eine Bank-Filiale in Ihrer Nähe befindet, um die Bargeld Kaution zu zahlen.\nDie Bankkennung (BIC/SWIFT) der Bank des Verkäufers ist: {0}. popup.info.cashDepositInfo.confirm=Ich bestätige, dass ich die Kaution zahlen kann diff --git a/core/src/main/resources/i18n/displayStrings_el.properties b/core/src/main/resources/i18n/displayStrings_el.properties index cabdc9386b..a0d271dafb 100644 --- a/core/src/main/resources/i18n/displayStrings_el.properties +++ b/core/src/main/resources/i18n/displayStrings_el.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Ναι, ξεκίνησα την portfolio.pending.step2_seller.waitPayment.headline=Αναμονή για την πληρωμή portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=Η κατάθεση έχει τουλάχιστον μία επιβεβαίωση στο blockchain.\nΠρέπει να περιμένεις μέχρι να ξεκινήσει ο αγοραστής BTC την πληρωμή {0}. -portfolio.pending.step2_seller.warn=Ο αγοραστής BTC δεν έχει κάνει ακόμα την πληρωμή {0}.\nΠρέπει να περιμένεις μέχρι να ξεκινήσει την πληρωμή.\nΑν η συναλλαγή δεν ολοκληρωθεί μέχρι την {1}, ο διαμεσολαβητής θα το διερευνήσει. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=Ο αγοραστής BTC δεν ξεκίνησε τη διαδικασία πληρωμής!\nΗ μέγιστη χρονική περίοδος συναλλαγής παρήλθε.\nΜπορείς να περιμένεις περισσότερο και να δώσεις επιπλέον χρόνο στον έτερο συναλλασσόμενο ή μπορείς να επικοινωνήσεις με τον διαμεσολαβητή και να ξεκινήσεις επίλυση διένεξης. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Δεν υπάρχουν διαθέσιμες συναλλ funds.tx.revert=Revert funds.tx.txSent=Η συναλλαγή απεστάλη επιτυχώς σε νέα διεύθυνση στο τοπικό πορτοφόλι Bisq. funds.tx.direction.self=Αποστολή στον εαυτό σου -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=Αίτημα αποζημίωσης @@ -762,9 +765,9 @@ support.buyerOfferer=Αγοραστής/Maker BTC support.sellerOfferer=Πωλητής/Maker BTC support.buyerTaker=Αγοραστής/Taker BTC support.sellerTaker=Πωλητής/Taker BTC -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Λάβε υπόψιν τους βασικούς κανόνες επίλυσης διένεξης:\n1. Πρέπει να απαντήσεις στα αιτήματα του διαμεσολαβητή εντός 2 ημερών.\n2. Η μέγιστη χρονική περίοδος μιας διένεξης είναι 14 ημέρες.\n3. Πρέπει να εκπληρώσεις τις απαιτήσεις του διαμεσολαβητή προς το πρόσωπό σου σχετικά με παραδόσεις στοιχείων που αφορούν την υπόθεση.\n4. Αποδέχτηκες τους κανόνες που αναφέρονται στο wiki στη συμφωνία χρήστη, όταν εκκίνησες για πρώτη φορά την εφαρμογή.\n\nΜπορείς να διαβάσεις περισσότερες λεπτομέρειες σχετικά με τη διαδικασία επίλυσης διενέξεων στο wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Μήνυμα συστήματος: {0} support.youOpenedTicket=Άνοιξες ένα αίτημα υποστήριξης. support.youOpenedDispute=Άνοιξες ένα αίτημα για επίλυση διένεξης.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Χρήση προσωπικών επιλογώ settings.net.warn.usePublicNodes=Αν χρησιμοποιήσεις το δημόσιο δίκτυο Bitcoin εκτίθεσαι σε σοβαρά προβλήματα απορρήτου, τα οποία προκαλούνται από το σχεδιασμό και την εφαρμογή του φίλτρου bloom σε SPV πορτοφόλια όπως το BitcoinJ (χρησιμοποιείται στο Bisq). Οποιοσδήποτε πλήρης κόμβος στον οποίο είσαι συνδεδεμένος μπορεί να εντοπίσει όλες τις διευθύνσεις πορτοφολιού που ανήκουν στο ίδιο πρόσωπο.\n\nΓια περισσότερες λεπτομέρειες διάβασε: https://bisq.network/blog/privacy-in-bitsquare\n\nΘέλεις σίγουρα να χρησιμοποιήσεις δημόσιους κόμβους; settings.net.warn.usePublicNodes.useProvided=Όχι, χρησιμοποίησε προτεινόμενους κόμβους settings.net.warn.usePublicNodes.usePublic=Ναι, χρησιμοποίησε δημόσιο δίκτυο -settings.net.warn.useCustomNodes.B2XWarning=Βεβαιώσου πως ο κόμβος Bitcoin που χρησιμοποιείς είναι έμπιστος Bitcoin Core κόμβος!\n\nΣύνδεση με κόμβους που δεν ακολουθούν τα Bitcoin Core πρωτόκολλα μπορούν να διαβάλουν το πορτοφόλι σου και να προκαλέσουν προβλήματα στη διαδικασία συναλλαγής.\n\nΧρήστες που συνδέονται με κόμβους που παραβιάζουν αυτά τα πρωτόκολλα είναι υπεύθυνοι για οποιαδήποτε ζημιά προκληθεί από αυτό. Διενέξεις που θα ξεκινήσουν εξαιτίας τους θα επιλύονται προς όφελος του άλλου συναλλασσόμενου. Καμία τεχνική υποστήριξη δεν θα προσφέρεται σε χρήστες που αγνοούν τις προειδοποιήσεις μας και τους μηχανισμούς προστασίας! -settings.net.localhostBtcNodeInfo=(Βοηθητική πληροφορία: Αν τρέχεις έναν τοπικό κόμβο Bitcoin (localhost) θα συνδεθείς αποκλειστικά σε αυτόν.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Διεύθυνση onion settings.net.creationDateColumn=Καθιερώθηκε @@ -857,17 +860,17 @@ settings.net.inbound=εισερχόμενα settings.net.outbound=εξερχόμενα settings.net.reSyncSPVChainLabel=Επανασυγχρονισμός αλυσίδας SPV settings.net.reSyncSPVChainButton=Διάγραψε το αρχείο SPV και επανασυγχρονίσου -settings.net.reSyncSPVSuccess=Το αρχείο αλυσίδας SPV θα διαγραφεί στην επόμενη εκκίνηση. Πρέπει να επανεκκινήσεις την εφαρμογή τώρα.\n\nΜετά την επανεκκίνηση ίσως χρειαστεί λίγη ώρα για τον επανασυγχρονισμό με το δίκτυο και θα δεις όλες τις συναλλαγές μόλις ολοκληρωθεί ο συγχρονισμός.\n\nΕπανεκκίνησε μία επιπλέον φορά μετά την ολοκλήρωση του συγχρονισμού, καθώς μερικές φορές προκύπτουν ασυνέπειες που οδηγούν σε εσφαλμένη εμφάνιση υπολοίπου. -settings.net.reSyncSPVAfterRestart=Το αρχείο αλυσίδας SPV διαγράφηκε. Παρακαλούμε για την υπομονή σου. Ίσως χρειαστεί λίγη ώρα για τον επανασυγχρονισμό με το δίκτυο. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Ο επανασυγχρονισμός ολοκληρώθηκε. Επανεκκίνησε την εφαρμογή. settings.net.reSyncSPVFailed=Αποτυχία διαγραφής αρχείου αλυσίδας SPV.\nΣφάλμα: {0} setting.about.aboutBisq=Σχετικά με το Bisq -setting.about.about=Το Bisq είναι ένα εγχείρημα ανοιχτού κώδικα και παράλληλα ένα αποκεντρωμένο δίκτυο χρηστών που επιθυμούν να ανταλλάξουν bitcoin έναντι εθνικών νομισμάτων ή εναλλακτικών κρυπτονομισμάτων με εμπιστευτικό και προστατευμένο τρόπο. Μπορείς να μάθεις περισσότερα για το Bisq στην ιστοσελίδα μας. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Ιστοσελίδα bisq setting.about.code=Πηγαίος κώδικας setting.about.agpl=Άδεια AGPL setting.about.support=Υποστήριξε το Bisq -setting.about.def=Το Bisq δεν είναι εταιρία, αλλά ένα συλλογικό εγχείρημα, ανοιχτό σε συμμετοχές. Αν θέλεις να συμμετάσχεις ή να υποστηρίξεις το Bisq ακολούθησε τους παρακάτω συνδέσμους. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Συνεισφορά setting.about.donate=Δωρεά setting.about.providers=Πάροχοι δεδομένων @@ -889,7 +892,7 @@ setting.about.subsystems.val=Έκδοση δικτύου: {0}. Έκδοση P2P account.tab.arbitratorRegistration=Εγγραφή διαμεσολαβητή account.tab.account=Λογαριασμός account.info.headline=Καλωσόρισες στον Bisq λογαριασμό σου -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Λογαριασμοί εθνικών νομισμάτων account.menu.altCoinsAccountView=Λογαριασμοί altcoins @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Εγγραφή διαμεσολαβητή account.arbitratorRegistration.revoke=Ανάκληση εγγραφής -account.arbitratorRegistration.info.msg=Λάβε υπόψιν σου πως απαιτείται να παραμείνεις διαθέσιμος για 15 ημέρες μετά την ανάκλησή σου, καθώς ίσως υπάρχουν συναλλαγές στις οποίες έχεις ρόλο διαμεσολαβητή. Η μέγιστη επιτρεπόμενη περίοδος συναλλαγών είναι 8 ημέρες και η επίλυση διένεξης μπορεί να διαρκέσει μέχρι 7 ημέρες. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Πρέπει να προσθέσεις τουλάχιστον μία γλώσσα.\nΠροσθέσαμε ήδη την προεπιλεγμένη γλώσσα. account.arbitratorRegistration.removedSuccess=Διέγραψες επιτυχώς τον διαμεσολαβητή σου από το δίκτυο P2P. account.arbitratorRegistration.removedFailed= Δεν ήταν δυνατή η διαγραφή του διαμεσολαβητή.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Μπορείς να επιλέξεις μον account.arbitratorSelection.minOne=Πρέπει να επιλέξεις τουλάχιστον έναν διαμεσολαβητή. account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Βεβαιώσου πως πληρείς τις απαιτήσεις για τη χρήση των {0} πορτοφολιών, όπως αυτές περιγράφονται στην ιστοσελίδα {1}.\nΗ χρήση είτε πορτοφολιών κεντρικών ανταλλακτηρίων όπου δεν έχεις τον έλεγχο των κλειδιών σου, είτε πορτοφολιού ασύμβατου λογισμικού, μπορεί να οδηγήσει σε απώλεια κεφαλαίων!\nΟ διαμεσολαβητής δεν είναι ειδικός {2} και δεν μπορεί να βοηθήσει σε τέτοιες περιπτώσεις. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Κατανοώ και επιβεβαιώνω πως γνωρίζω ποιο πορτοφόλι πρέπει να χρησιμοποιήσω. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Αφαίρεση κωδικού account.password.removePw.headline=Αφαίρεση κωδικού προστασίας πορτοφολιού account.password.setPw.button=Όρισε κωδικό account.password.setPw.headline=Όρισε κωδικό προστασίας πορτοφολιού -account.password.info=Με κωδικό προστασίας απαιτείται η εισαγωγή του κωδικού για αναλήψεις bitcoin από το πορτοφόλι σου ή αν θέλεις να δεις ή να επαναφέρεις ένα πορτοφόλι μέσω των λέξεων seed, καθώς και κατά την εκκίνηση της εφαρμογής. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Αποθήκευση αντιγράφου ασφαλείας για seed words πορτοφολιού -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Δεν έχεις δημιουργήσει κωδικό πορτοφολιού, ο οποίος θα προστατεύσει την εμφάνιση των λέξεων seed.\n\nΘέλεις να εμφανίσεις τις λέξεις seed; account.seed.warn.noPw.yes=Ναι, και να μην ερωτηθώ ξανά account.seed.enterPw=Εισήγαγε κωδικό για την εμφάνιση των λέξεων seed -account.seed.restore.info=Επισημαίνουμε πως δεν μπορείς να εισάγεις πορτοφόλι από παλαιότερη έκδοση Bisq (οποιαδήποτε έκδοση πριν την 0.5.0), καθώς έχει αλλάξει το format του πορτοφολιού!\n\nΑν επιθυμείς να μετακινήσεις κεφάλαια από παλαιότερη έκδοση στη νέα εφαρμογή Bisq, χρησιμοποίησε αποστολή bitcoin.\n\nΕπίσης λάβε υπόψιν πως η επαναφορά πορτοφολιού πρέπει να χρησιμοποιείται αποκλειστικά για περιπτώσεις έκτακτης ανάγκης, και μπορεί να προκαλέσει προβλήματα στην εσωτερική βάση δεδομένων του πορτοφολιού.\nΔεν πρέπει να χρησιμοποιείται για τη δημιουργία αντιγράφου ασφαλείας! Χρησιμοποίησε ένα αντίγραφο ασφαλείας από τον κατάλογο δεδομένων εφαρμογής για την επαναφορά προηγούμενης κατάστασης της εφαρμογής. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Εντάξει, καταλαβαίνω και θέλω να κάνω επαναφορά. @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Τύπος πρότασης dao.proposal.table.header.link=Σύνδεσμος +dao.proposal.table.header.myVote=Η ψήφος μου +dao.proposal.table.header.remove=Απόσυρε dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=Αποστολή κεφαλαίων BSQ dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Επιβεβαίωση αίτησης ανάληψης dao.wallet.send.sendFunds.details=Αποστολή: {0}\nΔιεύθυνση παραλαβής: {1}\nΑπαιτούμενη αμοιβή συναλλαγής: {2} ({3} satoshis/byte)\nΜέγεθος συναλλαγής: {4} Kb\n\nΟ παραλήπτης θα λάβει: {5}\n\nΕίσαι σίγουρος πως θέλεις να κάνεις ανάληψη αυτού του ποσού; -dao.wallet.chainHeightSynced=Συγχρονισμένο μέχρι το block:{0} (τελευταίο block: {1}) -dao.wallet.chainHeightSyncing=Συγχρονισμός block: {0} (τελευταίο block: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Τύπος # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Αποτυχία επαλήθευση displayUpdateDownloadWindow.success=Η νέα έκδοση αποθηκεύτηκε επιτυχώς και η υπογραφή επαληθεύτηκε.\n\nΆνοιξε το φάκελο αποθήκευσης, κλείσε την εφαρμογή και εγκατάστησε τη νέα έκδοση. displayUpdateDownloadWindow.download.openDir=Άνοιγμα καταλόγου λήψης -disputeSummaryWindow.title=Περίληψη +disputeΠερίληψηWindow.title=Περίληψη disputeSummaryWindow.openDate=Ticket opening date disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence @@ -1741,7 +1746,7 @@ popup.headline.error=Σφάλμα popup.doNotShowAgain=Ακύρωση επανεμφάνισης popup.reportError.log=Άνοιγμα αρχείου log popup.reportError.gitHub=Ανάφερε στο GitHub issue tracker -popup.reportError={0}\n\nΒοήθησέ μας να βελτιώσουμε το πρόγραμμα αναφέροντας το σφάλμα στη λίστα ζητημάτων του GithHub (https://github.com/bisq-network/bisq-desktop/issues).\nΤο μήνυμα σφάλματος θα αντιγραφεί στο πρόχειρο όταν πατήσεις τα πιο κάτω κουμπιά.\nΘα διευκολύνει την αποσφαλμάτωση, αν επισυνάψεις το αρχείο bisq.log. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Επανεκκίνησε την εφαρμογή και έλεγξε τη σύνδεση δικτύου, ώστε να επιλυθεί το πρόβλημα. popup.error.takeOfferRequestFailed=Προέκυψε σφάλμα κατά την αποδοχή της προσφοράς σου.\n\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=Ένας από τους κόμβους {0} απαγο popup.warning.priceRelay=αναμετάδοση τιμής popup.warning.seed=Λέξεις seed -popup.info.securityDepositInfo=Για να εξασφαλιστεί πως και οι δύο συναλλασσόμενοι ακολουθούν το πρωτόκολλο συναλλαγών, απαιτείται να καταθέσουν ένα ποσό εγγύησης.\n\nΗ εγγύηση θα παραμείνει στο τοπικό πορτοφόλι σου μέχρι η προσφορά σου γίνει αποδεκτή από κάποιον συναλλασσόμενο.\nΘα σου επιστραφεί μετά την επιτυχή ολοκλήρωση της συναλλαγής.\n\nΛάβε υπόψιν πως η εφαρμογή χρειάζεται να παραμείνει ενεργή εάν έχεις ανοιχτή προφορά.\nΌταν ένας άλλος συναλλασσόμενος επιθυμεί να αποδεχτεί την προσφορά σου, απαιτείται η εφαρμογή να είναι συνδεδεμένη με το διαδίκτυο για να ενεργοποιήσει το πρωτόκολλο συναλλαγών.\nΒεβαιώσου πως έχεις απενεργοποιήσει τη λειτουργία αναμονής, καθώς μπορεί να αποσυνδέσει την εφαρμογή από το δίκτυο (η λειτουργία αναμονής της οθόνης δεν αποτελεί πρόβλημα). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Βεβαιώσου πως έχεις υποκατάστημα τράπεζας στην περιοχή σου όπου μπορείς να κάνεις την κατάθεση.\nBIC/SWIFT τράπεζας πωλητή: {0}. popup.info.cashDepositInfo.confirm=Επιβεβαιώνω πως μπορώ να κάνω την κατάθεση diff --git a/core/src/main/resources/i18n/displayStrings_es.properties b/core/src/main/resources/i18n/displayStrings_es.properties index 8c357e6796..6adfe42b9e 100644 --- a/core/src/main/resources/i18n/displayStrings_es.properties +++ b/core/src/main/resources/i18n/displayStrings_es.properties @@ -193,6 +193,9 @@ shared.all=Todos shared.edit=Editar shared.advancedOptions=Opciones avanzadas shared.interval=Intervalo +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Sí, lo he iniciado. portfolio.pending.step2_seller.waitPayment.headline=Esperar al pago. portfolio.pending.step2_seller.f2fInfo.headline=Información de contacto del comprador portfolio.pending.step2_seller.waitPayment.msg=La transacción del depósito tiene al menos una confirmación en la cadena de bloques.\nTien que esperar hasta que el comprador de BTC comience el pago de {0}. -portfolio.pending.step2_seller.warn=El comprador de BTC aún no ha realizado el pago de {0}.\nNecesita esperar hasta que el pago comience.\nSi el intercambio aún no se ha completado el {1} el árbitro procederá a investigar. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=El comprador de BTC no ha comenzado su pago!\nEl periodo máximo permitido ha finalizado.\nPuede esperar más y dar más tiempo a la otra parte o contactar con el árbitro para abrir una disputa. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Sin transacciones disponibles funds.tx.revert=Revertir funds.tx.txSent=La transacción se ha enviado exitosamente a una nueva dirección en la billetera Bisq local. funds.tx.direction.self=Enviado a usted mismo -funds.tx.proposalTxFee=Tasa de minado de la propuesta +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Requerimiento de reembolso funds.tx.compensationRequestTxFee=Petición de compensación @@ -762,9 +765,9 @@ support.buyerOfferer= comprador/creador BTC support.sellerOfferer=vendedor/creador BTC support.buyerTaker=comprador/Tomador BTC support.sellerTaker=vendedor/Tomador BTC -support.backgroundInfo=Bisq no es una compañía y no provee ningún tipo de atención al cliente. \n\nSi hay disputas en el proceso de intercambio (v.g un comerciante no sigue el protocolo de intercambio) la aplicación mostrará el botón \"Abrir disputa\" después de que el periodo de intercambio termine para contactar con el árbitro. \nEn casos de bugs u otros problemas, el software intentará encontrarlos y se mostrará el botón \"Abrir ticket de soporte\" para contactar al árbitro, que enviará el problema a los desarrolladores.\n\nSi tiene un problema y no se mostrase el botón \"Abrir ticket de soporte\", puede abrir un ticket de soporte manualmente seleccionando el intercambio que causa el problema en \"Portafolio/Intercambios abiertos\" y tecleando al combinación \"alt + o\" o \"option + +o\". Por favor, úselo sólo si está seguro de que el software no está trabajando como debería. Si tiene dudas o problemas, por favor lea el FAQ (preguntas frecuentes) en la web bisq.network o postee en el forum Bisq en la sección de soporte. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo="Por favor, tenga en cuenta las reglas básicas del proceso de disputa:\n1. Necesita responder a los requerimientos del árbitro en 2 días.\n2. El periodo máximo para la disputa es de 14 días.\n3. Necesita cumplir lo que el árbitro requiera de usted para mostrar entregar evidencia de su caso.\n4. Acepta las reglas mostradas en la wiki de acuerdo de usuario cuando inició la aplicación.\n\nPor favor lea más en detalle acerca del proceso de disputa en nuestra wiki:\nhttps://github.com/bitsquare/bitsquare/wiki/Dispute-process +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Mensaje de sistema: {0} support.youOpenedTicket=Ha abierto una solicitud de soporte. support.youOpenedDispute=Ha abierto una solicitud de disputa.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Utilizar nodos Bitcoin Core personalizados settings.net.warn.usePublicNodes=Si usa una red pública de Bitcoin está expuesto a problemas de seguridad causados por el fallo en el diseño y la implementación del filtro bloom que se utiliza para carteras SPV como BitcoinJ (usado en Bisq). Cualquier nodo completo al que esté conectado podría conocer que todas las direcciones del monedero pertenecen a una entidad.\n\nPor favor, lea más sobre los detalles en: https://bisq.network/blog/privacy-in-bitsquare.\n\n¿Está seguro de que quiere utilizar los nodos públicos? settings.net.warn.usePublicNodes.useProvided=No, utilizar nodos proporcionados settings.net.warn.usePublicNodes.usePublic=Sí, utilizar la red pública -settings.net.warn.useCustomNodes.B2XWarning=¡Por favor, asegúrese de que su nodo Bitcoin es un nodo de confianza Bitcoin Core!\n\nConectar a nodos que no siguen las reglas de consenso puede causar perjuicios a su cartera y causar problemas en el proceso de intercambio.\n\nLos usuarios que se conecten a los nodos que violan las reglas de consenso son responsables de cualquier daño que estos creen. Las disputas causadas por ello se decidirán en favor del otro participante. No se dará soporte técnico a usuarios que ignoren esta advertencia y los mecanismos de protección! -settings.net.localhostBtcNodeInfo=(Información de contexto: Si está corriendo un nodo bitcoin local (localhost) se conectará exclusivamente a eso.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Pares conectados settings.net.onionAddressColumn=Dirección onion settings.net.creationDateColumn=Establecido @@ -857,17 +860,17 @@ settings.net.inbound=entrante settings.net.outbound=saliente settings.net.reSyncSPVChainLabel=Resincronizar cadena SPV settings.net.reSyncSPVChainButton=Borrar archivo SPV y resincronizar -settings.net.reSyncSPVSuccess=El archivo de cadena SPV se borrará en el siguiente inicio. Puede reiniciar la aplicación ahora.\n\nDespués del reinicio puede llevar un rato resincronizar con la red y verá todas las transacciones una vez completada la resincronización.\n\nPor favor haga otro reinicio después de resincroniza porque a veces hay inconsistencias que llevan a un balance mostrado incorrecto. -settings.net.reSyncSPVAfterRestart=El archivo de cadena SPV ha sido borrado. Por favor, tenga paciencia. Puede llevar un tiempo resincronizar con la red. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=La resincronización se ha completado. Por favor, reinicie la aplicación. settings.net.reSyncSPVFailed=No se pudo borrar el archivo de cadena SPV\nError: {0} setting.about.aboutBisq=Acerca de Bisq -setting.about.about=Bisq es un proyecto de código abierto y una red descentralizada de usuarios que desean intercambiar Bitcoin con monedas nacionales o criptomonedas alternativas protegiendo su privacidad. Conozca más acerca de Bisq en la página de nuestro proyecto. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Página web de Bisq setting.about.code=código fuente setting.about.agpl=Licencia AGPL setting.about.support=Apoye Bisq -setting.about.def=Bisq no es una empresa, es un proyecto de comunidad abierto a contribuciones. Si desea participar o apoyar Bisq, por favor, ingrese a los enlaces debajo. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Contribuir setting.about.donate=Donar setting.about.providers=Proveedores de datos @@ -889,7 +892,7 @@ setting.about.subsystems.val=Versión de red: {0}; Versión de mensajes P2P: {1} account.tab.arbitratorRegistration=Registro de árbitro account.tab.account=Cuenta account.info.headline=Bienvenido a su cuenta Bisq -account.info.msg=Aquí puede añadir cuentas de intercambio para monedas nacionales y altcoins, seleccionar árbitros y crear una copia de seguridad de la cartera y datos e la cuenta.\n\nSe ha creado una cartera vacía de Bitcoin la primera vez que inició Bisq.\nRecomendamos que anote las palabras semilla de la cartera (ver botón a la izquierda) y considere añadir una contraseña antes de enviar fondos. Los depósitos y retiros Bitcoin se controlan en la sección \"Fondos\".\n\nPrivacidad y Seguridad:\nBisq es una casa de cambio descentralizada - lo que significa que todos los datos se mantienen en su computadora - no hay servidores y no tenemos acceso a su información personal, sus fondos e incluso su dirección IP. Datos como números de cuenta bancaria, direcciones Bitcoin y altcoin, etc sólo se comparten con el par de intercambio para completar los intercambios iniciados (en caso de disputa, el árbitro verá los mismos datos que el par de intercambio). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Cuentas de moneda nacional account.menu.altCoinsAccountView=Cuentas de altcoi @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Clave pública account.arbitratorRegistration.register=Registro de árbitro account.arbitratorRegistration.revoke=Revocar registro -account.arbitratorRegistration.info.msg=Por favor, tenga en cuenta que necesita estar disponible durante 15 días después de la revocación porque puede haber intercambios en los que esté envuelto. El periodo máximo de intercambio es de 8 días y el proceso de disputa puede llevar hasta 7 días. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Necesita introducir al menos 1 idioma.\nHemos añadido el idioma por defecto para usted. account.arbitratorRegistration.removedSuccess=Ha eliminado su árbitro de la red P2P satisfactoriamente. account.arbitratorRegistration.removedFailed=No se pudo eliminar el árbitro. {0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Puede seleccionar solamente árbitros que hab account.arbitratorSelection.minOne=Necesita tener al menos un árbitro seleccionado. account.altcoin.yourAltcoinAccounts=Sus cuentas de altcoin -account.altcoin.popup.wallet.msg=Por favor, asegúrese de que sigue los requerimientos para el uso de {0} cartera(s) tal como se describe en la página web {1}.\n¡Usar carteras desde casas de cambio centralizadas donde no tiene control sobre las claves o usar un software de cartera no compatible puede llevar a la pérdida de los fondos intercambiados!\nEl árbitro no es un especialista {2} y no puede ayudar en tales casos. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Entiendo y confirmo que sé qué monedero tengo que utilizar. account.altcoin.popup.xmr.msg=Si quiere comerciar XMR en Bisq, por favor asegúrese de que entiende y cumple todos los requerimientos.\n\nPara enviar XMR necesita usar o el monedero oficial Monero GUI o el monedero Monero simple con la bandera store-tx-info habilitada (por defecto en las nuevas versiones).\nPor favor asegúrese de que puede acceder a la tx key (usar el comando get_tx_key en simplewallet) porque podría requerirse en caso de disputa.\n\nmonero-wallet-cli (use el comando get_tx_key)\nmonero-wallet-gui (vaya a la pestaña de historia y clique en el botón (P) para prueba de pago)\n\nAdemás de la herramienta XMR checktx (https://xmr.llcoins.net/checktx.html) la verificación también se puede cumplir dentro del monedero.\nmonero-wallet-cli : usando el comando (check_tx_key).\nmonero-wallet-gui : en Avanzado > Probar/Comprobar página.\nEn exploradores de bloque normales la transferencia no es verificable.\n\nNecesita entregar al árbitro la siguiente información en caso de disputa:\n- La clave privada de transacción (tx private key).\n- El hash de transacción.\n- La dirección pública del receptor.\n\nSi no puede proveer la información o si ha usado un monedero incompatible resultaría en la pérdida del caso de disputa. El emisor de XMR es responsable de ser capaz de verificar la transacción XMR a el árbitro en caso de disputa.\n\nNo se requiere la ID de pago, sólo la dirección pública normal.\n\nSi no está seguro del proceso visite (https://www.getmonero.org/resources/user-guides/prove-payment.html) o el foro Monero (https://forum.getmonero.org) para más información. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Eliminar password account.password.removePw.headline=Eliminar protección por password del monedero account.password.setPw.button=Establecer password account.password.setPw.headline=Establecer protección por password del monedero -account.password.info=Con protección por password tiene que introducir su password al retirar bitcoin de su monedero o si quiere ver o restaurar un monedero desde las palabras semilla, así como al inicio de la aplicación +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Copia de seguridad de palabras semilla del monedero -account.seed.info=Por favor apunte en un papel tanto las palabras semilla del monedero como la fecha! Puede recuperar su monedero en cualquier momento con las palabras semilla y la fecha.\nLas palabras semilla se usan tanto para el monedero BTC como para el monedero BSQ.\n\nDebe apuntar las palabras semillas en una hoja de papel y no guardarla en su computadora.\n\nPor favor, tenga en cuenta que las palabras semilla no son un sustituto de la copia de seguridad.\nNecesita hacer la copia de seguridad de todo el directorio de aplicación en la pantalla \"Cuenta/Copia de Seguridad\" para recuperar un estado de aplicación válido y los datos.\nImportar las palabras semilla solo se recomienda para casos de emergencia. La aplicación no será funcional sin una adecuada copia de seguridad de los archivos de la base de datos y claves! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=No ha establecido una contraseña de cartera que proteja la visualización de las palabras semilla.\n\n¿Quiere que se muestren las palabras semilla? account.seed.warn.noPw.yes=Sí, y no preguntar de nuevo account.seed.enterPw=Introducir password para ver las palabras semilla -account.seed.restore.info=Por favor tenga en cuenta que no puede importar un monedero desde una versión antigua de Bisq (ninguna versión anterior a la 0.5.0), porque el formato de monedero ha cambiado!\n\nSi quiere mover los fondos desde la versión vieja a la nueva aplicación Bisq envíelos con una transacción Bitcoin.\n\nTambién a en cuenta que la restauración de monedero es sólo para casos de emergencia y puede causar problemas con la base de datos del monedero interno.\nNo es manera de aplicar una copia de seguridad! Por favor utilice una copia de seguridad desde el directorio de datos de la aplicación para restaurar a un estado previo de la aplicación. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, entiendo y quiero restaurar @@ -1319,7 +1322,7 @@ dao.assetState.REMOVED_BY_VOTING=Eliminados por votación dao.proofOfBurn.header=Prueba de quemado dao.proofOfBurn.amount=Cantidad dao.proofOfBurn.preImage=Pre-imagen -dao.proofOfBurn.burn=Quemar +dao.proofOfQuemar.burn=Quemar dao.proofOfBurn.allTxs=Todas las transacciones de prueba de quemado dao.proofOfBurn.myItems=Mis transacciones de prueba de quemado dao.proofOfBurn.date=Fecha @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Opción dao.proposal.table.header.proposalType=Tipo de propuesta dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=Mi voto +dao.proposal.table.header.remove=Eliminar dao.proposal.table.icon.tooltip.removeProposal=Eliminar mi propuesta dao.proposal.table.icon.tooltip.changeVote=Voto actual: ''{0}''. Cambiar voto a: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=Enviar fondos BSQ dao.wallet.send.sendBtc=Enviar fondos BTC dao.wallet.send.sendFunds.headline=Confirme la petición de retiro dao.wallet.send.sendFunds.details=Enviando: {0}\nA la dirección receptora: {1}.\nLa tasa de transacción requerida es: {2} ({3} Satoshis/byte)\nTamaño de la transacción: {4} Kb\n\nEl receptor recibirá: {5}\n\nSeguro que quiere retirar esta cantidad? -dao.wallet.chainHeightSynced=Sincronizado con la cadena de bloques. Altura actual: {0} / Mejor altura de la cadena: {1} -dao.wallet.chainHeightSyncing=Sincronizando con la cadena de bloques. Altura actual: {0} / Mejor altura de la cadena: {1} +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Tipo # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Verificación fallida./nPor favor desc displayUpdateDownloadWindow.success=La nueva versión ha sido descargada con éxito y la firma verificada./n/nPor favor abra el directorio de descargas, cierre la aplicación e instale la nueva versión. displayUpdateDownloadWindow.download.openDir=Abrir directorio de descargas -disputeSummaryWindow.title=Resumen +disputeResumenWindow.title=Resumen disputeSummaryWindow.openDate=Fecha de apertura de ticket disputeSummaryWindow.role=Rol del trader disputeSummaryWindow.evidence=Evidencia @@ -1741,7 +1746,7 @@ popup.headline.error=Error popup.doNotShowAgain=No mostrar de nuevo popup.reportError.log=Abrir archivo de registro popup.reportError.gitHub=Reportar al rastreador de problemas de Github -popup.reportError={0}\n\nPara ayudarnos a mejorar el software, por favor reporte el error en nuestro registro de incidentes en GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nEl mensaje de error se copiará en el portapapeles cuando haga clic en los botones más abajo.\nAdemás, se facilitará la corrección del error si puede adjuntar el archivo bisq.log +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Por favor pruebe a reiniciar la aplicación y comprobar su conexión a la red para ver si puede resolver el problema. popup.error.takeOfferRequestFailed=Un error ocurrió cuando alguien intentó tomar una de sus ofertas:/n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=Uno de los nodos {0} ha sido baneado. Por favor reinici popup.warning.priceRelay=retransmisión de precios popup.warning.seed=Semilla -popup.info.securityDepositInfo=Para asegurarse de que ambos comerciantes siguen el protocolo de intercambio, necesitan pagar un depósito de seguridad.\n\nEl depósito seguirá en su monedero de intercambio local hasta que la oferta sea aceptada por otro comerciante.\nSe le devolverá después de que el intercambio se complete satisfactoriamente.\n\nPor favor tenga en cuenta que necesita mantener la aplicación en marcha si tiene alguna oferta abierta. Cuando otro comerciante quierea tomar la oferta, se requiere que su aplicación esté online para ejecutar el protocolo de intercambio.\nAsegúrese de que tiene el modo standby desactivado, ya que esto desconectaría la red (el standby del monitor no es un problema). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Por favor asegúrese de que tiene una oficina bancaria donde pueda hacer el depósito de efectivo.\nEl banco con ID (BIC/SWIFT) de el banco del vendedor es: {0} popup.info.cashDepositInfo.confirm=Confirmo que puedo hacer el depósito diff --git a/core/src/main/resources/i18n/displayStrings_fa.properties b/core/src/main/resources/i18n/displayStrings_fa.properties index 0a797e0959..7432f8685e 100644 --- a/core/src/main/resources/i18n/displayStrings_fa.properties +++ b/core/src/main/resources/i18n/displayStrings_fa.properties @@ -137,7 +137,7 @@ shared.saveNewAccount=ذخیره‌ی حساب جدید shared.selectedAccount=حساب انتخاب شده shared.deleteAccount=حذف حساب shared.errorMessageInline=\nپیغام خطا: {0} -shared.errorMessage=Error message +shared.errorMessage=پیام خطا shared.information=اطلاعات shared.name=نام shared.id=شناسه @@ -152,19 +152,19 @@ shared.seller=فروشنده shared.buyer=خریدار shared.allEuroCountries=تمام کشورهای یورو shared.acceptedTakerCountries=کشورهای هدف برای پذیرش طرف معامله -shared.arbitrator=Selected arbitrator +shared.arbitrator=داور انتخاب شده shared.tradePrice=قیمت معامله shared.tradeAmount=مقدار معامله shared.tradeVolume=حجم معامله shared.invalidKey=کلید وارد شده صحیح نیست. -shared.enterPrivKey=Enter private key to unlock -shared.makerFeeTxId=Maker fee transaction ID -shared.takerFeeTxId=Taker fee transaction ID -shared.payoutTxId=Payout transaction ID -shared.contractAsJson=Contract in JSON format +shared.enterPrivKey=کلید خصوصی را برای بازگشایی وارد کنید +shared.makerFeeTxId=شناسه تراکنش کارمزد سفارش‌گذار +shared.takerFeeTxId=شناسه تراکنش کارمزد پذیرنده +shared.payoutTxId=شناسه تراکنش پرداخت +shared.contractAsJson=قرارداد در قالب JSON shared.viewContractAsJson=مشاهده‌ی قرارداد در قالب JSON: shared.contract.title=قرارداد برای معامله با شناسه ی {0} -shared.paymentDetails=BTC {0} payment details +shared.paymentDetails=جزئیات پرداخت BTC {0} shared.securityDeposit=سپرده‌ی اطمینان shared.yourSecurityDeposit=سپرده ی اطمینان شما shared.contract=قرارداد @@ -172,27 +172,30 @@ shared.messageArrived=پیام رسید. shared.messageStoredInMailbox=پیام در پیام‌های دریافتی ذخیره شد. shared.messageSendingFailed=ارسال پیام ناموفق بود. خطا: {0} shared.unlock=باز کردن -shared.toReceive=to receive -shared.toSpend=to spend +shared.toReceive=قابل دریافت +shared.toSpend=قابل خرج کردن shared.btcAmount=مقدار بیتکوین -shared.yourLanguage=Your languages +shared.yourLanguage=زبان‌های شما shared.addLanguage=افزودن زبان shared.total=مجموع -shared.totalsNeeded=Funds needed -shared.tradeWalletAddress=Trade wallet address -shared.tradeWalletBalance=Trade wallet balance +shared.totalsNeeded=وجه مورد نیاز +shared.tradeWalletAddress=آدرس کیف‌پول معاملات +shared.tradeWalletBalance=موجودی کیف‌پول معاملات shared.makerTxFee=سفارش گذار: {0} shared.takerTxFee=پذیرنده سفارش: {0} shared.securityDepositBox.description=سپرده‌ی اطمینان بیتکوین {0} shared.iConfirm=تایید می‌کنم shared.tradingFeeInBsqInfo=معادل با {0} برای کارمزد معدن‌کاوان مورد استفاده قرار گرفته است. shared.openURL=باز {0} -shared.fiat=Fiat -shared.crypto=Crypto -shared.all=All -shared.edit=Edit -shared.advancedOptions=Advanced options -shared.interval=Interval +shared.fiat=فیات +shared.crypto=کریپتو +shared.all=همه +shared.edit=ویرایش +shared.advancedOptions=گزینه‌های پیشرفته +shared.interval=دوره +shared.actions=عملیات +shared.buyerUpperCase=خریدار +shared.sellerUpperCase=فروشنده #################################################################### # UI views @@ -212,9 +215,9 @@ mainView.menu.settings=تنظیمات mainView.menu.account=حساب mainView.menu.dao=DAO (موسسه خودمختار غیرمتمرکز) -mainView.marketPrice.provider=Price by -mainView.marketPrice.label=Market price -mainView.marketPriceWithProvider.label=Market price by {0} +mainView.marketPrice.provider=قیمت بر اساس +mainView.marketPrice.label=قیمت بازار +mainView.marketPriceWithProvider.label=قیمت بازار بر اساس {0} mainView.marketPrice.bisqInternalPrice=قیمت آخرین معامله‌ی Bisq mainView.marketPrice.tooltip.bisqInternalPrice=قیمت بازارهای خارجی موجود نیست.\nقیمت نمایش داده شده، از آخرین معامله‌ی Bisq برای ارز موردنظر اتخاذ شده است. mainView.marketPrice.tooltip=قیمت بازار توسط {0}{1} ارائه شده است\nآخرین به روز رسانی: {2}\nURL لینک Node ارائه دهنده: {3} @@ -222,8 +225,8 @@ mainView.marketPrice.tooltip.altcoinExtra=در صورتی که آلتکوین د mainView.balance.available=موجودی در دسترس mainView.balance.reserved=رزرو شده در پیشنهادها mainView.balance.locked=قفل شده در معاملات -mainView.balance.reserved.short=Reserved -mainView.balance.locked.short=Locked +mainView.balance.reserved.short=اندوخته +mainView.balance.locked.short=قفل شده mainView.footer.usingTor=(استفاده از Tor) mainView.footer.localhostBitcoinNode=(لوکال هاست) @@ -303,7 +306,7 @@ offerbook.offerersBankSeat=کشور بانک سفارش‌گذار: {0} offerbook.offerersAcceptedBankSeatsEuro=بانک‌های کشورهای پذیرفته شده (پذیرنده): تمام کشورهای یورو offerbook.offerersAcceptedBankSeats=بانک‌های کشورهای پذیرفته شده (پذیرنده): \n{0} offerbook.availableOffers=پیشنهادهای موجود -offerbook.filterByCurrency=Filter by currency +offerbook.filterByCurrency=فیلتر بر اساس ارز offerbook.filterByPaymentMethod=فیلتر بر اساس روش پرداخت offerbook.nrOffers=تعداد پیشنهادها: {0} @@ -360,7 +363,7 @@ createOffer.amountPriceBox.minAmountDescription=حداقل مقدار بیتکو createOffer.securityDeposit.prompt=سپرده‌ی اطمینان در بیتکوین createOffer.fundsBox.title=پیشنهاد خود را تامین وجه نمایید createOffer.fundsBox.offerFee=هزینه‌ی معامله -createOffer.fundsBox.networkFee=Mining fee +createOffer.fundsBox.networkFee=هرینه استخراج createOffer.fundsBox.placeOfferSpinnerInfo=انتشار پیشنهاد در حال انجام است ... createOffer.fundsBox.paymentLabel=معامله Bisq با شناسه‌ی {0} createOffer.fundsBox.fundsStructure=({0} سپرده‌ی اطمینان، {1} هزینه‌ی معامله، {2} هزینه‌ی تراکنش شبکه) @@ -373,8 +376,8 @@ createOffer.info.buyBelowMarketPrice=شما همیشه {0}% کمتر از نرخ createOffer.warning.sellBelowMarketPrice=شما همیشه {0}% کمتر از نرخ روز فعلی بازار دریافت خواهید کرد، زیرا قیمت پیشنهادتان به طور مداوم به روز رسانی خواهد شد. createOffer.warning.buyAboveMarketPrice=شما همیشه {0}% کمتر از نرخ روز فعلی بازار پرداخت خواهید کرد، زیرا قیمت پیشنهادتان به طور مداوم به روز رسانی خواهد شد. createOffer.tradeFee.descriptionBTCOnly=هزینه‌ی معامله -createOffer.tradeFee.descriptionBSQEnabled=Select trade fee currency -createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} of trade amount +createOffer.tradeFee.descriptionBSQEnabled=انتخاب ارز برای کارمزد معامله +createOffer.tradeFee.fiatAndPercent=≈ {1} / {0} از مبلغ معامله # new entries createOffer.placeOfferButton=بررسی: پیشنهاد را برای {0} بیتکوین بگذارید @@ -417,9 +420,9 @@ takeOffer.validation.amountLargerThanOfferAmount=مقدار ورودی نمی‌ takeOffer.validation.amountLargerThanOfferAmountMinusFee=مقدار ورودی، باعث ایجاد تغییر جزئی برای فروشنده بیتکوین می شود. takeOffer.fundsBox.title=معامله خود را تأمین وجه نمایید takeOffer.fundsBox.isOfferAvailable=بررسی کنید آیا پیشنهاد در دسترس است... -takeOffer.fundsBox.tradeAmount=Amount to sell +takeOffer.fundsBox.tradeAmount=مبلغ فروش takeOffer.fundsBox.offerFee=هزینه‌ی معامله -takeOffer.fundsBox.networkFee=Total mining fees +takeOffer.fundsBox.networkFee=کل هزینه استخراج takeOffer.fundsBox.takeOfferSpinnerInfo=برداشتن پیشنهاد در حال انجام است... takeOffer.fundsBox.paymentLabel=معامله Bisq با شناسه‌ی {0} takeOffer.fundsBox.fundsStructure=({0} سپرده‌ی اطمینان، {1} هزینه‌ی معامله، {2} هزینه تراکنش شبکه) @@ -511,9 +514,9 @@ portfolio.pending.step2_buyer.postal=لطفاً {0} را توسط \"US Postal Mo portfolio.pending.step2_buyer.bank=لطفاً به صفحه‌ی وبسایت بانکداری آنلاین خود رفته و {0} را فروشنده‌ی بیتکوین پرداخت کنید.\n\n portfolio.pending.step2_buyer.f2f=لطفا با استفاده از راه‌های ارتباطی ارائه شده توسط فروشنده با وی تماس بگیرید و قرار ملاقاتی را برای پرداخت {0} بیتکوین تنظیم کنید.\n portfolio.pending.step2_buyer.startPaymentUsing=آغاز پرداخت با استفاده از {0} -portfolio.pending.step2_buyer.amountToTransfer=Amount to transfer -portfolio.pending.step2_buyer.sellersAddress=Seller''s {0} address -portfolio.pending.step2_buyer.buyerAccount=Your payment account to be used +portfolio.pending.step2_buyer.amountToTransfer=مبلغ انتقال +portfolio.pending.step2_buyer.sellersAddress=آدرس {0} فروشنده +portfolio.pending.step2_buyer.buyerAccount=حساب پرداخت مورد استفاده portfolio.pending.step2_buyer.paymentStarted=پرداخت آغاز شد portfolio.pending.step2_buyer.warn=شما هنوز پرداخت {0} خود را انجام نداده‌اید.\nلطفاً توجه داشته باشید که معامله باید تا {1} تکمیل شود، در غیراینصورت معامله توسط داور مورد بررسی قرار خواهد گرفت. portfolio.pending.step2_buyer.openForDispute=شما پرداخت خود را تکمیل نکرده اید.\nحداکثر دوره‌ی زمانی برای معامله، به پایان رسیده است. \n\nلطفاً برای بازگشایی یک مناقشه، با داور تماس بگیرید. @@ -525,13 +528,13 @@ portfolio.pending.step2_buyer.westernUnionMTCNInfo.headline=MTCN و رسید ر portfolio.pending.step2_buyer.westernUnionMTCNInfo.msg=شما باید MTCN (شماره پیگیری) و یک عکس از رسید را با ایمیل به فروشنده‌ی بیتکوین ارسال نمایید.\nرسید باید به طور واضح نام کامل، کشور، ایالت فروشنده و مقدار را نشان دهد. ایمیل فروشنده: {0}.\n\nآیا MTCN و قرارداد را برای فروشنده فرستادید؟ portfolio.pending.step2_buyer.halCashInfo.headline=کد HalCash را بفرستید portfolio.pending.step2_buyer.halCashInfo.msg=باید کد HalCash و شناسه‌ی معامله ({0}) را به فروشنده بیتکوین پیامک بفرستید. شماره موبایل فروشنده بیتکوین {1} است. آیا کد را برای فروشنده فرستادید؟ -portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Some banks might require the receiver's name. The UK sort code and account number is sufficient for a Faster Payment transfer and the receivers name is not verified by any of the banks. +portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=بعضی از بانک‌ها ممکن است نیاز به نام دریافت کننده داشته باشند. کد ترتیب (sort) UK و شماره حساب برای انتقال سریع‌تر کفایت می‌کند و نام دریافت کننده صحت‌سنجی نمی‌شود. portfolio.pending.step2_buyer.confirmStart.headline=تأیید کنید که پرداخت را آغاز کرده‌اید portfolio.pending.step2_buyer.confirmStart.msg=آیا شما پرداخت {0} را به شریک معاملاتی خود آغاز کردید؟ portfolio.pending.step2_buyer.confirmStart.yes=بلی، پرداخت را آغاز کرده‌ام portfolio.pending.step2_seller.waitPayment.headline=برای پرداخت منتظر باشید -portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information +portfolio.pending.step2_seller.f2fInfo.headline=اطلاعات تماس خریدار portfolio.pending.step2_seller.waitPayment.msg=تراکنش سپرده، حداقل یک تأییدیه بلاکچین دارد.شما\nباید تا آغاز پرداخت {0} از جانب خریدار بیتکوین، صبر نمایید. portfolio.pending.step2_seller.warn=خریدار بیتکوین هنوز پرداخت {0} را انجام نداده است.\nشما باید تا آغاز پرداخت از جانب او، صبر نمایید.\nاگر معامله روی {1} تکمیل نشده است، داور بررسی خواهد کرد. portfolio.pending.step2_seller.openForDispute=خریدار بیتکوین پرداخت خود را آغاز نکرده است.\nحداکثر دوره‌ی زمانی مجاز برای معامله به پایان رسیده است.\nشما می توانید بیشتر صبر کرده و به همتای معامله زمان بیشتری بدهید یا برای بازگشایی یک مناقشه، با داور تماس بگیرید. @@ -551,19 +554,19 @@ message.state.FAILED=ارسال پیام ناموفق بود portfolio.pending.step3_buyer.wait.headline=برای تأییدیه‌ی پرداخت فروشنده‌ی بیتکوین منتظر باشید portfolio.pending.step3_buyer.wait.info=برای تأییدیه رسید پرداخت {0} از جانب فروشنده‌ی بیتکوین، منتظر باشید -portfolio.pending.step3_buyer.wait.msgStateInfo.label=Payment started message status +portfolio.pending.step3_buyer.wait.msgStateInfo.label=وضعیت پیام پرداخت آغاز شد portfolio.pending.step3_buyer.warn.part1a=بر بلاکچین {0} portfolio.pending.step3_buyer.warn.part1b=در ارائه دهنده‌ی پرداخت شما (برای مثال بانک) portfolio.pending.step3_buyer.warn.part2=فروشنده‌ی بیتکوین هنوز پرداخت شما را تأیید نکرده است.\nلطفاً {0} را بررسی کنید اگر ارسال پرداخت موفقیت آمیز بوده است.\nاگر فروشنده‌ی بیتکوین رسید پرداخت شما را تا {1} تأیید نکند، معامله توسط داور مورد بررسی قرار خواهد گرفت. portfolio.pending.step3_buyer.openForDispute=فروشنده‌ی بیتکوین هنوز پرداخت شما را تأیید نکرده است.\nحداکثر دوره‌ی زمانی مجاز برای معامله به پایان رسیده است.\nشما می‌توانید بیشتر صبر کرده و به همتای معامله زمان بیشتری بدهید یا برای بازگشایی یک مناقشه، با داور تماس بگیرید. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.part=شریک معاملاتی شما تأیید کرده که پرداخت {0} را آغاز نموده است.\n\n -portfolio.pending.step3_seller.altcoin.explorer=on your favorite {0} blockchain explorer -portfolio.pending.step3_seller.altcoin.wallet=at your {0} wallet -portfolio.pending.step3_seller.altcoin={0}Please check {1} if the transaction to your receiving address\n{2}\nhas already sufficient blockchain confirmations.\nThe payment amount has to be {3}\n\nYou can copy & paste your {4} address from the main screen after closing that popup. +portfolio.pending.step3_seller.altcoin.explorer=در کاوشگر بلاکچین محبوبتان {0} +portfolio.pending.step3_seller.altcoin.wallet=در والت {0} شما +portfolio.pending.step3_seller.altcoin={0} لطفا بررسی کنید {1} که آیا تراکنش مربوط به آدرس شما\n{2}\n تعداد تاییدیه‌های کافی بر روی بلاکچین دریافت کرده است یا خیر.\nمبلغ پرداخت باید {3} باشد\nشما می‌توانید آدرس {4} خود را پس از بستن پنجره از صفحه اصلی کپی کنید. portfolio.pending.step3_seller.postal={0}لطفاً بررسی کنید که آیا {1} را با \"US Postal Money Order\" از خریدار بیتکوین دریافت کرده‌اید یا خیر.\n\nشناسه معامله (متن \"دلیل پرداخت\") تراکنش: \"{2}\" portfolio.pending.step3_seller.bank=شریک معاملاتی شما تأیید کرده که پرداخت {0} را آغاز نموده است.\n\nلطفاً به صفحه‌ی وبسایت بانکداری آنلاین خود رفته و بررسی کنید که آیا {1} را از خریدار بیتکوین دریافته کرده‌اید یا خیر.\n\nشناسه معامله (متن \"دلیل پرداخت\") تراکنش: \"{2}\"\n\n -portfolio.pending.step3_seller.cash=Because the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\nTo avoid chargeback risk, only confirm if you received the email and if you are sure the paper receipt is valid.\nIf you are not sure, {0} +portfolio.pending.step3_seller.cash=چون پرداخت از طریق سپرده‌ی نقدی انجام شده است، خریدار BTC باید عبارت \"غیر قابل استرداد\" را روی رسید کاغذی بنویسد، آن را به 2 قسمت پاره کند و از طریق ایمیل به شما یک عکس ارسال کند.\n\nبه منظور اجتناب از استرداد وجه، تنها در صورتی تایید کنید که ایمیل را دریافت کرده باشید و از صحت رسید کاغذی مطمئن باشید.\nاگر مطمئن نیستید، {0} portfolio.pending.step3_seller.moneyGram=خریدار باید شماره مجوز و عکسی از رسید را به ایمیل شما ارسال کند.\nرسید باید به طور واضح نام کامل شما ، کشور، ایالت فروشنده و مقدار را نشان دهد. لطفاً ایمیل خود را بررسی کنید که آیا شماره مجوز را دریافت کرده‌اید یا خیر.\n\nپس از بستن پنجره، نام و آدرس خریدار بیتکوین را برای برداشت پول از مانی‌گرام خواهید دید.\n\nتنها پس از برداشت موفقیت آمیز پول، رسید را تأیید کنید! portfolio.pending.step3_seller.westernUnion=خریدار باید MTCN (شماره پیگیری) و عکسی از رسید را به ایمیل شما ارسال کند.\nرسید باید به طور واضح نام کامل شما، کشور، ایالت فروشنده و مقدار را نشان دهد. لطفاً ایمیل خود را بررسی کنید که آیا MTCN را دریافت کرده اید یا خیر.\nپس از بستن پنجره، نام و آدرس خریدار بیتکوین را برای برداشت پول از Western Union خواهید دید.\nتنها پس از برداشت موفقیت آمیز پول، رسید را تأیید کنید! portfolio.pending.step3_seller.halCash=خریدار باید کد HalCash را برای شما با پیامک بفرستد. علاه‌برآن شما از HalCash پیامی را محتوی اطلاعات موردنیاز برای برداشت EUR از خودپردازهای پشتیبان HalCash دریافت خواهید کرد.\n\nپس از اینکه پول را از دستگاه خودپرداز دریافت کردید، لطفا در اینجا رسید پرداخت را تایید کنید. @@ -571,11 +574,11 @@ portfolio.pending.step3_seller.halCash=خریدار باید کد HalCash را portfolio.pending.step3_seller.bankCheck=\n\nلطفاً همچنین تأیید کنید که نام فرستنده در اظهارنامه بانک شما، با نام فرستنده در قرارداد معامله مطابقت دارد:\nنام فرستنده: {0}\nاگر نام مذکور همان نامی نیست که در اینجا نشان داده شده است، {1} portfolio.pending.step3_seller.openDispute=لطفاً تأیید نکنید بلکه یک مناقشه را با وارد کردن \"alt + o\" یا \"option + o\" باز کنید. portfolio.pending.step3_seller.confirmPaymentReceipt=تأیید رسید پرداخت -portfolio.pending.step3_seller.amountToReceive=Amount to receive -portfolio.pending.step3_seller.yourAddress=Your {0} address -portfolio.pending.step3_seller.buyersAddress=Buyers {0} address -portfolio.pending.step3_seller.yourAccount=Your trading account -portfolio.pending.step3_seller.buyersAccount=Buyers trading account +portfolio.pending.step3_seller.amountToReceive=مبلغ قابل دریافت +portfolio.pending.step3_seller.yourAddress=آدرس {0} شما +portfolio.pending.step3_seller.buyersAddress=آدرس {0} خریدار +portfolio.pending.step3_seller.yourAccount=حساب معاملاتی شما +portfolio.pending.step3_seller.buyersAccount=حساب معاملاتی خریدار portfolio.pending.step3_seller.confirmReceipt=تأیید رسید پرداخت portfolio.pending.step3_seller.buyerStartedPayment=خریدار بیتکوین پرداخت {0} را آغاز کرده است.\n{1} portfolio.pending.step3_seller.buyerStartedPayment.altcoin=تأییدیه‌های بلاکچین را در کیف پول آلتکوین خود یا بلاکچین اکسپلورر بررسی کنید و هنگامی که تأییدیه های بلاکچین کافی دارید، پرداخت را تأیید کنید. @@ -596,12 +599,12 @@ portfolio.pending.step3_seller.onPaymentReceived.confirm.yes=بله وجه را portfolio.pending.step5_buyer.groupTitle=خلاصه‌ای از معامله‌ی کامل شده portfolio.pending.step5_buyer.tradeFee=هزینه‌ی معامله -portfolio.pending.step5_buyer.makersMiningFee=Mining fee -portfolio.pending.step5_buyer.takersMiningFee=Total mining fees -portfolio.pending.step5_buyer.refunded=Refunded security deposit +portfolio.pending.step5_buyer.makersMiningFee=هرینه استخراج +portfolio.pending.step5_buyer.takersMiningFee=کل هزینه استخراج +portfolio.pending.step5_buyer.refunded=سپرده اطمینان مسترد شده portfolio.pending.step5_buyer.withdrawBTC=برداشت بیتکوین شما -portfolio.pending.step5_buyer.amount=Amount to withdraw -portfolio.pending.step5_buyer.withdrawToAddress=Withdraw to address +portfolio.pending.step5_buyer.amount=مبلغ قابل برداشت +portfolio.pending.step5_buyer.withdrawToAddress=برداشت به آدرس portfolio.pending.step5_buyer.moveToBisqWallet=انتقال وجوه به کیف پول Bisq portfolio.pending.step5_buyer.withdrawExternal=برداشت به کیف پول خارجی portfolio.pending.step5_buyer.alreadyWithdrawn=وجوه شما در حال حاضر برداشت شده است.\nلطفاً تاریخچه‌ی تراکنش را بررسی کنید. @@ -609,11 +612,11 @@ portfolio.pending.step5_buyer.confirmWithdrawal=تأیید درخواست برد portfolio.pending.step5_buyer.amountTooLow=مقدار مورد انتقال کمتر از هزینه تراکنش و حداقل ارزش tx (dust) است. portfolio.pending.step5_buyer.withdrawalCompleted.headline=برداشت تکمیل شد portfolio.pending.step5_buyer.withdrawalCompleted.msg=معاملات تکمیل شده‌ی شما در \"سبد سهام/تاریخچه\" ذخیره شده است.\nشما میتوانید تمام تراکنش‌های بیتکوین خود را در \"وجوه/تراکنش‌ها\" مرور کنید. -portfolio.pending.step5_buyer.bought=You have bought -portfolio.pending.step5_buyer.paid=You have paid +portfolio.pending.step5_buyer.bought=شما خریده‌اید +portfolio.pending.step5_buyer.paid=شما پرداخت کرده‌اید -portfolio.pending.step5_seller.sold=You have sold -portfolio.pending.step5_seller.received=You have received +portfolio.pending.step5_seller.sold=شما فروخته‌اید +portfolio.pending.step5_seller.received=شما دریافت کرده‌اید tradeFeedbackWindow.title=تبریک، معامله شما کامل شد. tradeFeedbackWindow.msg.part1=دوست داریم تجربه شما را بشنویم. این امر به ما کمک می کند تا نرم افزار را بهبود بخشیم و مشکلات را حل کنیم. اگر می خواهید بازخوردی ارائه کنید، لطفا این نظرسنجی کوتاه (بدون نیاز به ثبت نام) را در زیر پر کنید: @@ -649,7 +652,7 @@ portfolio.pending.removeFailedTrade=اگر داور نتواند آن معامل portfolio.closed.completed=تکمیل شده portfolio.closed.ticketClosed=تیکت بسته شده است portfolio.closed.canceled=لغو شده است -portfolio.failed.Failed=ناموفق +portfolio.failed.ناموفق=ناموفق #################################################################### @@ -667,7 +670,7 @@ funds.deposit.usedInTx=مورد استفاده در تراکنش (های) {0} funds.deposit.fundBisqWallet=تأمین مالی کیف پول Bisq  funds.deposit.noAddresses=آدرس‌هایی برای سپرده ایجاد نشده است funds.deposit.fundWallet=تأمین مالی کیف پول شما -funds.deposit.withdrawFromWallet=Send funds from wallet +funds.deposit.withdrawFromWallet=ارسال وجه از کیف‌پول funds.deposit.amount=Amount in BTC (optional) funds.deposit.generateAddress=ایجاد آدرس جدید funds.deposit.selectUnused=لطفاً به جای ایجاد یک آدرس جدید، یک آدرس استفاده نشده را از جدول بالا انتخاب کنید. @@ -681,7 +684,7 @@ funds.withdrawal.senderAmount=مقدار فرستنده funds.withdrawal.feeExcluded=این مبلغ کارمزد تراکنش در شبکه را شامل نمی‌شود funds.withdrawal.feeIncluded=این مبلغ کارمزد تراکنش در شبکه را شامل می‌شود funds.withdrawal.fromLabel=Withdraw from address -funds.withdrawal.toLabel=Withdraw to address +funds.withdrawal.toLabel=برداشت به آدرس funds.withdrawal.withdrawButton=برداشت انتخاب شد funds.withdrawal.noFundsAvailable=وجهی برای برداشت وجود ندارد funds.withdrawal.confirmWithdrawalRequest=تأیید درخواست برداشت @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=هیچ تراکنشی موجود نیست funds.tx.revert=عودت funds.tx.txSent=تراکنش به طور موفقیت آمیز به یک آدرس جدید در کیف پول محلی Bisq ارسال شد. funds.tx.direction.self=ارسال شده به خودتان -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=درخواست خسارت @@ -762,9 +765,9 @@ support.buyerOfferer=خریدار/سفارش گذار بیتکوین support.sellerOfferer=فروشنده/سفارش گذار بیتکوین support.buyerTaker=خریدار/پذیرنده‌ی بیتکوین support.sellerTaker=فروشنده/پذیرنده‌ی بیتکوین -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=لطفاً به قوانین مهم برای فرآیند مناقشه توجه داشته باشید:\n1. شما باید ظرف مدت 2 روز به درخواست‌های داور پاسخ دهید.\n2. حداکثر دوره‌ی زمانی برای مناقشه 14 روز است.\n3. شما باید با تحویل شواهد خودتان، آنچه را که داور درخواست می‌کند برآورده سازید.\n4. اولین بار که استفاده از نرم افزار را شروع کردید، قوانین مشخص شده در ویکی در موافقتنامه‌ی کاربر را پذیرفتید.\n\nلطفاً جزئیات بیشتر درباره‌ی فرآیند مناقشه را در ویکی ما بخوانید:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=پیغام سیستم: {0} support.youOpenedTicket=درخواستی برای پشتیبانی باز کردید. support.youOpenedDispute=درخواستی برای مناقشه باز کردید.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio= استفاده از نودهای بیتکوی settings.net.warn.usePublicNodes=اگر از شبکه عمومی بیتکوین استفاده می‌کنید، حریم خصوصی شما در معرض نودهای شبکه بیتکوین قرار می‌گیرد. این نقص ناشی از طراحی و پیاده‌سازی معیوب تکنولوژی Bloom Filter است که در کیف پول های SPV مانند BitcoinJ (که در Bisq هم استفاده می‌شود) وجود دارد. هر نود کامل بیتکوین که به آن متصل باشید می‌تواند هویت شما را با آدرس‌های کیف‌پول‌شما مرتبط بداند و این می‌تواند باعث برملا شدن هویت شما به نودهای شبکه بیتکوین شود.\nلطفاً جزئیات بیشتر را در این لینک بخوانید: https://bisq.network/blog/privacy-in-bitsquare.\n\nآیا مطمئن هستید که می‌خواهید از نودهای عمومی استفاده کنید؟ settings.net.warn.usePublicNodes.useProvided=خیر، از نودهای فراهم شده استفاده کنید. settings.net.warn.usePublicNodes.usePublic=بلی، از شبکه عمومی استفاده کنید. -settings.net.warn.useCustomNodes.B2XWarning=لطفاً مطمئن شوید که نود بیتکوین شما، یک نود بیتکوین مورد اعتماد است!\n\nارتباط با نودهایی که از قوانین اجماع بیتکوین استفاده نمی‌کنند، می‌تواند کیف‌پول شما را دچار مشکل کرده و منجر به اختلال در فرآیند معامله شود.\n\nکاربرانی که به نودهای ناقض قوانین اجماع بیتکوین متصل می شوند، مسئول هرگونه آسیب ایجاد شده توسط آن نود هستند. مناقشات ایجاد شده توسط آن به نفع همتای دیگر، تصمیم گیری می‌شوند. هیچ پشتیبانی فنی به کاربرانی که سازوکارهای محافظت و هشدار ما را نادیده می‌گیرند، اعطا نمی‌شود! -settings.net.localhostBtcNodeInfo=(اطلاعات پیش زمینه: اگر شما یک نود لوکال بیتکوین (لوکال هاست) را اجرا می‌کنید، به طور انحصاری به آن متصل می‌شوید.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=آدرس Onion settings.net.creationDateColumn=تثبیت شده @@ -857,17 +860,17 @@ settings.net.inbound=وارد شونده settings.net.outbound=خارج شونده settings.net.reSyncSPVChainLabel=همگام سازی مجدد زنجیره SPV  settings.net.reSyncSPVChainButton=حذف فایل SPV  و همگام سازی مجدد -settings.net.reSyncSPVSuccess=در راه اندازی بعدی، فایل زنجیره SPV حذف خواهد شد. شما باید نرم افزار را الآن مجدداً راه اندازی کنید.\n\nبعد از راه اندازی مجدد، همگام سازی با شبکه کمی طول می کشد و هنگامی که همگام سازی مجدد تکمیل شد،شما فقط تمام تراکنش ها را خواهید دید.\n\nلطفاً پس از تکمیل همگام سازی مجدد، برنامه را باز هم راه اندازی مجدد کنید زیرا گاهی اوقات ناهماهنگی هایی وجود دارد که منجر به نمایش نادرست تراز می شود. -settings.net.reSyncSPVAfterRestart=فایل زنجیره SPV حذف شده است. لطفاً صبور باشید، همگام سازی مجدد با شبکه کمی طول خواهد کشید. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=همگام سازی مجدد هم اکنون تکمیل شده است. لطفاً برنامه را مجدداً راه اندازی نمایید. settings.net.reSyncSPVFailed=حذف فایل زنجیره SPV امکان پذیر نیست. \nخطا: {0} setting.about.aboutBisq=درباره Bisq -setting.about.about=Bisq یک پروژه منبع باز و یک شبکه غیر متمرکز از کاربرانی است که می خواهند بیتکوین را با ارزهای ملی یا ارزهای رمزگزاری شده جایگزین به روشی امن تبادل کنند. در صفحه وب پروژه ی ما، درباره Bisq بیشتر یاد بگیرید. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=صفحه وب Bisq setting.about.code=کد منبع setting.about.agpl=مجوز AGPL setting.about.support=پشتیبانی از Bisq -setting.about.def=Bisq یک شرکت نیست، بلکه یک پروژه اجتماعی است و برای مشارکت آزاد است. اگر می خواهید در آن مشارکت کنید یا از آن پشتیبانی نمایید، لینک های زیر را دنبال کنید. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=مشارکت setting.about.donate=اهدا setting.about.providers=ارائه دهندگان داده @@ -889,7 +892,7 @@ setting.about.subsystems.val=نسخه ی شبکه: {0}; نسخه ی پیام ه account.tab.arbitratorRegistration=ثبت نام داور account.tab.account=حساب account.info.headline=به حساب Bisq خود خوش آمدید -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=حساب های ارز ملی account.menu.altCoinsAccountView=حساب های آلت کوین @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=ثبت نام داور account.arbitratorRegistration.revoke=لغو ثبت نام -account.arbitratorRegistration.info.msg=لطفاً توجه داشته باشید که شما باید برای 15 روز پس از لغو کردن دردسترس باشید زیرا ممکن است معاملاتی وجود داشته باشند که از شما به عنوان داور استفاده می کنند. حداکثر دوره زمانی معامله مجاز 8 روز است و فرآیند مناقشه ممکن است تا 7 روز طول بکشد. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=شما باید حداقل 1 زبان را انتخاب کنید.\nما زبان پیشفرض را برای شما اضافه کردیم. account.arbitratorRegistration.removedSuccess=شما با موفقیت داورتان را از شبکه ی P2P حذف کردید. account.arbitratorRegistration.removedFailed=حذف داور امکانپذیر نیست.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=شما می توانید داورانی را account.arbitratorSelection.minOne=شما باید حداقل یک داور را انتخاب کنید. account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=لطفا مطمئن شوید که الزامات استفاده از کیف پول {0} را همان طور که در صفحه {1} شرح داده شده است، پیروی می کنید.\nاستفاده از کیف پول مبادلات متمرکز که در آن کلید های خود را تحت کنترل ندارید و یا استفاده از یک نرم افزار کیف پول ناسازگار می تواند منجر به از دست رفتن وجوه معامله شده شود!\nداور یک متخصص {2} نیست و در چنین مواردی نمی تواند کمک کند. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=من می فهمم و تأیید می کنم که می دانم از کدام کیف پول باید استفاده کنم. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=حذف رمز account.password.removePw.headline=حذف رمز محافظ برای کیف پول account.password.setPw.button=تنظیم رمز account.password.setPw.headline=تنظیم رمز محافظ برای کیف پول -account.password.info=با محافظت رمزی شما باید کل رمز خودتان را هنگام برداشت بیتکوین از کیف پول یا هنگام مشاهده یا استرداد یک کیف پول از کلمات رمز خصوصی و همچنین در راه اندازی برنامه وارد کنید. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=پشتیبان گیری از کلمات رمز خصوصی کیف های پول شما -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=شما یک رمز عبور کیف پول تنظیم نکرده اید که از نمایش کلمات رمز خصوصی محافظت کند.\n\nآیا می خواهید کلمات رمز خصوصی نشان داده شود؟ account.seed.warn.noPw.yes=بلی، و دوباره از من نپرس account.seed.enterPw=وارد کردن رمز عبور به منظور مشاهده ی کلمات رمز خصوصی -account.seed.restore.info=لطفاً توجه داشته باشید که نمی توانید یک کیف پول را از نسخه ی قدیمی Bisq (هر نسخه ی قبل از 0.5.0) وارد کنید، چون قالب کیف پول تغییر کرده است!\n\nاگر شما می خواهید وجوه را از نسخه ی قدیمی به نسخه ی جدید برنامه ی Bisq منتقل کنید، آن را با یک تراکنش بیتکوین بفرستید.\n\nهمچنین آگاه باشید که بازگردانی کیف پول تنها برای موارد اضطراری است و شاید منجر به مشکلاتی با پایگاه داده داخلی کیف پول شود.\nاین یک راه برای استفاده از پشتیبان نیست! لطفاً برای بازگرداندن حالت قبلی برنامه از یک پشتیبان از راهنما داده برنامه استفاده کنید. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=خوب، من می فهمم و می خواهم بازگردانی کنم @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=نوع پیشنهاد dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=حذف dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=ارسال وجوه BSQ  dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=تأیید درخواست برداشت dao.wallet.send.sendFunds.details=در حال ارسال: {0} به آدرس گیرنده ی: {1} . \nهزینه لازم برای معامله عبارت است از: {2} ({3} ساتوشی/ بایت)\nاندازه تراکنش: {4} کیلوبایت\n\n دریافت کننده {5} دریافت خواهد کرد\n\n آیا شما مطمئن هستید که می خواهید این مبلغ را برداشت کنید؟ -dao.wallet.chainHeightSynced=همگام شده تا بلاک: {0} (آخرین بلوک: {1}) -dao.wallet.chainHeightSyncing=بلاک همگام شده: {0} (آخرین بلوک: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=نوع # suppress inspection "UnusedProperty" @@ -1690,7 +1695,7 @@ tacWindow.arbitrationSystem=سیستم داوری tradeDetailsWindow.headline=معامله tradeDetailsWindow.disputedPayoutTxId=شناسه تراکنش پرداختی مورد مناقشه: tradeDetailsWindow.tradeDate=تاریخ معامله -tradeDetailsWindow.txFee=Mining fee +tradeDetailsWindow.txFee=هرینه استخراج tradeDetailsWindow.tradingPeersOnion=آدرس Onion همتایان معامله: tradeDetailsWindow.tradeState=Trade state @@ -1741,7 +1746,7 @@ popup.headline.error=خطا popup.doNotShowAgain=دوباره نشان نده popup.reportError.log=باز کردن فایل گزارش popup.reportError.gitHub=گزارش به پیگیر مسائل GitHub  -popup.reportError={0}\n\nبرای کمک به ما در بهبود برنامه، لطفا اشکال را به پیگیر مسئله ی ما در GitHub گزارش کنید (https://github.com/bisq-network/bisq-desktop/issues).\nوقتی روی دکمه های زیر کلیک کنید، پیغام خطا در حافظه ی موقتی رونوشت خواهد شد.\nاگر شما بتوانید فایل bisq.log را هم ضمیمه کنید، رفع اشکال آسان تر خواهد شد. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=لطفاً سعی کنید برنامه را مجدداً راه اندازی کنید و اتصال شبکه خود را بررسی کنید تا ببینید آیا می توانید مشکل را حل کنید یا خیر. popup.error.takeOfferRequestFailed=وقتی کسی تلاش کرد تا یکی از پیشنهادات شما را بپذیرد خطایی رخ داد:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=یکی از گره های {0} مسدود شده است. popup.warning.priceRelay=رله قیمت popup.warning.seed=دانه -popup.info.securityDepositInfo=برای اطمینان از این که هر دو معامله گر از پروتکل معامله پیروی می کنند، آنها باید مبلغ سپرده اطمینان را پرداخت کنند. \n\nسپرده در کیف پول معاملاتی محلی شما باقی خواهد ماند تا زمانی که پیشنهاد توسط معامله گر دیگر پذیرفته شد.\nپس از این که معامله با موفقیت انجام شد، بازپرداخت به شما انجام خواهد شد.\n\nلطفا توجه داشته باشید که اگر شما یک پیشنهاد باز کنید، باید برنامه خود را در حال اجرا نگاه دارید. هنگامی که یک معامله گر دیگر بخواهد پیشنهاد شما را بپذیرد، باید برنامه ی شما برای اجرا پروتکل معامله، آنلاین باشد.\n مطمئن شوید که حالت آماده به کار غیرفعال شده است، زیرا شبکه را قطع خواهد کرد (حالت آماده به کار مانیتور مشکلی ندارد). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=لطفا مطمئن شوید که شما یک شعبه بانک در منطقه خود دارید تا بتوانید سپرده نقدی را بپردازید. شناسه بانکی (BIC/SWIFT) بانک فروشنده: {0}. popup.info.cashDepositInfo.confirm=تأیید می کنم که می توانم سپرده را ایجاد کنم diff --git a/core/src/main/resources/i18n/displayStrings_fr.properties b/core/src/main/resources/i18n/displayStrings_fr.properties index ae5205124a..4c04a5dd39 100644 --- a/core/src/main/resources/i18n/displayStrings_fr.properties +++ b/core/src/main/resources/i18n/displayStrings_fr.properties @@ -64,7 +64,6 @@ shared.fixedPriceInCurForCur=Prix fixé en {0} pour {1} shared.amount=Montant shared.amountWithCur=Montant en {0} shared.volumeWithCur=Volume en {0} -shared.sumWithCur=Somme en {0} shared.currency=Monnaie shared.market=Marché shared.paymentMethod=Méthode de paiement @@ -86,8 +85,6 @@ shared.acceptedBanks=Banques acceptées shared.amountMinMax=Montant (min-max) shared.amountHelp=Si une offre mentionne un montant minimal et maximal, alors vous pouvez fixer n'importe quel montant dans cette fourchette. shared.remove=Enlever -shared.deactivate=Désactiver -shared.activate=Activer shared.goTo=Aller à {0} shared.BTCMinMax=BTC (min - max) shared.removeOffer=Retirer l'offre @@ -121,7 +118,7 @@ shared.arbitratorsFee=Frais d'arbitrage shared.noDetailsAvailable=Pas de détails disponibles shared.notUsedYet=Pas encore utilisé shared.date=Date -shared.sendFundsDetailsWithFee=Sending: {0}\nFrom address: {1}\nTo receiving address: {2}.\nRequired transaction fee is: {3} ({4} satoshis/byte)\nTransaction size: {5} Kb\n\nThe recipient will receive: {6}\n\nAre you sure you want to withdraw that amount? +shared.sendFundsDetailsWithFee=Envoi: {0}\nDepuis l'adresse: {1}\nÀ l'adresse de réception: {2}\nFrais de transaction requis: {3} ({4} satoshis/byte)\nVolume de transaction: {5} Kb\n\nLe destinataire recevra: {6}\n\nÊtes-vous sûr de vouloir retirer ce montant? shared.copyToClipboard=Copier dans le presse-papiers shared.language=Langue shared.country=Pays @@ -140,18 +137,13 @@ shared.saveNewAccount=Enregistrer un nouveau compte shared.selectedAccount=Sélectionner un compte shared.deleteAccount=Supprimer le compte shared.errorMessageInline=\nMessage d'erreur: {0} -shared.errorMessage=Message d'erreur: +shared.errorMessage=Message d'erreur shared.information=Information shared.name=Nom shared.id=ID shared.dashboard=Tableau de bord shared.accept=Accepter -shared.decline=Décliner -shared.reset=Revenir aux reglages par défaut -shared.myVote=Voter -shared.parameters=Paramètres shared.balance=Balance -share.history=Historique shared.save=Sauvegarder shared.onionAddress=Adresse Onion shared.supportTicket=Ticket de support @@ -160,19 +152,19 @@ shared.seller=vendeur shared.buyer=acheteur shared.allEuroCountries=Tous les pays Euro shared.acceptedTakerCountries=Liste de pays d'origine acceptés -shared.arbitrator=arbitre sélectionné: +shared.arbitrator=Arbitre sélectionné shared.tradePrice=Cours shared.tradeAmount=Montant d'échange shared.tradeVolume=Volume d'échange shared.invalidKey=La clé renseignée n'est pas correcte. -shared.enterPrivKey=Renseignez la clé privée pour déverrouiller: -shared.makerFeeTxId=ID transaction maker : -shared.takerFeeTxId=ID transaction taker : -shared.payoutTxId=Frais de remboursement : -shared.contractAsJson=Contrat au format JSON: +shared.enterPrivKey=Renseignez la clé privée pour déverrouiller +shared.makerFeeTxId=ID de transaction frais teneur +shared.takerFeeTxId=ID de transaction frais preneur +shared.payoutTxId=ID de transaction paiement +shared.contractAsJson=Contrat au format JSON shared.viewContractAsJson=Voir le contrat en format JSON shared.contract.title=Contrat pour la transaction avec l'ID : {0} -shared.paymentDetails=Détails du paiement BTC {0}: +shared.paymentDetails=Détails du paiement BTC {0} shared.securityDeposit=Dépôt de garantie shared.yourSecurityDeposit=Votre dépôt de garantie shared.contract=Contrat @@ -180,27 +172,30 @@ shared.messageArrived=Message reçu. shared.messageStoredInMailbox=Message stocké dans la boîte de réception. shared.messageSendingFailed=Échec de l'envoi du message. Erreur: {0} shared.unlock=Déverrouiller -shared.toReceive=à recevoir: -shared.toSpend=à dépenser: +shared.toReceive=à recevoir +shared.toSpend=à dépenser shared.btcAmount=Montant BTC -shared.yourLanguage=Vos langues: +shared.yourLanguage=Vos langues shared.addLanguage=Ajouter une langue shared.total=Total -shared.totalsNeeded=Fonds nécessaires: -shared.tradeWalletAddress=Adresse du portefeuille d'échange: -shared.tradeWalletBalance=Balance du portefeuille d'échange: -shared.volume=Volume -shared.makerTxFee=Maker: {0} -shared.takerTxFee=Taker: {0} -shared.securityDepositBox.description=Security deposit for BTC {0} +shared.totalsNeeded=Fonds nécessaires +shared.tradeWalletAddress=Adresse du portefeuille d'échange +shared.tradeWalletBalance=Solde du portefeuille d'échange +shared.makerTxFee=Teneur: {0} +shared.takerTxFee=Preneur: {0} +shared.securityDepositBox.description=Dépôt de garantie en BTC {0} shared.iConfirm=Je confirme -shared.tradingFeeInBsqInfo=equivalent to {0} used as mining fee -dao.paidWithBsq=payé en BSQ -dao.availableBsqBalance=Balance BSQ disponible -dao.unverifiedBsqBalance=Balance BSQ non-vérifiée -dao.lockedForVoteBalance=Locked for voting -dao.totalBsqBalance=Total balance BSQ - +shared.tradingFeeInBsqInfo=correspond à {0} utilisés comme frais de minage +shared.openURL=Ouvert {0} +shared.fiat=Fiat +shared.crypto=Crypto +shared.all=Tout +shared.edit=Modifier +shared.advancedOptions=Options avancées +shared.interval=Intervalle +shared.actions=Actions +shared.buyerUpperCase=Acheteur +shared.sellerUpperCase=Vendeur #################################################################### # UI views @@ -220,7 +215,9 @@ mainView.menu.settings=Paramètres mainView.menu.account=Compte mainView.menu.dao=DAO -mainView.marketPrice.provider=Cours de marché fourni par: +mainView.marketPrice.provider=Prix par +mainView.marketPrice.label=Prix du marché +mainView.marketPriceWithProvider.label=Prix du marché par {0} mainView.marketPrice.bisqInternalPrice=Cours de la dernière transaction Bisq mainView.marketPrice.tooltip.bisqInternalPrice=Il n'y a pas de cours de marché disponible depuis une source externe.\nLe cours affiché est le cours de la dernière transaction Bisq pour cette monnaie. mainView.marketPrice.tooltip=Le prix de marché est fourni par {0}{1}\nMis à jour: {2}\nURL du noeud: {3} @@ -228,6 +225,8 @@ mainView.marketPrice.tooltip.altcoinExtra=Si l'altcoin n'est pas disponible chez mainView.balance.available=Balance disponible mainView.balance.reserved=Offres réservées mainView.balance.locked=Transactions verrouillées +mainView.balance.reserved.short=Réservé +mainView.balance.locked.short=Vérouillé mainView.footer.usingTor=(utilisant Tor) mainView.footer.localhostBitcoinNode=Ordinateur local @@ -254,7 +253,7 @@ mainView.walletServiceErrorMsg.timeout=Délai expiré : échec de la connexion a mainView.walletServiceErrorMsg.connectionError=Erreur: {0} : échec de la connexion au réseau Bitcoin. mainView.networkWarning.allConnectionsLost=Votre connexion à tous les {0} pairs de réseau a été perdue.\nVous avez peut-être perdu la connexion à internet ou votre ordinateur est passé en mode veille. -mainView.networkWarning.localhostBitcoinLost=You lost the connection to the localhost Bitcoin node.\nPlease restart the Bisq application to connect to other Bitcoin nodes or restart the localhost Bitcoin node. +mainView.networkWarning.localhostBitcoinLost=Votre connexion au noeud Bitcoin localhost est perdue. Veuillez s'il vous plaît redémarrer l'application Bisq pour vous connecter à d'autres noeuds Bitcoin, ou relancer le noeud Bitcoin localhost. mainView.version.update=(Mise à jour disponible) @@ -307,7 +306,7 @@ offerbook.offerersBankSeat=Pays du siège de la banque du maker : {0} offerbook.offerersAcceptedBankSeatsEuro=Pays acceptés pour le siège de banque (taker): Zone Euro offerbook.offerersAcceptedBankSeats=Pays acceptés pour le siège de la banque (taker):\n{0} offerbook.availableOffers=Offres disponibles -offerbook.filterByCurrency=Filtrer par devise: +offerbook.filterByCurrency=Filtrer par monnaie offerbook.filterByPaymentMethod=Filtrer par méthode de paiement offerbook.nrOffers=No. d'offres: {0} @@ -317,14 +316,13 @@ offerbook.createOfferTo=Créer une nouvelle offre pour {0} {1} # postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH offerbook.buyWithOtherCurrency=avec {0} offerbook.sellForOtherCurrency=pour {0} -offerbook.wantTo=Je veux: offerbook.takeOfferButton.tooltip=Prendre une offre pour {0} offerbook.yesCreateOffer=Oui, créer une offre offerbook.setupNewAccount=Configurer un nouveau compte de change offerbook.removeOffer.success=L'offre a bien été retirée. offerbook.removeOffer.failed=La suppression de l'offre a échoué : {0} -offerbook.deactivateOffer.failed=Deactivating of offer failed:\n{0} -offerbook.activateOffer.failed=Publishing of offer failed:\n{0} +offerbook.deactivateOffer.failed=Masquage des offres invalidées:\n{0} +offerbook.activateOffer.failed=Affichage des offres invalidées:\n{0} offerbook.withdrawFundsHint=Vous pouvez retirer les fonds investis depuis le {0} écran. offerbook.warning.noTradingAccountForCurrency.headline=Aucun compte de trading sélectionné pour cette devise @@ -334,20 +332,22 @@ offerbook.warning.noMatchingAccount.msg=Vous n'avez pas de compte de trading ass offerbook.warning.wrongTradeProtocol=Cettre offre requiert une version de protocole différente de celle utilisée actuellement par votre logiciel.\n\nVeuillez vérifier que vous avez la dernière version, il est possible que l'utilisateur qui a créé cette offre a utilisé une ancienne version.\n\nIl n'est pas possible de trader avec des versions de protocole différentes. offerbook.warning.userIgnored=Vous avez ajouté l'adresse onion de cet utilisateur à votre liste noire. offerbook.warning.offerBlocked=L'offre a été bloqué par des développeurs de Bisq.\nIl s'agit peut être d'un bug qui cause des problèmes lorsqu'on accepte cette offre. -offerbook.warning.currencyBanned=The currency used in that offer was blocked by the Bisq developers.\nPlease visit the Bisq Forum for more information. -offerbook.warning.paymentMethodBanned=The payment method used in that offer was blocked by the Bisq developers.\nPlease visit the Bisq Forum for more information. +offerbook.warning.currencyBanned=La monnaie utilisée pour cette offre a été bloquée par les développeurs de Bisq.\nRendez-vous s'il vous plaît au Bisq Forum pour plus d'informations. +offerbook.warning.paymentMethodBanned=La méthode de paiement utilisée pour cette offre a été bloquée par les développeurs de Bisq.\nRendez-vous s'il vous plaît au Bisq Forum pour plus d'informations. offerbook.warning.nodeBlocked=L'adresse onion de ce trader a été bloquée par les développeurs de Bisq.\nIl s'agit peut être d'un bug qui cause des problèmes lorsqu'on accepte cette offre. -offerbook.warning.tradeLimitNotMatching=Your payment account has been created {0} days ago. Your trade limit is based on the account age and is not sufficient for that offer.\n\nYour trade limit is: {1}\nThe min. trade amount of the offer is: {2}.\n\nYou cannot take that offer at the moment. Once your account is older than 2 months this restriction gets removed. +offerbook.warning.tradeLimitNotMatching=Votre compte de paiment a été créé il y a {0} jours. Votre limite par transaction dépend de l'âge du compte et est trop juste pour cette offre.\n\nVotre limite par transaction est: {1}\nLe montant commercial min. de cette offre est: {2}.\n\nVous ne pouvez pas prendre cette offre pour le moment. Une fois que l'âge de votre compte aura atteint 2 mois cette restriction sera levée. -offerbook.info.sellAtMarketPrice=You will sell at market price (updated every minute). -offerbook.info.buyAtMarketPrice=You will buy at market price (updated every minute). -offerbook.info.sellBelowMarketPrice=You will get {0} less than the current market price (updated every minute). -offerbook.info.buyAboveMarketPrice=You will pay {0} more than the current market price (updated every minute). -offerbook.info.sellAboveMarketPrice=You will get {0} more than the current market price (updated every minute). -offerbook.info.buyBelowMarketPrice=You will pay {0} less than the current market price (updated every minute). -offerbook.info.buyAtFixedPrice=You will buy at this fixed price. -offerbook.info.sellAtFixedPrice=You will sell at this fixed price. +offerbook.info.sellAtMarketPrice=Vous vendrez au prix du marché (mis à jour chaque minute). +offerbook.info.buyAtMarketPrice=Vous achèterez au prix du marché (mis à jour chaque minute). +offerbook.info.sellBelowMarketPrice=Vous obtiendrez {0} de moins que le prix actuel du marché (mis à jour chaque minute). +offerbook.info.buyAboveMarketPrice=Vous paierez {0} de plus que le prix actuel du marché (mis à jour chaque minute). +offerbook.info.sellAboveMarketPrice=Vous obtiendrez {0} de plus que le prix actuel du marché (mis à jour chaque minute). +offerbook.info.buyBelowMarketPrice=Vous paierez {0} de moins que le prix actuel du marché (mis à jour chaque minute). +offerbook.info.buyAtFixedPrice=Vous achèterez à ce prix fixé. +offerbook.info.sellAtFixedPrice=Vous vendrez à ce prix fixé. +offerbook.info.noArbitrationInUserLanguage=En cas de litige, veuillez noter que l'arbitrage pour cette offre sera traité dans {0}. La langue est actuellement définie sur {1}. +offerbook.info.roundedFiatVolume=Le montant a été arrondi pour accroître le caractère privé de votre transaction. #################################################################### # Offerbook / Create offer @@ -362,21 +362,22 @@ createOffer.amountPriceBox.sell.volumeDescription=Montant en {0} à recevoir createOffer.amountPriceBox.minAmountDescription=Montant minimum de BTC createOffer.securityDeposit.prompt=Dépôt de garantie en BTC createOffer.fundsBox.title=Ajouter des fonds à votre offre -createOffer.fundsBox.totalsNeeded.prompt=Sera calculé à partir du montant en bitcoin renseigné plus haut -createOffer.fundsBox.offerFee=Frais transaction: -createOffer.fundsBox.networkFee=Commission de minage: +createOffer.fundsBox.offerFee=Frais de transaction +createOffer.fundsBox.networkFee=Frais de minage createOffer.fundsBox.placeOfferSpinnerInfo=Publication de l'offre en cours... createOffer.fundsBox.paymentLabel=Transaction Bisq avec l'ID {0} -createOffer.fundsBox.fundsStructure=({0} security deposit, {1} trade fee, {2} mining fee) +createOffer.fundsBox.fundsStructure=({0} dépôt de garantie, {1} frais de transaction, {2} frais de minage) createOffer.success.headline=Votre offre a été publiée createOffer.success.info=Vous pouvez gérer vos offres ouvertes dans \"Portfolio/Mes offres\". -createOffer.info.sellAtMarketPrice=You will always sell at market price as the price of your offer will be continuously updated. -createOffer.info.buyAtMarketPrice=You will always buy at market price as the price of your offer will be continuously updated. -createOffer.info.sellAboveMarketPrice=You will always get {0}% more than the current market price as the price of your offer will be continuously updated. -createOffer.info.buyBelowMarketPrice=You will always pay {0}% less than the current market price as the price of your offer will be continuously updated. -createOffer.warning.sellBelowMarketPrice=You will always get {0}% less than the current market price as the price of your offer will be continuously updated. -createOffer.warning.buyAboveMarketPrice=You will always pay {0}% more than the current market price as the price of your offer will be continuously updated. - +createOffer.info.sellAtMarketPrice=Vous vendrez toujours au prix du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.info.buyAtMarketPrice=Vous achèterez toujours au prix du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.info.sellAboveMarketPrice=Vous recevrez toujours {0}% de plus que le prix actuel du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.info.buyBelowMarketPrice=Vous paierez toujours {0}% de moins que le prix actuel du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.warning.sellBelowMarketPrice=Vous obtiendrez toujours {0}% de moins que le prix actuel du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.warning.buyAboveMarketPrice=Vous paierez toujours {0}% de plus que le prix actuel du marché alors que le prix de votre offre sera continuellement mis à jour. +createOffer.tradeFee.descriptionBTCOnly=Frais de transaction +createOffer.tradeFee.descriptionBSQEnabled=Choisir la devise des frais de transaction +createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} du montant de la transaction # new entries createOffer.placeOfferButton=Revue: Placer une offre à {0} bitcoin @@ -384,27 +385,24 @@ createOffer.alreadyFunded=Vous aviez déjà payer cette offre.\nVos fonds ont é createOffer.createOfferFundWalletInfo.headline=Payer votre offre # suppress inspection "TrailingSpacesInProperty" createOffer.createOfferFundWalletInfo.tradeAmount=Montant de l'échange: {0}\n\n -createOffer.createOfferFundWalletInfo.msg=You need to deposit {0} to this offer.\n\nThose funds are reserved in your local wallet and will get locked into the multisig deposit address once someone takes your offer.\n\nThe amount is the sum of:\n{1}- Your security deposit: {2}\n- Trading fee: {3}\n- Mining fee: {4}\n\nYou can choose between two options when funding your trade:\n- Use your Bisq wallet (convenient, but transactions may be linkable) OR\n- Transfer from an external wallet (potentially more private)\n\nYou will see all funding options and details after closing this popup. +createOffer.createOfferFundWalletInfo.msg=Un dépôt de {0} vous est nécessaire pour cette offre.\n\nCes fonds sont mis en réserve dans votre portefeuille local et seront vérouillés dans l'adresse de dépôt multisig une fois que quelqu'un prendra votre offre.\n\nCe montant est la somme de:\n{1}- Votre dépôt de garantie: {2}\n- Frais de transaction: {3}\n- Frais de minage: {4}\n\nVous pouvez choisir parmi deux options pour financer votre transaction:\n- Utiliser votre portefeuille Bisq (pratique, mais les transactions peuvent être retrouvables) OU\n- Faire un transfert depuis un portefeuille externe (potentiellement plus privé)\n\nVous pourrez voir à nouveau toutes les options de financement et leurs détails après avoir fermé ce popup. # only first part "An error occurred when placing the offer:" has been used before. We added now the rest (need update in existing translations!) createOffer.amountPriceBox.error.message=Une erreur s'est produite lors du placement de cette offre:\n\n{0}\n\nAucun fonds n'a été prélevé de votre portefeuille pour le moment.\nVeuillez redémarrer l'application et vérifier votre connexion réseau. createOffer.setAmountPrice=Définir montant et prix createOffer.warnCancelOffer=Vous avez déjà payer cette offre.\nSi vous annulez maintenant, vos fonds seront envoyés dans votre portefeuille bisq local et seront disponible pour retrait dans l'onglet \"Fonds/Envoyer Fonds\".\nVoulez vous vraiment annuler? -createOffer.fixed=Fixe -createOffer.percentage=Pourcentage createOffer.timeoutAtPublishing=Le timeout a expiré lors de la publication de l'offre. createOffer.errorInfo=\n\nLes frais du maker sont déjà payés. Au pire des cas vous avez perdu ces frais. Nous en sommes désolés, gardez à l'esprit qu'il s'agit d'un montant très faible.\nVeuillez redémarrer l'application et vérifier votre connexion réseau pour voir si vous pouvez résoudre le problème. createOffer.tooLowSecDeposit.warning=Vous avez indiqué un dépôt de garantie inférieur à la valeur recommandée de {0}.\nÊtes vous sûr de vouloir utiliser un dépôt de garantie aussi bas?\nCela vous donne moins de protection dans le cas où l'autre participant ne suit pas les règles du protocole de transaction. -createOffer.tooLowSecDeposit.makerIsSeller=It gives you less protection in case the trading peer does not follow the trade protocol. -createOffer.tooLowSecDeposit.makerIsBuyer=It gives less protection for the trading peer that you follow the trade protocol as you have less deposit at risk. Other users might prefer to take other offers instead of yours. +createOffer.tooLowSecDeposit.makerIsSeller=Ceci vous offre moins de protection dans le cas où l'autre participant ne suit pas le protocole de la transaction. +createOffer.tooLowSecDeposit.makerIsBuyer=Comme vous entamez le protocole de transaction avec moins de dépôt en jeu, cela offre moins de protection à l'autre participant. Des utilisateurs pourraient préférer de prendre des offres autres que les vôtres. createOffer.resetToDefault=Non, revenir à la valeur par défaut createOffer.useLowerValue=Oui, utiliser ma valeur la plus basse createOffer.priceOutSideOfDeviation=Le prix que vous avez entré est en dehors de l'écart max. du prix du marché permit.\nL'écart maximum permis est {0} et peut être ajusté dans les préférences. createOffer.changePrice=Modifiez le prix createOffer.tac=En plaçant cette offre vous acceptez de faire des transactions avec n'importe quel trader remplissant les conditions ci-dessus. -createOffer.currencyForFee=Trade fee -createOffer.feeCurrencyAndDeposit=Set fee currency and security deposit -createOffer.setDeposit=Set buyer's security deposit +createOffer.currencyForFee=Frais de transaction +createOffer.setDeposit=Etablir le dépôt de garantie de l'acheteur #################################################################### @@ -422,12 +420,12 @@ takeOffer.validation.amountLargerThanOfferAmount=Le montant entré ne peut pas takeOffer.validation.amountLargerThanOfferAmountMinusFee=Le montant entré va créer de la \"poussière\" pour le vendeur de Bitcoin. takeOffer.fundsBox.title=Alimenter votre transaction takeOffer.fundsBox.isOfferAvailable=Vérification d'offres disponibles... -takeOffer.fundsBox.tradeAmount=Montant à vendre: -takeOffer.fundsBox.offerFee=Frais transaction: -takeOffer.fundsBox.networkFee=Total des commissions de minage: +takeOffer.fundsBox.tradeAmount=Montant à vendre +takeOffer.fundsBox.offerFee=Frais de transaction +takeOffer.fundsBox.networkFee=Total des frais de minage takeOffer.fundsBox.takeOfferSpinnerInfo=Offre Take en cours... takeOffer.fundsBox.paymentLabel=Transaction Bisq avec l'ID {0} -takeOffer.fundsBox.fundsStructure=({0} security deposit, {1} trade fee, {2} mining fee) +takeOffer.fundsBox.fundsStructure=({0} dépôt de garantie, {1} frais de transaction, {2} frais de minage) takeOffer.success.headline=Vous avez acquis cette offre avec succès! takeOffer.success.info=Vous pouvez voir vos transactions dans \"Portfolio/Offres Ouvertes\". takeOffer.error.message=Une erreur s'est produite en acceptant l'offre.\n\n{0} @@ -457,18 +455,16 @@ takeOffer.error.depositPublished=\n\nLa transaction du dépôt de garantie à d takeOffer.error.payoutPublished=\n\nLa transaction de remboursement à déjà été publiée.\nVeuillez redémarrer l'application et vérifier votre connexion réseau pour voir si le problème peut être résolu.\nSi le problème persiste, merci de contacter les développeurs afin qu'ils vous aident. takeOffer.tac=En acceptant cette offre vous acceptez les conditions de transactions définies dans cet écran. -takeOffer.currencyForFee=Trade fee -takeOffer.feeCurrency=Set fee currency #################################################################### # Offerbook / Edit offer #################################################################### editOffer.setPrice=Fixer le prix -editOffer.confirmEdit=Confirm: Edit offer -editOffer.publishOffer=Publishing your offer. -editOffer.failed=Editing of offer failed:\n{0} -editOffer.success=Your offer has been successfully edited. +editOffer.confirmEdit=Confirmation: Modification de l'offre +editOffer.publishOffer=Publication de votre offre. +editOffer.failed=Echec de la modification de l'offre :\n{0} +editOffer.success=Votre offre a été modifiée avec succès. #################################################################### # Portfolio @@ -495,7 +491,7 @@ portfolio.pending.step1.openForDispute=La transaction de dépôt n'a toujours pa portfolio.pending.step2.confReached=Votre échange a été confirmé au moins une fois.\n(Vous pouvez attendre plus de confirmations si vous désirez - 6 confirmations sont considérés comme très sures.)\n\n portfolio.pending.step2_buyer.copyPaste=(Vous pouvez copier-coller les valeurs à partir de l'écran principal après la fermeture de ce popup.) -portfolio.pending.step2_buyer.refTextWarn=DO NOT use any additional notice in the \"reason for payment\" text like bitcoin, BTC or Bisq. +portfolio.pending.step2_buyer.refTextWarn=NE PAS utiliser de commentaire supplémentaire dans le texte \"motif du paiement\" comme bitcoin, BTC ou Bisq. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step2_buyer.accountDetails=Voici les détails du compte du vendeur de BTC:\n portfolio.pending.step2_buyer.tradeId=N'oubliez pas d'ajouter l'ID d'échange @@ -516,9 +512,11 @@ portfolio.pending.step2_buyer.westernUnion.extra=IMPORTANT REQUIREMENT:\nAfter y portfolio.pending.step2_buyer.postal=Merci d'envoyer {0} par \"US Postal Money Order\" au vendeur de BTC.\n\n # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step2_buyer.bank=Merci de vous rendre sur votre site de banque en ligne et payer {0} au vendeur de BTC.\n\n +portfolio.pending.step2_buyer.f2f=Please contact the BTC seller by the provided contact and arrange a meeting to pay {0}.\n\n portfolio.pending.step2_buyer.startPaymentUsing=Initier le paiement en utilisant {0} -portfolio.pending.step2_buyer.amountToTransfer=Montant à transférer: -portfolio.pending.step2_buyer.sellersAddress=Adresse de vendeur de BTC {0}: +portfolio.pending.step2_buyer.amountToTransfer=Amount to transfer +portfolio.pending.step2_buyer.sellersAddress=Seller''s {0} address +portfolio.pending.step2_buyer.buyerAccount=Your payment account to be used portfolio.pending.step2_buyer.paymentStarted=Paiement initié portfolio.pending.step2_buyer.warn=Vous n'avez toujours pas effectué votre paiement {0}!\nVeuillez noter que cette transaction doit être effectuée avant {1} sinon la transaction sera inspectée par un arbitre. portfolio.pending.step2_buyer.openForDispute=Vous n'avez toujours pas effectué votre paiement!\nLa période max pour cette transaction est terminée.\n\nMerci de contacter l'arbitre afin d'ouvrir une dispute. @@ -528,47 +526,59 @@ portfolio.pending.step2_buyer.moneyGramMTCNInfo.headline=Send Authorisation numb portfolio.pending.step2_buyer.moneyGramMTCNInfo.msg=You need to send the Authorisation number and a photo of the receipt by email to the BTC seller.\nThe receipt must clearly show the seller''s full name, country, state and the amount. The seller''s email is: {0}.\n\nDid you send the Authorisation number and contract to the seller? portfolio.pending.step2_buyer.westernUnionMTCNInfo.headline=Send MTCN and receipt portfolio.pending.step2_buyer.westernUnionMTCNInfo.msg=You need to send the MTCN (tracking number) and a photo of the receipt by email to the BTC seller.\nThe receipt must clearly show the seller''s full name, city, country and the amount. The seller''s email is: {0}.\n\nDid you send the MTCN and contract to the seller? - +portfolio.pending.step2_buyer.halCashInfo.headline=Send HalCash code +portfolio.pending.step2_buyer.halCashInfo.msg=You need to send a text message with the HalCash code as well as the trade ID ({0}) to the BTC seller.\nThe seller''s mobile nr. is {1}.\n\nDid you send the code to the seller? +portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Some banks might require the receiver's name. The UK sort code and account number is sufficient for a Faster Payment transfer and the receivers name is not verified by any of the banks. portfolio.pending.step2_buyer.confirmStart.headline=Confirmez que vous avez initié le paiement portfolio.pending.step2_buyer.confirmStart.msg=Avez-vous initié le {0} paiement à votre partenaire commercial? portfolio.pending.step2_buyer.confirmStart.yes=Oui, j'ai initié le paiement portfolio.pending.step2_seller.waitPayment.headline=En attente du paiement +portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=La transaction de dépôt a au moins une confirmation de la blockchain.\nVous devez attendre que l'acheteur de BTC débute le {0} payment. -portfolio.pending.step2_seller.warn=L'acheteur de BTC n'a toujours pas effectué le {0} paiement.\nVeuillez attendre qu'il effectue celui-ci.\nSi la transaction n'est pas effectuée le {1}, un arbitre enquêtera. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=The BTC buyer has not started his payment!\nThe max. allowed period for the trade has elapsed.\nYou can wait longer and give the trading peer more time or contact the arbitrator for opening a dispute. +# suppress inspection "UnusedProperty" message.state.UNDEFINED=Undefined +# suppress inspection "UnusedProperty" message.state.SENT=Message sent +# suppress inspection "UnusedProperty" message.state.ARRIVED=Message arrived at peer +# suppress inspection "UnusedProperty" message.state.STORED_IN_MAILBOX=Message stored in mailbox +# suppress inspection "UnusedProperty" message.state.ACKNOWLEDGED=Peer confirmed message receipt +# suppress inspection "UnusedProperty" message.state.FAILED=Sending message failed portfolio.pending.step3_buyer.wait.headline=En attente de la confirmation de paiement du vendeur BTC portfolio.pending.step3_buyer.wait.info=Nous attendons que le vendeur confirme le preuve d'achat du paiement {0} . -portfolio.pending.step3_buyer.wait.msgStateInfo.label=Payment started message status: +portfolio.pending.step3_buyer.wait.msgStateInfo.label=Payment started message status portfolio.pending.step3_buyer.warn.part1a=sur la {0} blockchain portfolio.pending.step3_buyer.warn.part1b=chez votre fournisseur de services bancaires portfolio.pending.step3_buyer.warn.part2=Le vendeur de BTC n'a toujours pas confirmé votre paiement!\nVeuillez vérifier {0} si l'envoi du paiement a été effectuer.\nSi le vendeur ne confirme pas la réception du paiement avant {1} la transaction fera l'objet d'une enquête par l'arbitre. portfolio.pending.step3_buyer.openForDispute=The BTC seller has not confirmed your payment!\nThe max. period for the trade has elapsed.\nYou can wait longer and give the trading peer more time or contact the arbitrator for opening a dispute. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.part=Votre partenaire d'échange a confirmé qu'il a commencé à vous payer {0}.\n -portfolio.pending.step3_seller.altcoin={0}Please check on your favorite {1} blockchain explorer if the transaction to your receiving address\n{2}\nhas already sufficient blockchain confirmations.\nThe payment amount has to be {3}\n\nYou can copy & paste your {4} address from the main screen after closing that popup. +portfolio.pending.step3_seller.altcoin.explorer=on your favorite {0} blockchain explorer +portfolio.pending.step3_seller.altcoin.wallet=at your {0} wallet +portfolio.pending.step3_seller.altcoin={0}Please check {1} if the transaction to your receiving address\n{2}\nhas already sufficient blockchain confirmations.\nThe payment amount has to be {3}\n\nYou can copy & paste your {4} address from the main screen after closing that popup. portfolio.pending.step3_seller.postal={0}Please check if you have received {1} with \"US Postal Money Order\" from the BTC buyer.\n\nThe trade ID (\"reason for payment\" text) of the transaction is: \"{2}\" portfolio.pending.step3_seller.bank=Your trading partner has confirmed that he initiated the {0} payment.\n\nPlease go to your online banking web page and check if you have received {1} from the BTC buyer.\n\nThe trade ID (\"reason for payment\" text) of the transaction is: \"{2}\"\n\n -portfolio.pending.step3_seller.cash=\n\nBecause the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\nTo avoid chargeback risk, only confirm if you received the email and if you are sure the paper receipt is valid.\nIf you are not sure, {0} +portfolio.pending.step3_seller.cash=Because the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\nTo avoid chargeback risk, only confirm if you received the email and if you are sure the paper receipt is valid.\nIf you are not sure, {0} portfolio.pending.step3_seller.moneyGram=The buyer has to send you the Authorisation number and a photo of the receipt by email.\nThe receipt must clearly show your full name, country, state and the amount. Please check your email if you received the Authorisation number.\n\nAfter closing that popup you will see the BTC buyer's name and address for picking up the money from MoneyGram.\n\nOnly confirm receipt after you have successfully picked up the money! portfolio.pending.step3_seller.westernUnion=The buyer has to send you the MTCN (tracking number) and a photo of the receipt by email.\nThe receipt must clearly show your full name, city, country and the amount. Please check your email if you received the MTCN.\n\nAfter closing that popup you will see the BTC buyer's name and address for picking up the money from Western Union.\n\nOnly confirm receipt after you have successfully picked up the money! +portfolio.pending.step3_seller.halCash=The buyer has to send you the HalCash code as text message. Beside that you will receive a message from HalCash with the required information to withdraw the EUR from a HalCash supporting ATM.\n\nAfter you have picked up the money from the ATM please confirm here the receipt of the payment! portfolio.pending.step3_seller.bankCheck=\n\nPlease also verify that the sender's name in your bank statement matches that one from the trade contract:\nSender's name: {0}\n\nIf the name is not the same as the one displayed here, {1} portfolio.pending.step3_seller.openDispute=please don't confirm but open a dispute by entering \"alt + o\" or \"option + o\". portfolio.pending.step3_seller.confirmPaymentReceipt=Confirmez le preuve d'achat -portfolio.pending.step3_seller.amountToReceive=Montant à recevoir: -portfolio.pending.step3_seller.yourAddress=Votre {0} adresse: -portfolio.pending.step3_seller.buyersAddress=Adresse de l'acheteur {0}: -portfolio.pending.step3_seller.yourAccount=Votre compte d'échange: -portfolio.pending.step3_seller.buyersAccount=Compte d'acheteur: +portfolio.pending.step3_seller.amountToReceive=Amount to receive +portfolio.pending.step3_seller.yourAddress=Your {0} address +portfolio.pending.step3_seller.buyersAddress=Buyers {0} address +portfolio.pending.step3_seller.yourAccount=Your trading account +portfolio.pending.step3_seller.buyersAccount=Buyers trading account portfolio.pending.step3_seller.confirmReceipt=Confirmez le preuve d'achat portfolio.pending.step3_seller.buyerStartedPayment=L'acheteur BTC a commencé le {0} paiement.\n{1} portfolio.pending.step3_seller.buyerStartedPayment.altcoin=Check for blockchain confirmations at your altcoin wallet or block explorer and confirm the payment when you have sufficient blockchain confirmations. @@ -588,13 +598,13 @@ portfolio.pending.step3_seller.onPaymentReceived.confirm.headline=Confirmez que portfolio.pending.step3_seller.onPaymentReceived.confirm.yes=Oui, j'ai reçu le paiement portfolio.pending.step5_buyer.groupTitle=Résumé de l'échange complet -portfolio.pending.step5_buyer.tradeFee=Frais transaction: -portfolio.pending.step5_buyer.makersMiningFee=Commission de minage: -portfolio.pending.step5_buyer.takersMiningFee=Total des commissions de minage: -portfolio.pending.step5_buyer.refunded=Dépôt de garantie remboursé: +portfolio.pending.step5_buyer.tradeFee=Frais de transaction +portfolio.pending.step5_buyer.makersMiningFee=Frais de minage +portfolio.pending.step5_buyer.takersMiningFee=Total des frais de minage +portfolio.pending.step5_buyer.refunded=Refunded security deposit portfolio.pending.step5_buyer.withdrawBTC=Retirer vos bitcoins -portfolio.pending.step5_buyer.amount=Montant à retirer: -portfolio.pending.step5_buyer.withdrawToAddress=Envoyer à l'adresse: +portfolio.pending.step5_buyer.amount=Amount to withdraw +portfolio.pending.step5_buyer.withdrawToAddress=Withdraw to address portfolio.pending.step5_buyer.moveToBisqWallet=Transférer les fonds au portefeuille bisq portfolio.pending.step5_buyer.withdrawExternal=Retrait à un portefeuille externe portfolio.pending.step5_buyer.alreadyWithdrawn=Vos fonds ont déjà été retirés. Merci de vérifier votre historique de transactions. @@ -602,11 +612,11 @@ portfolio.pending.step5_buyer.confirmWithdrawal=Confirmer la demande de retrait portfolio.pending.step5_buyer.amountTooLow=The amount to transfer is lower than the transaction fee and the min. possible tx value (dust). portfolio.pending.step5_buyer.withdrawalCompleted.headline=Retrait effectué portfolio.pending.step5_buyer.withdrawalCompleted.msg=Your completed trades are stored under \"Portfolio/History\".\nYou can review all your bitcoin transactions under \"Funds/Transactions\" -portfolio.pending.step5_buyer.bought=Vous avez acheté: -portfolio.pending.step5_buyer.paid=Vous avez payé: +portfolio.pending.step5_buyer.bought=You have bought +portfolio.pending.step5_buyer.paid=You have paid -portfolio.pending.step5_seller.sold=Vous avez vendu: -portfolio.pending.step5_seller.received=Vous avez reçu: +portfolio.pending.step5_seller.sold=You have sold +portfolio.pending.step5_seller.received=You have received tradeFeedbackWindow.title=Congratulations on completing your trade tradeFeedbackWindow.msg.part1=We'd love to hear back from you about your experience. It'll help us to improve the software and to smooth out any rough edges. If you'd like to provide feedback, please fill out this short survey (no registration required) at: @@ -660,7 +670,8 @@ funds.deposit.usedInTx=Utilisé dans {0} transaction(s) funds.deposit.fundBisqWallet=Alimenter votre portefeuille funds.deposit.noAddresses=Aucune adresse de dépôt n'a encore été générée funds.deposit.fundWallet=Alimenter votre portefeuille -funds.deposit.amount=Montant en BTC (optionnel): +funds.deposit.withdrawFromWallet=Send funds from wallet +funds.deposit.amount=Amount in BTC (optional) funds.deposit.generateAddress=Générer une nouvelle adresse funds.deposit.selectUnused=Merci de sélectionner une adresse inutilisée dans le tableau ci-dessus plutôt que d'en générer une nouvelle. @@ -672,8 +683,8 @@ funds.withdrawal.receiverAmount=Montant du destinataire funds.withdrawal.senderAmount=Montant de l'expéditeur funds.withdrawal.feeExcluded=Amount excludes mining fee funds.withdrawal.feeIncluded=Amount includes mining fee -funds.withdrawal.fromLabel=Retrait depuis l'adresse: -funds.withdrawal.toLabel=Retirer à l'adresse: +funds.withdrawal.fromLabel=Withdraw from address +funds.withdrawal.toLabel=Withdraw to address funds.withdrawal.withdrawButton=Envoyer les fonds funds.withdrawal.noFundsAvailable=Aucun fond disponible à retirer funds.withdrawal.confirmWithdrawalRequest=Confirmer la requête de retrait @@ -694,7 +705,8 @@ funds.locked.locked=Locked in multisig for trade with ID: {0} funds.tx.direction.sentTo=Envoyer à: funds.tx.direction.receivedWith=Recevoir avec: -funds.tx.txFeePaymentForBsqTx=Tx fee payment for BSQ tx +funds.tx.direction.genesisTx=From Genesis tx: +funds.tx.txFeePaymentForBsqTx=Miner fee for BSQ tx funds.tx.createOfferFee=Frais maker et réseau : {0} funds.tx.takeOfferFee=Frais taker et réseau : {0} funds.tx.multiSigDeposit=Multisig deposit: {0} @@ -709,7 +721,9 @@ funds.tx.noTxAvailable=Aucune transaction disponible funds.tx.revert=Défaire funds.tx.txSent=Transaction envoyée avec succès à la nouvelle adresse dans le portefeuille local bisq. funds.tx.direction.self=Sent to yourself -funds.tx.proposalTxFee=Proposition +funds.tx.daoTxFee=Miner fee for DAO tx +funds.tx.reimbursementRequestTxFee=Reimbursement request +funds.tx.compensationRequestTxFee=Requête de compensation #################################################################### @@ -719,7 +733,7 @@ funds.tx.proposalTxFee=Proposition support.tab.support=Tickets d'assistance support.tab.ArbitratorsSupportTickets=Ticket de support arbitre support.tab.TradersSupportTickets=Ticket de support Trader -support.filter=Liste de filtre: +support.filter=Filter list support.noTickets=Il n'y a aucun ticket ouvert support.sendingMessage=Envoi du message... support.receiverNotOnline=Le destinataire n'est pas connecté. Le message est envoyé à sa boîte de réception. @@ -751,8 +765,9 @@ support.buyerOfferer=Acheteur BTC/Maker support.sellerOfferer=Vendeur BTC/Maker support.buyerTaker=Acheteur BTC/Taker support.sellerTaker=Vendeur BTC/Taker -support.backgroundInfo=Bisq is not a company and not operating any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display a \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIn cases of software bugs or other problems, which are detected by the application there will be displayed a \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIn cases where a user got stuck by a bug without getting displayed that \"Open support ticket\" button, you can open a support ticket manually with a special short cut.\n\nPlease use that only if you are sure that the software is not working like expected. If you have problems how to use Bisq or any questions please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section.\n\nIf you are sure that you want to open a support ticket please select the trade which causes the problem under \"Portfolio/Open trades\" and type the key combination \"alt + o\" or \"option + o\" to open the support ticket. -support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrators requests in between 2 days.\n2. The maximum period for the dispute is 14 days.\n3. You need to fulfill what the arbitrator is requesting from you to deliver evidence for your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more in detail about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. + +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Message du système: {0} support.youOpenedTicket=Vous avez ouvert une demande d'assistance. support.youOpenedDispute=Vous avez ouvert une dispute.\n\n{0} @@ -768,55 +783,66 @@ settings.tab.network=Info réseau settings.tab.about=À propos setting.preferences.general=Préférences générales -setting.preferences.explorer=Explorateur de blocs Bitcoin: -setting.preferences.deviation=Écart max. au prix de marché: -setting.preferences.autoSelectArbitrators=Sélection auto des arbitres: +setting.preferences.explorer=Bitcoin block explorer +setting.preferences.deviation=Max. deviation from market price +setting.preferences.avoidStandbyMode=Avoid standby mode setting.preferences.deviationToLarge=Values higher than {0}% are not allowed. -setting.preferences.txFee=Withdrawal transaction fee (satoshis/byte): +setting.preferences.txFee=Withdrawal transaction fee (satoshis/byte) setting.preferences.useCustomValue=Utiliser des valeurs personnalisées setting.preferences.txFeeMin=Transaction fee must be at least {0} satoshis/byte setting.preferences.txFeeTooLarge=Your input is above any reasonable value (>5000 satoshis/byte). Transaction fee is usually in the range of 50-400 satoshis/byte. -setting.preferences.ignorePeers=Ignore peers with onion address (comma sep.): -setting.preferences.refererId=Referral ID: +setting.preferences.ignorePeers=Ignore peers with onion address (comma sep.) +setting.preferences.refererId=Referral ID setting.preferences.refererId.prompt=Optional referral ID setting.preferences.currenciesInList=Devises disponibles pour les prix de marché -setting.preferences.prefCurrency=Monnaie préférée: -setting.preferences.displayFiat=Afficher les devises nationales: +setting.preferences.prefCurrency=Preferred currency +setting.preferences.displayFiat=Display national currencies setting.preferences.noFiat=Il n'y a pas de devise nationale sélectionnée setting.preferences.cannotRemovePrefCurrency=Vous ne pouvez pas supprimer votre affichage préféré de monnaie sélectionné -setting.preferences.displayAltcoins=Afficher altcoins: +setting.preferences.displayAltcoins=Display altcoins setting.preferences.noAltcoins=Il n'y a pas d'altcoins sélectionné setting.preferences.addFiat=Ajouter une monnaie nationale setting.preferences.addAltcoin=Ajouter un altcoin setting.preferences.displayOptions=Afficher les options -setting.preferences.showOwnOffers=Montrer mes offres dans le registre des offres: -setting.preferences.useAnimations=Utiliser les animations: -setting.preferences.sortWithNumOffers=Trier les marchés par nb ach/vente: -setting.preferences.resetAllFlags=Montrer tous les \"Ne plus me montrer\" +setting.preferences.showOwnOffers=Show my own offers in offer book +setting.preferences.useAnimations=Use animations +setting.preferences.sortWithNumOffers=Sort market lists with no. of offers/trades +setting.preferences.resetAllFlags=Reset all \"Don't show again\" flags setting.preferences.reset=Remise à zéro settings.preferences.languageChange=Un redémarrage est nécessaire pour appliquer le changement de langue à tous les écrans. -settings.preferences.selectCurrencyNetwork=Choisir la devise de base +settings.preferences.arbitrationLanguageWarning=En cas de litige, veuillez noter que l'arbitrage est géré dans {0}. +settings.preferences.selectCurrencyNetwork=Select network +setting.preferences.daoOptions=DAO options +setting.preferences.dao.resync.label=Rebuild DAO state from genesis tx +setting.preferences.dao.resync.button=Resync +setting.preferences.dao.resync.popup=After an application restart the BSQ consensus state will be rebuilt from the genesis transaction. +setting.preferences.dao.isDaoFullNode=Run Bisq as DAO full node +setting.preferences.dao.rpcUser=RPC username +setting.preferences.dao.rpcPw=RPC password +setting.preferences.dao.fullNodeInfo=For running Bisq as DAO full node you need to have Bitcoin Core locally running and configured with RPC and other requirements which are documented in ''{0}''. +setting.preferences.dao.fullNodeInfo.ok=Open docs page +setting.preferences.dao.fullNodeInfo.cancel=No, I stick with lite node mode settings.net.btcHeader=Réseau Bitcoin settings.net.p2pHeader=Réseau P2P -settings.net.onionAddressLabel=Mon adresse onion: -settings.net.btcNodesLabel=Use custom Bitcoin Core nodes: -settings.net.bitcoinPeersLabel=Pairs connectés: -settings.net.useTorForBtcJLabel=Utiliser Tor pour le réseau Bitcoin: -settings.net.bitcoinNodesLabel=Bitcoin Core nodes to connect to: +settings.net.onionAddressLabel=My onion address +settings.net.btcNodesLabel=Use custom Bitcoin Core nodes +settings.net.bitcoinPeersLabel=Connected peers +settings.net.useTorForBtcJLabel=Use Tor for Bitcoin network +settings.net.bitcoinNodesLabel=Bitcoin Core nodes to connect to settings.net.useProvidedNodesRadio=Use provided Bitcoin Core nodes settings.net.usePublicNodesRadio=Use public Bitcoin network settings.net.useCustomNodesRadio=Use custom Bitcoin Core nodes settings.net.warn.usePublicNodes=If you use the public Bitcoin network you are exposed to a severe privacy problem caused by the broken bloom filter design and implementation which is used for SPV wallets like BitcoinJ (used in Bisq). Any full node you are connected to could find out that all your wallet addresses belong to one entity.\n\nPlease read more about the details at: https://bisq.network/blog/privacy-in-bitsquare.\n\nAre you sure you want to use the public nodes? settings.net.warn.usePublicNodes.useProvided=No, use provided nodes settings.net.warn.usePublicNodes.usePublic=Yes, use public network -settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which are not following the Bitcoin Core consensus rules could screw up your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any damage created by that. Disputes caused by that would be decided in favor of the other peer. No technical support will be given to users who ignore our warning and protection mechanisms! -settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you get connected exclusively to that.) -settings.net.p2PPeersLabel=Pairs connectés: +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) +settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Adresse Onion settings.net.creationDateColumn=Établi settings.net.connectionTypeColumn=In/Out -settings.net.totalTrafficLabel=Trafic total: +settings.net.totalTrafficLabel=Total traffic settings.net.roundTripTimeColumn=Roundtrip settings.net.sentBytesColumn=Envoyé settings.net.receivedBytesColumn=Reçu @@ -834,28 +860,28 @@ settings.net.inbound=entrant settings.net.outbound=sortant settings.net.reSyncSPVChainLabel=Resync SPV chain settings.net.reSyncSPVChainButton=Supprimer le fichier SPV et resynchroniser -settings.net.reSyncSPVSuccess=The SPV chain file will be deleted at the next startup. You need to restart your application now.\n\nAfter the restart it can take a while for resyncing with the network and you will only see all transactions once the resync is completed.\n\nPlease make another restart after the resync has completed because there are sometimes inconsistencies leading to incorrect balance display. -settings.net.reSyncSPVAfterRestart=Le fichier de la chaine SPV a été supprimé. Merci de patienter un moment, l'opération de resynchronisation avec le réseau peut être longue. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=La synchronisation a fini. Redémarrez l'application s'il vous plaît. settings.net.reSyncSPVFailed=Could not delete SPV chain file.\nError: {0} setting.about.aboutBisq=À propos de Bisq -setting.about.about=Bisq is an open source project and a decentralized network of users who want to exchange bitcoin with national currencies or alternative crypto currencies in a privacy protecting way. Learn more about Bisq on our project web page. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq sur le web setting.about.code=Code source setting.about.agpl=Licence AGPL setting.about.support=Promouvoir Bisq -setting.about.def=Bisq n'est pas une entreprise mais un projet communautaire et ouvert à la participation. Si vous voulez participer ou promouvoir Bisq cliquer sur l'un des liens ci-dessous. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Contribuer setting.about.donate=Faire un don setting.about.providers=Fournisseurs de données setting.about.apisWithFee=Bisq utilise des API tierces pour les prix de marché des monnaies nationale et cryptomonnaies aussi bien que pour l'estimation des commission de minage. setting.about.apis=Bisq utilise des APIs tierces pour les monnaies nationales et les cryptomonnaies. -setting.about.pricesProvided=Cours de marché fourni par: +setting.about.pricesProvided=Market prices provided by setting.about.pricesProviders={0}, {1} et {2} -setting.about.feeEstimation.label=Estimation des commissions de minage par: +setting.about.feeEstimation.label=Mining fee estimation provided by setting.about.versionDetails=Détails de version -setting.about.version=Version de l'application: -setting.about.subsystems.label=Versions des sous-systèmes: +setting.about.version=Application version +setting.about.subsystems.label=Versions of subsystems setting.about.subsystems.val=Version du réseau: {0}; version des messages P2P: {1}; Version Local DB: {2}; Version du protocole d'échange: {3} @@ -866,27 +892,27 @@ setting.about.subsystems.val=Version du réseau: {0}; version des messages P2P: account.tab.arbitratorRegistration=Inscription de l'arbitre account.tab.account=Compte account.info.headline=Bienvenue sur votre compte Bisq -account.info.msg=Here you can setup trading accounts for national currencies & altcoins, select arbitrators and backup your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see button on the left) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer, there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data like your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Comptes de monnaies nationales account.menu.altCoinsAccountView=Compte Altcoins -account.menu.arbitratorSelection=Sélection de l'arbitre account.menu.password=Mot de passe du portefeuille account.menu.seedWords=Graines du portefeuille account.menu.backup=Sauvegarde +account.menu.notifications=Notifications -account.arbitratorRegistration.pubKey=Clé publique: +account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Inscrire l'arbitre account.arbitratorRegistration.revoke=Révoquer l'inscription -account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Vous devez définir au moins 1 langue.\nNous avons ajouter la langue par défaut pour vous. account.arbitratorRegistration.removedSuccess=Vous avez bien retiré votre arbitrage du réseau P2P. account.arbitratorRegistration.removedFailed=N'a pas pu supprimer l'arbitre. {0} account.arbitratorRegistration.registerSuccess=Vous avez bien ajouté votre arbitre sur le réseau P2P. account.arbitratorRegistration.registerFailed=N'a pas pu enregistrer l'arbitre. {0} -account.arbitratorSelection.minOneArbitratorRequired=Vous devez définir au moins 1 langue.\nNous avons ajouter la langue par défaut pour vous. +account.arbitratorSelection.minOneArbitratorRequired=Vous devez définir au moins 1 langue.\nNous avons ajouté la langue par défaut pour vous. account.arbitratorSelection.whichLanguages=Quelles langues parlez-vous? account.arbitratorSelection.whichDoYouAccept=Quels arbitres acceptez-vous account.arbitratorSelection.autoSelect=Sélection automatique en fonction des langues @@ -897,19 +923,22 @@ account.arbitratorSelection.noMatchingLang=Pas de langue correspondante. account.arbitratorSelection.noLang=Vous pouvez seulement sélectionner un arbitre ayant au minimum une langue commune: account.arbitratorSelection.minOne=Vous devez sélectionner un arbitre. -account.altcoin.yourAltcoinAccounts=Vos comptes altcoins: -account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where you don''t have your keys under your control or using a not compatible wallet software can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. +account.altcoin.yourAltcoinAccounts=Your altcoin accounts +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Je comprends et confirme que je sais quel portefeuille je dois utiliser. -account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or the Monero simple wallet with the store-tx-info flag enabled (default in new versions).\nPlease be sure that you can access the tx key (use the get_tx_key command in simplewallet) as that would be required in case of a dispute to enable the arbitrator to verify the XMR transfer with the XMR checktx tool (http://xmr.llcoins.net/checktx.html).\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\n\nIf you are not sure about that process visit the Monero forum (https://forum.getmonero.org) to find more information. +account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. +account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). +account.altcoin.popup.ccx.msg=If you want to trade CCX on Bisq please be sure you understand the following requirements:\n\nTo send CCX you must use an official Conceal wallet, either CLI or GUI. After sending a transfer payment, the wallets\ndisplay the transaction secret key. You must save it along with the transaction hash (ID) and the recipient's public\naddress in case arbitration is necessary. In such a case, you must give all three to the arbitrator, who will then\nverify the CCX transfer using the Conceal Transaction Viewer (https://explorer.conceal.network/txviewer).\nBecause Conceal is a privacy coin, block explorers cannot verify transfers.\n\nIf you cannot provide the required data to the arbitrator, you will lose the dispute case.\nIf you do not save the transaction secret key immediately after transferring CCX, it cannot be recovered later.\nIf you do not understand these requirements, seek help at the Conceal discord (http://discord.conceal.network). +account.altcoin.popup.drgl.msg=Trading Dragonglass on Bisq requires that you understand and fulfill the following requirements:\n\nBecause of the privacy Dragonglass provides a transaction is not verifyable on the public blockchain. If required you can prove your payment thru use of your TXN-Private-Key.\nThe TXN-Private Key is a one-time key automatically generated for every transaction that can only be accessed from within your DRGL wallet.\nEither by DRGL-wallet GUI (inside transaction details dialog) or by the Dragonglass CLI simplewallet (using command "get_tx_key").\n\nDRGL version 'Oathkeeper' and higher are REQUIRED for both.\n\nIn case of a dispute, you must provide the arbitrator the following data:\n- The TXN-Private key\n- The transaction hash\n- The recipient's public address\n\nVerification of payment can be made using the above data as inputs at \ (http://drgl.info/#check_txn).\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the arbitrator in case of a dispute. Use of PaymentID is not required.\n\nIf you are unsure about any part of this process, visit Dragonglass on Discord (http://discord.drgl.info) for help. account.altcoin.popup.ZEC.msg=When using {0} you can only use the transparent addresses (starting with t) not the z-addresses (private), because the arbitrator would not be able to verify the transaction with z-addresses. account.altcoin.popup.XZC.msg=When using {0} you can only use the transparent (traceable) addresses not the untraceable addresses, because the arbitrator would not be able to verify the transaction with untraceable addresses at a block explorer. account.altcoin.popup.bch=Bitcoin Cash and Bitcoin Clashic suffer from replay protection. If you use those coins be sure you take sufficient precautions and understand all implications.You can suffer losses by sending one coin and unintentionally send the same coins on the other block chain.Because those "airdrop coins" share the same history with the Bitcoin blockchain there are also security risks and a considerable risk for losing privacy.\n\nPlease read at the Bisq Forum more about that topic: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc account.altcoin.popup.btg=Because Bitcoin Gold shares the same history as the Bitcoin blockchain it comes with certain security risks and a considerable risk for losing privacy.If you use Bitcoin Gold be sure you take sufficient precautions and understand all implications.\n\nPlease read at the Bisq Forum more about that topic: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc -account.fiat.yourFiatAccounts=Vos comptes en devises\nnationale: +account.fiat.yourFiatAccounts=Your national currency accounts account.backup.title=Restaurer le portefeuille -account.backup.location=Emplacement sauvegarde: +account.backup.location=Backup location account.backup.selectLocation=Sélectionner le chemin de la sauvegarde account.backup.backupNow=Sauvegarder maintenant (non chiffrée!) account.backup.appDir=Répertoire données de l'application @@ -923,175 +952,618 @@ account.password.removePw.button=Supprimer le mot de passe account.password.removePw.headline=Supprimer la protection par mot de passe du portefeuille account.password.setPw.button=Définir le mot de passe account.password.setPw.headline=Définir la protection par mot de passe du portefeuille -account.password.info=Le mot de passe verrouille votre portefeuille pour les opérations suiavantes:\nRetrait, voir les graines, Restauration et démarrer l'application Bisq. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Sauvegarder les graines de votre portefeuille -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper and not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to backup the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Vous n'avez pas défini un mot de passe portefeuille qui protègerais l'affichage des graines.\n\nVoulez vous afficher les graines? account.seed.warn.noPw.yes=Oui, et ne plus me demander à l'avenir account.seed.enterPw=Entrer le mot de passe pour voir les graines -account.seed.restore.info=Please note that you cannot import a wallet from an old Bisq version (any version before 0.5.0), because the wallet format has changed!\n\nIf you want to move the funds from the old version to the new Bisq application send it with a bitcoin transaction.\n\nAlso be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, j'ai compris et je veux restaurer + +#################################################################### +# Mobile notifications +#################################################################### + +account.notifications.setup.title=Setup +account.notifications.download.label=Download mobile app +account.notifications.download.button=Download +account.notifications.waitingForWebCam=Waiting for webcam... +account.notifications.webCamWindow.headline=Scan QR-code from phone +account.notifications.webcam.label=Use webcam +account.notifications.webcam.button=Scan QR code +account.notifications.noWebcam.button=I don't have a webcam +account.notifications.testMsg.label=Send test notification +account.notifications.testMsg.title=Test +account.notifications.erase.label=Clear notifications on phone +account.notifications.erase.title=Clear notifications +account.notifications.email.label=Pairing token +account.notifications.email.prompt=Enter pairing token you received by email +account.notifications.settings.title=Paramètres +account.notifications.useSound.label=Play notification sound on phone +account.notifications.trade.label=Receive trade messages +account.notifications.market.label=Receive offer alerts +account.notifications.price.label=Receive price alerts +account.notifications.priceAlert.title=Price alerts +account.notifications.priceAlert.high.label=Notify if BTC price is above +account.notifications.priceAlert.low.label=Notify if BTC price is below +account.notifications.priceAlert.setButton=Set price alert +account.notifications.priceAlert.removeButton=Remove price alert +account.notifications.trade.message.title=Trade state changed +account.notifications.trade.message.msg.conf=The deposit transaction for the trade with ID {0} is confirmed. Please open your Bisq application and start the payment. +account.notifications.trade.message.msg.started=The BTC buyer has started the payment for the trade with ID {0}. +account.notifications.trade.message.msg.completed=The trade with ID {0} is completed. +account.notifications.offer.message.title=Your offer was taken +account.notifications.offer.message.msg=Your offer with ID {0} was taken +account.notifications.dispute.message.title=New dispute message +account.notifications.dispute.message.msg=You received a dispute message for trade with ID {0} + +account.notifications.marketAlert.title=Offer alerts +account.notifications.marketAlert.selectPaymentAccount=Offers matching payment account +account.notifications.marketAlert.offerType.label=Offer type I am interested in +account.notifications.marketAlert.offerType.buy=Buy offers (I want to sell BTC) +account.notifications.marketAlert.offerType.sell=Sell offers (I want to buy BTC) +account.notifications.marketAlert.trigger=Offer price distance (%) +account.notifications.marketAlert.trigger.info=With a price distance set, you will only receive an alert when an offer that meets (or exceeds) your requirements is published. Example: you want to sell BTC, but you will only sell at a 2% premium to the current market price. Setting this field to 2% will ensure you only receive alerts for offers with prices that are 2% (or more) above the current market price. +account.notifications.marketAlert.trigger.prompt=Percentage distance from market price (e.g. 2.50%, -0.50%, etc) +account.notifications.marketAlert.addButton=Add offer alert +account.notifications.marketAlert.manageAlertsButton=Manage offer alerts +account.notifications.marketAlert.manageAlerts.title=Manage offer alerts +account.notifications.marketAlert.manageAlerts.label=Offer alerts +account.notifications.marketAlert.manageAlerts.item=Offer alert for {0} offer with trigger price {1} and payment account {2} +account.notifications.marketAlert.manageAlerts.header.paymentAccount=Payment account +account.notifications.marketAlert.manageAlerts.header.trigger=Trigger price +account.notifications.marketAlert.manageAlerts.header.offerType=Type d'offre +account.notifications.marketAlert.message.title=Offer alert +account.notifications.marketAlert.message.msg.below=below +account.notifications.marketAlert.message.msg.above=above +account.notifications.marketAlert.message.msg=A new ''{0} {1}'' offer with price {2} ({3} {4} market price) and payment method ''{5}'' was published to the Bisq offerbook.\nOffer ID: {6}. +account.notifications.priceAlert.message.title=Price alert for {0} +account.notifications.priceAlert.message.msg=Your price alert got triggered. The current {0} price is {1} {2} +account.notifications.noWebCamFound.warning=No webcam found.\n\nPlease use the email option to send the token and encryption key from your mobile phone to the Bisq application. +account.notifications.priceAlert.warning.highPriceTooLow=The higher price must be larger than the lower price. +account.notifications.priceAlert.warning.lowerPriceTooHigh=The lower price must be lower than the higher price. + + + + #################################################################### # DAO #################################################################### dao.tab.bsqWallet=Portefeuille BSQ -dao.tab.proposals=Proposals -dao.tab.voting=Vote +dao.tab.proposals=Governance +dao.tab.bonding=Bonding +dao.tab.proofOfBurn=Asset listing fee/Proof of burn + +dao.paidWithBsq=payé en BSQ +dao.availableBsqBalance=Available +dao.availableNonBsqBalance=Available non-BSQ balance (BTC) +dao.unverifiedBsqBalance=Unverified (awaiting block confirmation) +dao.lockedForVoteBalance=Used for voting +dao.lockedInBonds=Locked in bonds +dao.totalBsqBalance=Total balance BSQ -dao.tx.summary=Voting fee: {0}\nMining fee: {1} ({2} satoshis/byte)\nTransaction size: {3} Kb\n\nAre you sure you want to send the transaction? dao.tx.published.success=Votre transaction a été publiée avec succès. dao.proposal.menuItem.make=Make proposal -dao.proposal.menuItem.active=Active proposals -dao.proposal.menuItem.myVotes=My votes -dao.proposal.menuItem.result=Closed proposals -dao.proposal.active.phase.header=Phase -dao.proposal.active.cycle=Cycle: -dao.proposal.active.phase=Current phase: -dao.proposal.active.startBlock=Starts at block: -dao.proposal.active.endBlock=Ends at block: +dao.proposal.menuItem.browse=Browse open proposals +dao.proposal.menuItem.vote=Vote on proposals +dao.proposal.menuItem.result=Vote results +dao.cycle.headline=Voting cycle +dao.cycle.overview.headline=Voting cycle overview +dao.cycle.currentPhase=Current phase +dao.cycle.currentBlockHeight=Current block height +dao.cycle.proposal=Proposal phase +dao.cycle.blindVote=Blind vote phase +dao.cycle.voteReveal=Vote reveal phase +dao.cycle.voteResult=Vote result +dao.cycle.phaseDuration={0} blocks (≈{1}); Block {2} - {3} (≈{4} - ≈{5}) +dao.results.cycles.header=Cycles +dao.results.cycles.table.header.cycle=Cycle +dao.results.cycles.table.header.numProposals=Proposals +dao.results.cycles.table.header.numVotes=Votes +dao.results.cycles.table.header.voteWeight=Vote weight +dao.results.cycles.table.header.issuance=Issuance + +dao.results.results.table.item.cycle=Cycle {0} started: {1} + +dao.results.proposals.header=Proposals of selected cycle +dao.results.proposals.table.header.proposalOwnerName=Nom +dao.results.proposals.table.header.details=Détails +dao.results.proposals.table.header.myVote=My vote +dao.results.proposals.table.header.result=Vote result + +dao.results.proposals.voting.detail.header=Vote results for selected proposal + +# suppress inspection "UnusedProperty" +dao.param.UNDEFINED=Undefined + +# suppress inspection "UnusedProperty" +dao.param.DEFAULT_MAKER_FEE_BSQ=BSQ maker fee +# suppress inspection "UnusedProperty" +dao.param.DEFAULT_TAKER_FEE_BSQ=BSQ taker fee +# suppress inspection "UnusedProperty" +dao.param.MIN_MAKER_FEE_BSQ=Min. BSQ maker fee +# suppress inspection "UnusedProperty" +dao.param.MIN_TAKER_FEE_BSQ=Min. BSQ taker fee +# suppress inspection "UnusedProperty" +dao.param.DEFAULT_MAKER_FEE_BTC=BTC maker fee +# suppress inspection "UnusedProperty" +dao.param.DEFAULT_TAKER_FEE_BTC=BTC taker fee +# suppress inspection "UnusedProperty" +# suppress inspection "UnusedProperty" +dao.param.MIN_MAKER_FEE_BTC=Min. BTC maker fee +# suppress inspection "UnusedProperty" +dao.param.MIN_TAKER_FEE_BTC=Min. BTC taker fee +# suppress inspection "UnusedProperty" + +# suppress inspection "UnusedProperty" +dao.param.PROPOSAL_FEE=Proposal fee in BSQ +# suppress inspection "UnusedProperty" +dao.param.BLIND_VOTE_FEE=Voting fee in BSQ + +# suppress inspection "UnusedProperty" +dao.param.COMPENSATION_REQUEST_MIN_AMOUNT=Compensation request min. BSQ amount +# suppress inspection "UnusedProperty" +dao.param.COMPENSATION_REQUEST_MAX_AMOUNT=Compensation request max. BSQ amount +# suppress inspection "UnusedProperty" +dao.param.REIMBURSEMENT_MIN_AMOUNT=Reimbursement request min. BSQ amount +# suppress inspection "UnusedProperty" +dao.param.REIMBURSEMENT_MAX_AMOUNT=Reimbursement request max. BSQ amount + +# suppress inspection "UnusedProperty" +dao.param.QUORUM_GENERIC=Required quorum in BSQ for generic proposal +# suppress inspection "UnusedProperty" +dao.param.QUORUM_COMP_REQUEST=Required quorum in BSQ for compensation request +# suppress inspection "UnusedProperty" +dao.param.QUORUM_REIMBURSEMENT=Required quorum in BSQ for reimbursement request +# suppress inspection "UnusedProperty" +dao.param.QUORUM_CHANGE_PARAM=Required quorum in BSQ for changing a parameter +# suppress inspection "UnusedProperty" +dao.param.QUORUM_REMOVE_ASSET=Required quorum in BSQ for removing an asset +# suppress inspection "UnusedProperty" +dao.param.QUORUM_CONFISCATION=Required quorum in BSQ for a confiscation request +# suppress inspection "UnusedProperty" +dao.param.QUORUM_ROLE=Required quorum in BSQ for bonded role requests + +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_GENERIC=Required threshold in % for generic proposal +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_COMP_REQUEST=Required threshold in % for compensation request +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_REIMBURSEMENT=Required threshold in % for reimbursement request +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_CHANGE_PARAM=Required threshold in % for changing a parameter +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_REMOVE_ASSET=Required threshold in % for removing an asset +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_CONFISCATION=Required threshold in % for a confiscation request +# suppress inspection "UnusedProperty" +dao.param.THRESHOLD_ROLE=Required threshold in % for bonded role requests + +# suppress inspection "UnusedProperty" +dao.param.RECIPIENT_BTC_ADDRESS=Recipient BTC address + +# suppress inspection "UnusedProperty" +dao.param.ASSET_LISTING_FEE_PER_DAY=Asset listing fee per day +# suppress inspection "UnusedProperty" +dao.param.ASSET_MIN_VOLUME=Min. trade volume + +dao.param.currentValue=Current value: {0} +dao.param.blocks={0} blocks + +# suppress inspection "UnusedProperty" +dao.results.cycle.duration.label=Duration of {0} +# suppress inspection "UnusedProperty" +dao.results.cycle.duration.value={0} block(s) +# suppress inspection "UnusedProperty" +dao.results.cycle.value.postFix.isDefaultValue=(default value) +# suppress inspection "UnusedProperty" +dao.results.cycle.value.postFix.hasChanged=(has been changed in voting) + +# suppress inspection "UnusedProperty" +dao.phase.PHASE_UNDEFINED=Undefined +# suppress inspection "UnusedProperty" +dao.phase.PHASE_PROPOSAL=Proposal phase +# suppress inspection "UnusedProperty" +dao.phase.PHASE_BREAK1=Break 1 +# suppress inspection "UnusedProperty" +dao.phase.PHASE_BLIND_VOTE=Blind vote phase +# suppress inspection "UnusedProperty" +dao.phase.PHASE_BREAK2=Break 2 +# suppress inspection "UnusedProperty" +dao.phase.PHASE_VOTE_REVEAL=Vote reveal phase +# suppress inspection "UnusedProperty" +dao.phase.PHASE_BREAK3=Break 3 +# suppress inspection "UnusedProperty" +dao.phase.PHASE_RESULT=Result phase + +dao.results.votes.table.header.stakeAndMerit=Vote weight +dao.results.votes.table.header.stake=Stake +dao.results.votes.table.header.merit=Earned +dao.results.votes.table.header.vote=Voter + +dao.bond.menuItem.bondedRoles=Bonded roles +dao.bond.menuItem.reputation=Bonded reputation +dao.bond.menuItem.bonds=Bonds + +dao.bond.dashboard.bondsHeadline=Bonded BSQ +dao.bond.dashboard.lockupAmount=Lockup funds +dao.bond.dashboard.unlockingAmount=Unlocking funds (wait until lock time is over) + + +dao.bond.reputation.header=Lockup a bond for reputation +dao.bond.reputation.table.header=My reputation bonds +dao.bond.reputation.amount=Amount of BSQ to lockup +dao.bond.reputation.time=Unlock time in blocks +dao.bond.reputation.salt=Salt +dao.bond.reputation.hash=Hash +dao.bond.reputation.lockupButton=Lockup +dao.bond.reputation.lockup.headline=Confirm lockup transaction +dao.bond.reputation.lockup.details=Lockup amount: {0}\nLockup time: {1} block(s)\n\nAre you sure you want to proceed? +dao.bond.reputation.unlock.headline=Confirm unlock transaction +dao.bond.reputation.unlock.details=Unlock amount: {0}\nLockup time: {1} block(s)\n\nAre you sure you want to proceed? + +dao.bond.allBonds.header=All bonds + +dao.bond.bondedReputation=Bonded Reputation +dao.bond.bondedRoles=Bonded roles + +dao.bond.details.header=Role details +dao.bond.details.role=Role +dao.bond.details.requiredBond=Required BSQ bond +dao.bond.details.unlockTime=Unlock time in blocks +dao.bond.details.link=Link to role description +dao.bond.details.isSingleton=Can be taken by multiple role holders +dao.bond.details.blocks={0} blocks + +dao.bond.table.column.name=Nom +dao.bond.table.column.link=Link +dao.bond.table.column.bondType=Bond type +dao.bond.table.column.details=Détails +dao.bond.table.column.lockupTxId=Lockup Tx ID +dao.bond.table.column.bondState=Bond state +dao.bond.table.column.lockTime=Lock time +dao.bond.table.column.lockupDate=Lockup date + +dao.bond.table.button.lockup=Lockup +dao.bond.table.button.unlock=Déverrouiller +dao.bond.table.button.revoke=Revoke + +# suppress inspection "UnusedProperty" +dao.bond.bondState.READY_FOR_LOCKUP=Not bonded yet +# suppress inspection "UnusedProperty" +dao.bond.bondState.LOCKUP_TX_PENDING=Lockup pending +# suppress inspection "UnusedProperty" +dao.bond.bondState.LOCKUP_TX_CONFIRMED=Bond locked up +# suppress inspection "UnusedProperty" +dao.bond.bondState.UNLOCK_TX_PENDING=Unlock pending +# suppress inspection "UnusedProperty" +dao.bond.bondState.UNLOCK_TX_CONFIRMED=Unlock tx confirmed +# suppress inspection "UnusedProperty" +dao.bond.bondState.UNLOCKING=Bond unlocking +# suppress inspection "UnusedProperty" +dao.bond.bondState.UNLOCKED=Bond unlocked +# suppress inspection "UnusedProperty" +dao.bond.bondState.CONFISCATED=Bond confiscated + +# suppress inspection "UnusedProperty" +dao.bond.lockupReason.BONDED_ROLE=Bonded role +# suppress inspection "UnusedProperty" +dao.bond.lockupReason.REPUTATION=Bonded reputation + +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.GITHUB_ADMIN=Github admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.FORUM_ADMIN=Forum admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.TWITTER_ADMIN=Twitter admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.ROCKET_CHAT_ADMIN=Rocket chat admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.YOUTUBE_ADMIN=Youtube admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.BISQ_MAINTAINER=Bisq maintainer +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.WEBSITE_OPERATOR=Website operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.FORUM_OPERATOR=Forum operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.SEED_NODE_OPERATOR=Seed node operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.PRICE_NODE_OPERATOR=Price node operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.BTC_NODE_OPERATOR=Btc node operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.MARKETS_OPERATOR=Markets operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.BSQ_EXPLORER_OPERATOR=BSQ explorer operator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.DOMAIN_NAME_HOLDER=Domain name holder +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.DNS_ADMIN=DNS admin +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.MEDIATOR=Mediator +# suppress inspection "UnusedProperty" +dao.bond.bondedRoleType.ARBITRATOR=Arbitrator + +dao.burnBsq.assetFee=Asset listing fee +dao.burnBsq.menuItem.assetFee=Asset listing fee +dao.burnBsq.menuItem.proofOfBurn=Proof of burn +dao.burnBsq.header=Fee for asset listing +dao.burnBsq.selectAsset=Select Asset +dao.burnBsq.fee=Fee +dao.burnBsq.trialPeriod=Trial period +dao.burnBsq.payFee=Pay fee +dao.burnBsq.allAssets=All assets +dao.burnBsq.assets.nameAndCode=Asset name +dao.burnBsq.assets.state=État +dao.burnBsq.assets.tradeVolume=Volume d'échange +dao.burnBsq.assets.lookBackPeriod=Verification period +dao.burnBsq.assets.trialFee=Fee for trial period +dao.burnBsq.assets.totalFee=Total fees paid +dao.burnBsq.assets.days={0} days +dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial perios is {0}. + +# suppress inspection "UnusedProperty" +dao.assetState.UNDEFINED=Undefined +# suppress inspection "UnusedProperty" +dao.assetState.IN_TRIAL_PERIOD=In trial period +# suppress inspection "UnusedProperty" +dao.assetState.ACTIVELY_TRADED=Actively traded +# suppress inspection "UnusedProperty" +dao.assetState.DE_LISTED=De-listed due to inactivity +# suppress inspection "UnusedProperty" +dao.assetState.REMOVED_BY_VOTING=Removed by voting + +dao.proofOfBurn.header=Proof of burn +dao.proofOfBurn.amount=Montant +dao.proofOfBurn.preImage=Pre-image +dao.proofOfBurn.burn=Burn +dao.proofOfBurn.allTxs=All proof of burn transactions +dao.proofOfBurn.myItems=My proof of burn transactions +dao.proofOfBurn.date=Date +dao.proofOfBurn.hash=Hash +dao.proofOfBurn.txs=Transactions +dao.proofOfBurn.pubKey=Pubkey +dao.proofOfBurn.signature.window.title=Sign a message with key from proof or burn transaction +dao.proofOfBurn.verify.window.title=Verify a message with key from proof or burn transaction +dao.proofOfBurn.copySig=Copy signature to clipboard +dao.proofOfBurn.sign=Sign +dao.proofOfBurn.message=Message +dao.proofOfBurn.sig=Signature +dao.proofOfBurn.verify=Verify +dao.proofOfBurn.verify.header=Verify message with key from proof or burn transaction +dao.proofOfBurn.verificationResult.ok=Verification succeeded +dao.proofOfBurn.verificationResult.failed=Verification failed + +# suppress inspection "UnusedProperty" dao.phase.UNDEFINED=Undefined -dao.phase.COMPENSATION_REQUESTS=Open for proposals -dao.phase.BREAK1=Break before voting starts -dao.phase.BLIND_VOTE=Open for voting -dao.phase.BREAK2=Break before voting confirmation starts -dao.phase.VOTE_REVEAL=Open for revealing voting key -dao.phase.BREAK3=Break before issuance phase starts -dao.phase.ISSUANCE=Issuance -dao.phase.BREAK4=Break before proposals phase starts +# suppress inspection "UnusedProperty" +dao.phase.PROPOSAL=Proposal phase +# suppress inspection "UnusedProperty" +dao.phase.BREAK1=Break before blind vote phase +# suppress inspection "UnusedProperty" +dao.phase.BLIND_VOTE=Blind vote phase +# suppress inspection "UnusedProperty" +dao.phase.BREAK2=Break before vote reveal phase +# suppress inspection "UnusedProperty" +dao.phase.VOTE_REVEAL=Vote reveal phase +# suppress inspection "UnusedProperty" +dao.phase.BREAK3=Break before result phase +# suppress inspection "UnusedProperty" +dao.phase.RESULT=Vote result phase -dao.phase.short.PROPOSAL=Proposition -dao.phase.short.BREAK1=Break -dao.phase.short.BLIND_VOTE=Vote -dao.phase.short.BREAK2=Break -dao.phase.short.VOTE_REVEAL=Reveal -dao.phase.short.BREAK3=Break -dao.phase.short.ISSUANCE=Issuance +# suppress inspection "UnusedProperty" +dao.phase.separatedPhaseBar.PROPOSAL=Proposal phase +# suppress inspection "UnusedProperty" +dao.phase.separatedPhaseBar.BLIND_VOTE=Blind vote +# suppress inspection "UnusedProperty" +dao.phase.separatedPhaseBar.VOTE_REVEAL=Vote reveal +# suppress inspection "UnusedProperty" +dao.phase.separatedPhaseBar.RESULT=Vote result +# suppress inspection "UnusedProperty" dao.proposal.type.COMPENSATION_REQUEST=Requête de compensation -dao.proposal.type.GENERIC=Generic proposal -dao.proposal.type.CHANGE_PARAM=Proposal for changing a parameter +# suppress inspection "UnusedProperty" +dao.proposal.type.REIMBURSEMENT_REQUEST=Reimbursement request +# suppress inspection "UnusedProperty" +dao.proposal.type.BONDED_ROLE=Proposal for a bonded role +# suppress inspection "UnusedProperty" dao.proposal.type.REMOVE_ASSET=Proposal for removing an asset +# suppress inspection "UnusedProperty" +dao.proposal.type.CHANGE_PARAM=Proposal for changing a parameter +# suppress inspection "UnusedProperty" +dao.proposal.type.GENERIC=Generic proposal +# suppress inspection "UnusedProperty" +dao.proposal.type.CONFISCATE_BOND=Proposal for confiscating a bond + +# suppress inspection "UnusedProperty" +dao.proposal.type.short.COMPENSATION_REQUEST=Requête de compensation +# suppress inspection "UnusedProperty" +dao.proposal.type.short.REIMBURSEMENT_REQUEST=Reimbursement request +# suppress inspection "UnusedProperty" +dao.proposal.type.short.BONDED_ROLE=Bonded role +# suppress inspection "UnusedProperty" +dao.proposal.type.short.REMOVE_ASSET=Removing an altcoin +# suppress inspection "UnusedProperty" +dao.proposal.type.short.CHANGE_PARAM=Changing a parameter +# suppress inspection "UnusedProperty" +dao.proposal.type.short.GENERIC=Generic proposal +# suppress inspection "UnusedProperty" +dao.proposal.type.short.CONFISCATE_BOND=Confiscating a bond + + dao.proposal.details=Proposal details dao.proposal.selectedProposal=Selected proposal -dao.proposal.active.header=Active proposals -dao.proposal.active.notOpenAnymore=This proposal is not open anymore for funding. Please wait until the next funding period starts. +dao.proposal.active.header=Proposals of current cycle +dao.proposal.active.remove.confirm=Are you sure you want to remove that proposal?\nThe already paid proposal fee will be lost. +dao.proposal.active.remove.doRemove=Yes, remove my proposal dao.proposal.active.remove.failed=Could not remove proposal. -dao.proposal.active.myVote=Vote on proposal dao.proposal.myVote.accept=Accept proposal dao.proposal.myVote.reject=Reject proposal -dao.proposal.myVote.cancelVote=Cancel vote -dao.proposal.myVote.header=Voter -dao.proposal.myVote.stake=BSQ stake for vote -dao.proposal.myVote.stake.prompt=Available balance for voting: {0} -dao.proposal.myVotes.header=My votes -dao.proposal.myVotes.proposalList=Proposal list -dao.proposal.myVotes.showProposalList=Show list -dao.proposal.myVotes.tx=Vote transaction ID -dao.proposal.myVotes.tooltip.showProposalList=Show proposal list used in that vote -dao.proposal.myVotes.proposals.header=Proposals -dao.proposal.myVotes.myVote=Voter -dao.proposal.votes.header=Votes -dao.proposal.votes.stake=Stake -dao.proposal.title=Title +dao.proposal.myVote.removeMyVote=Ignore proposal +dao.proposal.myVote.merit=Vote weight from earned BSQ +dao.proposal.myVote.stake=Vote weight from stake +dao.proposal.myVote.blindVoteTxId=Blind vote transaction ID +dao.proposal.myVote.revealTxId=Vote reveal transaction ID +dao.proposal.myVote.stake.prompt=Max. available balance for voting: {0} +dao.proposal.votes.header=Vote on all proposals +dao.proposal.votes.header.voted=My vote dao.proposal.myVote.button=Vote on all proposals -dao.proposal.active.successfullyFunded=La demande de compensation a été financée avec succès. -dao.proposal.past.header=Past proposal dao.proposal.create.selectProposalType=Select proposal type dao.proposal.create.proposalType=Proposal type dao.proposal.create.createNew=Make new proposal dao.proposal.create.create.button=Make proposal -dao.proposal.create.confirm=Confirm proposal -dao.proposal.display.name=Nom/surnom: -dao.proposal.display.description=Description: -dao.proposal.display.description.prompt=Add a short description (max. {0} characters) -dao.proposal.display.description.tooLong=Description text must not be longer than {0} characters. Please use the external link for a more detailed description. -dao.proposal.display.link=Lien pour le détails des informations: -dao.proposal.display.link.prompt=Provide a link to an issue at \"https://github.com/bisq-network/compensation/issues/\" or the Bisq Forum. -dao.proposal.display.requestedBsq=Requested amount in BSQ: -dao.proposal.display.bsqAddress=BSQ address: -dao.proposal.display.txId=Proposal transaction ID: +dao.proposal=proposal +dao.proposal.display.type=Proposal type +dao.proposal.display.name=Name/nickname +dao.proposal.display.link=Link to detail info +dao.proposal.display.link.prompt=Link to Github issue +dao.proposal.display.requestedBsq=Requested amount in BSQ +dao.proposal.display.bsqAddress=BSQ address +dao.proposal.display.txId=Proposal transaction ID +dao.proposal.display.proposalFee=Proposal fee +dao.proposal.display.myVote=My vote +dao.proposal.display.voteResult=Vote result summary +dao.proposal.display.bondedRoleComboBox.label=Bonded role type +dao.proposal.display.requiredBondForRole.label=Required bond for role +dao.proposal.display.tickerSymbol.label=Ticker Symbol +dao.proposal.display.option=Option -dao.voting.item.title=Requête de compensation -dao.voting.item.stage.title=Requête de compensation avec l'ID: {0} +dao.proposal.table.header.proposalType=Proposal type +dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=Enlever +dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal +dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' -dao.voting.addItems=Ajouter des éléments pour le vote -dao.voting.addRequest=Add request -dao.voting.requestAlreadyAdded=You have already that request added. -dao.voting.addParameter=Ajouter un paramètre -dao.voting.parameterAlreadyAdded=Vous avez déjà ajouté ce paramètre. -dao.voting.compensationRequests=Requêtes de compensation -dao.voting.votedAlready=Vous avez déjà voté. -dao.voting.notVotedOnAnyEntry=Vous n'avez voté sur aucune des entrées. -dao.voting.confirmTx=Confirmer la transaction de paiement de la commission de vote -dao.voting.error.invalidValue=L'intervalle de changement se situe entre 0 et 254. 255 car nous partons de 0 inclus. Valeur reçue= +dao.proposal.display.myVote.accepted=Accepted +dao.proposal.display.myVote.rejected=Rejected +dao.proposal.display.myVote.ignored=Ignored +dao.proposal.myVote.summary=Voted: {0}; Vote weight: {1} (earned: {2} + stake: {3}); + +dao.proposal.voteResult.success=Accepted +dao.proposal.voteResult.failed=Rejected +dao.proposal.voteResult.summary=Result: {0}; Threshold: {1} (required > {2}); Quorum: {3} (required > {4}) + +dao.proposal.display.paramComboBox.label=Select parameter to change +dao.proposal.display.paramValue=Parameter value + +dao.proposal.display.confiscateBondComboBox.label=Choose bond +dao.proposal.display.assetComboBox.label=Asset to remove + +dao.blindVote=blind vote + +dao.blindVote.startPublishing=Publishing blind vote transaction... +dao.blindVote.success=Your blind vote has been successfully published. dao.wallet.menuItem.send=Envoyer dao.wallet.menuItem.receive=Recevoir dao.wallet.menuItem.transactions=Transactions -dao.wallet.dashboard.distribution=Statistics -dao.wallet.dashboard.genesisBlockHeight=Genesis block height: -dao.wallet.dashboard.genesisTxId=Genesis transaction ID: -dao.wallet.dashboard.issuedAmount=Total issued amount: -dao.wallet.dashboard.availableAmount=Available amount: -dao.wallet.dashboard.burntAmount=Burnt amount (fees): -dao.wallet.dashboard.allTx=No. of all BSQ transactions: -dao.wallet.dashboard.utxo=No. of all unspent transaction outputs: -dao.wallet.dashboard.spentTxo=No. of all spent transaction outputs: -dao.wallet.dashboard.burntTx=No. of all fee payments transactions (burnt): -dao.wallet.dashboard.price=Price: -dao.wallet.dashboard.marketCap=Market capitalisation: +dao.wallet.dashboard.myBalance=My wallet balance +dao.wallet.dashboard.distribution=Distribution of all BSQ +dao.wallet.dashboard.locked=Global state of locked BSQ +dao.wallet.dashboard.market=Market data +dao.wallet.dashboard.genesis=Genesis transaction +dao.wallet.dashboard.txDetails=BSQ transactions statistics +dao.wallet.dashboard.genesisBlockHeight=Genesis block height +dao.wallet.dashboard.genesisTxId=Genesis transaction ID +dao.wallet.dashboard.genesisIssueAmount=BSQ issued at genesis transaction +dao.wallet.dashboard.compRequestIssueAmount=BSQ issued for compensation requests +dao.wallet.dashboard.reimbursementAmount=BSQ issued for reimbursement requests +dao.wallet.dashboard.availableAmount=Total available BSQ +dao.wallet.dashboard.burntAmount=Burned BSQ (fees) +dao.wallet.dashboard.totalLockedUpAmount=Locked up in bonds +dao.wallet.dashboard.totalUnlockingAmount=Unlocking BSQ from bonds +dao.wallet.dashboard.totalUnlockedAmount=Unlocked BSQ from bonds +dao.wallet.dashboard.totalConfiscatedAmount=Confiscated BSQ from bonds +dao.wallet.dashboard.allTx=No. of all BSQ transactions +dao.wallet.dashboard.utxo=No. of all unspent transaction outputs +dao.wallet.dashboard.compensationIssuanceTx=No. of all compensation request issuance transactions +dao.wallet.dashboard.reimbursementIssuanceTx=No. of all reimbursement request issuance transactions +dao.wallet.dashboard.burntTx=No. of all fee payments transactions +dao.wallet.dashboard.price=Latest BSQ/BTC trade price (in Bisq) +dao.wallet.dashboard.marketCap=Market capitalisation (based on trade price) -dao.wallet.receive.fundBSQWallet=Alimenter votre portefeuille Bisq BSQ dao.wallet.receive.fundYourWallet=Financer votre portefeuille BSQ +dao.wallet.receive.bsqAddress=BSQ wallet address dao.wallet.send.sendFunds=Envoyer des fonds -dao.wallet.send.amount=Montant en BSQ: +dao.wallet.send.sendBtcFunds=Send non-BSQ funds (BTC) +dao.wallet.send.amount=Amount in BSQ +dao.wallet.send.btcAmount=Amount in BTC (non-BSQ funds) dao.wallet.send.setAmount=Définir le montant à retirer (le montant minimum est {0}) -dao.wallet.send.receiverAddress=Adresse du destinataire: +dao.wallet.send.setBtcAmount=Set amount in BTC to withdraw (min. amount is {0}) +dao.wallet.send.receiverAddress=Receiver's BSQ address +dao.wallet.send.receiverBtcAddress=Receiver's BTC address dao.wallet.send.setDestinationAddress=Remplissez votre adresse de destination dao.wallet.send.send=Envoyer des fonds BSQ +dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Confirmer la requête de retrait dao.wallet.send.sendFunds.details=Sending: {0}\nTo receiving address: {1}.\nRequired transaction fee is: {2} ({3} satoshis/byte)\nTransaction size: {4} Kb\n\nThe recipient will receive: {5}\n\nAre you sure you want to withdraw that amount? -dao.wallet.bsqFee=Paiement de la commission BSQ -dao.wallet.chainHeightSynced=Synchronized up to block:{0} (latest block: {1}) -dao.wallet.chainHeightSyncing=Synchronizing block: {0} (latest block: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Type +# suppress inspection "UnusedProperty" dao.tx.type.enum.UNDEFINED_TX_TYPE=Not recognized +# suppress inspection "UnusedProperty" dao.tx.type.enum.UNVERIFIED=Unverified BSQ transaction +# suppress inspection "UnusedProperty" dao.tx.type.enum.INVALID=Invalid BSQ transaction +# suppress inspection "UnusedProperty" dao.tx.type.enum.GENESIS=Genesis transaction +# suppress inspection "UnusedProperty" dao.tx.type.enum.TRANSFER_BSQ=Transférer BSQ +# suppress inspection "UnusedProperty" dao.tx.type.enum.received.TRANSFER_BSQ=Received BSQ +# suppress inspection "UnusedProperty" dao.tx.type.enum.sent.TRANSFER_BSQ=BSQ énvoyé +# suppress inspection "UnusedProperty" dao.tx.type.enum.PAY_TRADE_FEE=Trading fee +# suppress inspection "UnusedProperty" dao.tx.type.enum.COMPENSATION_REQUEST=Fee for compensation request +# suppress inspection "UnusedProperty" +dao.tx.type.enum.REIMBURSEMENT_REQUEST=Fee for reimbursement request +# suppress inspection "UnusedProperty" dao.tx.type.enum.PROPOSAL=Fee for proposal +# suppress inspection "UnusedProperty" dao.tx.type.enum.BLIND_VOTE=Fee for blind vote +# suppress inspection "UnusedProperty" dao.tx.type.enum.VOTE_REVEAL=Vote reveal -dao.tx.type.enum.LOCK_UP=Lock bonds -dao.tx.type.enum.UN_LOCK=Unlock bonds +# suppress inspection "UnusedProperty" +dao.tx.type.enum.LOCKUP=Lock up bond +# suppress inspection "UnusedProperty" +dao.tx.type.enum.UNLOCK=Unlock bond +# suppress inspection "UnusedProperty" +dao.tx.type.enum.ASSET_LISTING_FEE=Asset listing fee +# suppress inspection "UnusedProperty" +dao.tx.type.enum.PROOF_OF_BURN=Proof of burn + dao.tx.issuanceFromCompReq=Compensation request/issuance dao.tx.issuanceFromCompReq.tooltip=Compensation request which led to an issuance of new BSQ.\nIssuance date: {0} - -dao.proposal.create.confirm.info=Proposal fee: {0}\nMining fee: {1} ({2} satoshis/byte)\nTransaction size: {3} Kb\n\nAre you sure you want to publish the proposal? +dao.tx.issuanceFromReimbursement=Reimbursement request/issuance +dao.tx.issuanceFromReimbursement.tooltip=Reimbursement request which led to an issuance of new BSQ.\nIssuance date: {0} dao.proposal.create.missingFunds=You don''t have sufficient funds for creating the proposal.\nMissing: {0} +dao.feeTx.confirm=Confirm {0} transaction +dao.feeTx.confirm.details={0} fee: {1}\nMining fee: {2} ({3} Satoshis/byte)\nTransaction size: {4} Kb\n\nAre you sure you want to publish the {5} transaction? + #################################################################### # Windows #################################################################### contractWindow.title=Détails du conflit -contractWindow.dates=Date de l'offre / date d'échange: -contractWindow.btcAddresses=Adresse Bitcoin acheteur BTC / vendeur BTC: -contractWindow.onions=Adresse du réseau acheteur BTC / vendeur BTC: -contractWindow.numDisputes=Nombre de conflits acheteur BTC / vendeur BTC: -contractWindow.contractHash=Hash du contrat: +contractWindow.dates=Offer date / Trade date +contractWindow.btcAddresses=Bitcoin address BTC buyer / BTC seller +contractWindow.onions=Network address BTC buyer / BTC seller +contractWindow.numDisputes=No. of disputes BTC buyer / BTC seller +contractWindow.contractHash=Contract hash displayAlertMessageWindow.headline=Information importante! displayAlertMessageWindow.update.headline=Information importante de mise à jour! @@ -1112,22 +1584,22 @@ displayUpdateDownloadWindow.verify.failed=Verification failed.\nPlease download displayUpdateDownloadWindow.success=The new version has been successfully downloaded and the signature verified.\n\nPlease open the download directory, shut down the application and install the new version. displayUpdateDownloadWindow.download.openDir=Open download directory -disputeSummaryWindow.title=Résumé -disputeSummaryWindow.openDate=Date d'ouverture du ticket: -disputeSummaryWindow.role=Role du trader: -disputeSummaryWindow.evidence=Preuve: +disputeRésuméWindow.title=Résumé +disputeSummaryWindow.openDate=Ticket opening date +disputeSummaryWindow.role=Trader's role +disputeSummaryWindow.evidence=Evidence disputeSummaryWindow.evidence.tamperProof=Preuve infalsiable disputeSummaryWindow.evidence.id=Vérification d'ID disputeSummaryWindow.evidence.video=Vidéo/Screencast -disputeSummaryWindow.payout=Montant du remboursement: +disputeSummaryWindow.payout=Trade amount payout disputeSummaryWindow.payout.getsTradeAmount=BTC {0} gets trade amount payout disputeSummaryWindow.payout.getsAll=BTC {0} recevoit tous disputeSummaryWindow.payout.custom=Versement personnalisé disputeSummaryWindow.payout.adjustAmount=Amount entered exceeds available amount of {0}.\nWe adjust this input field to the max possible value. -disputeSummaryWindow.payoutAmount.buyer=Buyer's payout amount: -disputeSummaryWindow.payoutAmount.seller=Seller's payout amount: -disputeSummaryWindow.payoutAmount.invert=Use loser as publisher: -disputeSummaryWindow.reason=Motif du conflit: +disputeSummaryWindow.payoutAmount.buyer=Buyer's payout amount +disputeSummaryWindow.payoutAmount.seller=Seller's payout amount +disputeSummaryWindow.payoutAmount.invert=Use loser as publisher +disputeSummaryWindow.reason=Reason of dispute disputeSummaryWindow.reason.bug=Bug disputeSummaryWindow.reason.usability=Usability disputeSummaryWindow.reason.protocolViolation=Violation du protocole @@ -1135,16 +1607,18 @@ disputeSummaryWindow.reason.noReply=Pas de réponse disputeSummaryWindow.reason.scam=Scam disputeSummaryWindow.reason.other=Autre disputeSummaryWindow.reason.bank=Banque -disputeSummaryWindow.summaryNotes=Note de résumé: +disputeSummaryWindow.summaryNotes=Summary notes disputeSummaryWindow.addSummaryNotes=Ajouter des notes de résumé disputeSummaryWindow.close.button=Fermer le ticket disputeSummaryWindow.close.msg=Ticket closed on {0}\n\nSummary:\n{1} delivered tamper proof evidence: {2}\n{3} did ID verification: {4}\n{5} did screencast or video: {6}\nPayout amount for BTC buyer: {7}\nPayout amount for BTC seller: {8}\n\nSummary notes:\n{9} disputeSummaryWindow.close.closePeer=You need to close also the trading peers ticket! -emptyWalletWindow.headline=Outil portefeuille de secours +emptyWalletWindow.headline={0} emergency wallet tool emptyWalletWindow.info=Please use that only in emergency case if you cannot access your fund from the UI.\n\nPlease note that all open offers will be closed automatically when using this tool.\n\nBefore you use this tool, please backup your data directory. You can do this at \"Account/Backup\".\n\nPlease report us your problem and file a bug report on GitHub or at the Bisq forum so that we can investigate what was causing the problem. -emptyWalletWindow.balance=Your available wallet balance: -emptyWalletWindow.address=Votre adresse de destination: +emptyWalletWindow.balance=Your available wallet balance +emptyWalletWindow.bsq.btcBalance=Balance of non-BSQ Satoshis + +emptyWalletWindow.address=Your destination address emptyWalletWindow.button=Envoyer tous vos fonds emptyWalletWindow.openOffers.warn=You have open offers which will be removed if you empty the wallet.\nAre you sure that you want to empty your wallet? emptyWalletWindow.openOffers.yes=Oui, je suis sûr @@ -1153,40 +1627,39 @@ emptyWalletWindow.sent.success=The balance of your wallet was successfully trans enterPrivKeyWindow.headline=Registration open for invited arbitrators only filterWindow.headline=Modifier la liste de filtres -filterWindow.offers=Filtered offers (comma sep.): -filterWindow.onions=Filtered onion addresses (comma sep.): +filterWindow.offers=Filtered offers (comma sep.) +filterWindow.onions=Filtered onion addresses (comma sep.) filterWindow.accounts=Filtered trading account data:\nFormat: comma sep. list of [payment method id | data field | value] -filterWindow.bannedCurrencies=Filtered currency codes (comma sep.): -filterWindow.bannedPaymentMethods=Filtered payment method IDs (comma sep.): -filterWindow.arbitrators=Filtered arbitrators (comma sep. onion addresses): -filterWindow.seedNode=Filtered seed nodes (comma sep. onion addresses): -filterWindow.priceRelayNode=Filtered price relay nodes (comma sep. onion addresses): -filterWindow.btcNode=Filtered Bitcoin nodes (comma sep. addresses + port): -filterWindow.preventPublicBtcNetwork=Prevent usage of public Bitcoin network: +filterWindow.bannedCurrencies=Filtered currency codes (comma sep.) +filterWindow.bannedPaymentMethods=Filtered payment method IDs (comma sep.) +filterWindow.arbitrators=Filtered arbitrators (comma sep. onion addresses) +filterWindow.seedNode=Filtered seed nodes (comma sep. onion addresses) +filterWindow.priceRelayNode=Filtered price relay nodes (comma sep. onion addresses) +filterWindow.btcNode=Filtered Bitcoin nodes (comma sep. addresses + port) +filterWindow.preventPublicBtcNetwork=Prevent usage of public Bitcoin network filterWindow.add=Ajouter un filtre filterWindow.remove=Retirer un filtre -offerDetailsWindow.minBtcAmount=Montant BTC min.: +offerDetailsWindow.minBtcAmount=Min. BTC amount offerDetailsWindow.min=(min. {0}) offerDetailsWindow.distance=(écart avec le prix du marché: {0}) -offerDetailsWindow.myTradingAccount=My trading account: -offerDetailsWindow.offererBankId=(maker's bank ID/BIC/SWIFT): +offerDetailsWindow.myTradingAccount=My trading account +offerDetailsWindow.offererBankId=(maker's bank ID/BIC/SWIFT) offerDetailsWindow.offerersBankName=(maker's bank name) -offerDetailsWindow.bankId=Bank ID (e.g. BIC or SWIFT): -offerDetailsWindow.countryBank=Maker's country of bank: -offerDetailsWindow.acceptedArbitrators=Accepted arbitrators: +offerDetailsWindow.bankId=Bank ID (e.g. BIC or SWIFT) +offerDetailsWindow.countryBank=Maker's country of bank +offerDetailsWindow.acceptedArbitrators=Accepted arbitrators offerDetailsWindow.commitment=Engagement -offerDetailsWindow.agree=Je suis d'accord: -offerDetailsWindow.tac=Termes et conditions: +offerDetailsWindow.agree=Je suis d'accord +offerDetailsWindow.tac=Terms and conditions offerDetailsWindow.confirm.maker=Confirm: Place offer to {0} bitcoin offerDetailsWindow.confirm.taker=Confirm: Take offer to {0} bitcoin -offerDetailsWindow.warn.noArbitrator=You have no arbitrator selected.\nPlease select at least one arbitrator. -offerDetailsWindow.creationDate=Date de création: -offerDetailsWindow.makersOnion=Maker's onion address: +offerDetailsWindow.creationDate=Creation date +offerDetailsWindow.makersOnion=Maker's onion address qRCodeWindow.headline=QR-Code qRCodeWindow.msg=Please use that QR-Code for funding your Bisq wallet from your external wallet. -qRCodeWindow.request=Demande de paiement:\n{0} +qRCodeWindow.request=Payment request:\n{0} selectDepositTxWindow.headline=Select deposit transaction for dispute selectDepositTxWindow.msg=The deposit transaction was not stored in the trade.\nPlease select one of the existing multisig transactions from your wallet which was the deposit transaction used in the failed trade.\n\nYou can find the correct transaction by opening the trade details window (click on the trade ID in the list)and following the trading fee payment transaction output to the next transaction where you see the multisig deposit transaction (the address starts with 3). That transaction ID should be visible in the list presented here. Once you found the correct transaction select that transaction here and continue.\n\nSorry for the inconvenience but that error case should happen very rarely and in future we will try to find better ways to resolve it. @@ -1195,23 +1668,22 @@ selectDepositTxWindow.select=Sélectionner la transaction de dépôt selectBaseCurrencyWindow.headline=Market selection selectBaseCurrencyWindow.msg=The selected default market is {0}.\n\nIf you want to change to another base currency please select one from the drop down box.\nYou can also change later the base currency at the \"Settings/Network\" screen. selectBaseCurrencyWindow.select=Choisir la devise de base -selectBaseCurrencyWindow.default=Use {0} as default market sendAlertMessageWindow.headline=Envoyer une notification globale -sendAlertMessageWindow.alertMsg=Message d'alerte: +sendAlertMessageWindow.alertMsg=Alert message sendAlertMessageWindow.enterMsg=Entrez le message -sendAlertMessageWindow.isUpdate=Est la notification de mise à jour: -sendAlertMessageWindow.version=Nouvelle version no.: +sendAlertMessageWindow.isUpdate=Is update notification +sendAlertMessageWindow.version=New version no. sendAlertMessageWindow.send=Envoyer une notification sendAlertMessageWindow.remove=Supprimer une notification sendPrivateNotificationWindow.headline=Envoyer un message privé -sendPrivateNotificationWindow.privateNotification=Notification privée: +sendPrivateNotificationWindow.privateNotification=Private notification sendPrivateNotificationWindow.enterNotification=Entrez la notification: sendPrivateNotificationWindow.send=Envoyer une notification privée showWalletDataWindow.walletData=Données du portefeuille -showWalletDataWindow.includePrivKeys=Inclure les clés privées: +showWalletDataWindow.includePrivKeys=Include private keys # We do not translate the tac because of the legal nature. We would need translations checked by lawyers # in each language which is too expensive atm. @@ -1223,9 +1695,9 @@ tacWindow.arbitrationSystem=Système d'arbitrage tradeDetailsWindow.headline=Échange tradeDetailsWindow.disputedPayoutTxId=Disputed payout transaction ID: tradeDetailsWindow.tradeDate=Date de l'échange -tradeDetailsWindow.txFee=Commission de minage: +tradeDetailsWindow.txFee=Frais de minage tradeDetailsWindow.tradingPeersOnion=Trading peers onion address -tradeDetailsWindow.tradeState=Trade state: +tradeDetailsWindow.tradeState=Trade state walletPasswordWindow.headline=Entrer le mot de passe pour déverouiller @@ -1233,12 +1705,12 @@ torNetworkSettingWindow.header=Tor networks settings torNetworkSettingWindow.noBridges=Don't use bridges torNetworkSettingWindow.providedBridges=Connect with provided bridges torNetworkSettingWindow.customBridges=Enter custom bridges -torNetworkSettingWindow.transportType=Transport type: +torNetworkSettingWindow.transportType=Transport type torNetworkSettingWindow.obfs3=obfs3 torNetworkSettingWindow.obfs4=obfs4 (recommended) torNetworkSettingWindow.meekAmazon=meek-amazon torNetworkSettingWindow.meekAzure=meek-azure -torNetworkSettingWindow.enterBridge=Enter one or more bridge relays (one per line): +torNetworkSettingWindow.enterBridge=Enter one or more bridge relays (one per line) torNetworkSettingWindow.enterBridgePrompt=type address:port torNetworkSettingWindow.restartInfo=You need to restart to apply the changes torNetworkSettingWindow.openTorWebPage=Open Tor project web page @@ -1252,8 +1724,9 @@ torNetworkSettingWindow.bridges.info=If Tor is blocked by your internet provider feeOptionWindow.headline=Choose currency for trade fee payment feeOptionWindow.info=You can choose to pay the trade fee in BSQ or in BTC. If you choose BSQ you appreciate the discounted trade fee. -feeOptionWindow.optionsLabel=Choose currency for trade fee payment: +feeOptionWindow.optionsLabel=Choose currency for trade fee payment feeOptionWindow.useBTC=Use BTC +feeOptionWindow.fee={0} (≈ {1}) #################################################################### @@ -1273,11 +1746,9 @@ popup.headline.error=Erreur popup.doNotShowAgain=Ne plus me montrer popup.reportError.log=Open log file popup.reportError.gitHub=Report to GitHub issue tracker -popup.reportError.forum=Report at Bisq forum -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Please try to restart your application and check your network connection to see if you can resolve the issue. -popup.error.createTx=Erreur à la création de la transaction: {0} popup.error.takeOfferRequestFailed=An error occurred when someone tried to take one of your offers:\n{0} error.spvFileCorrupted=An error occurred when reading the SPV chain file.\nIt might be that the SPV chain file is corrupted.\n\nError message: {0}\n\nDo you want to delete it and start a resync? @@ -1286,44 +1757,38 @@ error.deleteAddressEntryListFailed=Could not delete AddressEntryList file.\nErro popup.warning.walletNotInitialized=Le portefeuille n'est pas encore initialisé popup.warning.wrongVersion=You probably have the wrong Bisq version for this computer.\nYour computer''s architecture is: {0}.\nThe Bisq binary you installed is: {1}.\nPlease shut down and re-install the correct version ({2}). popup.warning.incompatibleDB=We detected incompatible data base files!\n\nThose database file(s) are not compatible with our current code base:\n{0}\n\nWe made a backup of the corrupted file(s) and applied the default values to a new database version.\n\nThe backup is located at:\n{1}/db/backup_of_corrupted_data.\n\nPlease check if you have the latest version of Bisq installed.\nYou can download it at:\nhttps://bisq.network/downloads\n\nPlease restart the application. -popup.warning.cannotConnectAtStartup=You still did not get connected to the {0} network.\nIf you use Tor for Bitcoin it might be that you got an unstable Tor circuit.\nYou can wait longer or try to restart. -popup.warning.unknownProblemAtStartup=Il y a un problème inconnu au lancement.\nMerci de redémarrer et de remplir un rapport de bug si le problème persiste. -popup.warning.startupFailed.timeout=L'application n'a pas pu démarrer après 4 minutes.\n\n{0} popup.warning.startupFailed.twoInstances=Bisq est déjà lancé. Vous ne pouvez pas lancer deux instances de bisq. popup.warning.cryptoTestFailed=Seems that you use a self compiled binary and have not following the build instructions in https://github.com/bisq-network/exchange/blob/master/doc/build.md#7-enable-unlimited-strength-for-cryptographic-keys.\n\nIf that is not the case and you use the official Bisq binary, please file a bug report to the GitHub page.\nError={0} -popup.warning.oldOffers.msg=You have open offers which have been created with an older version of Bisq.\nPlease remove those offers as they are not valid anymore.\n\nOffers (ID): {0} -popup.warning.oldOffers.buttonText=Retirer les offres expirées popup.warning.tradePeriod.halfReached=Your trade with ID {0} has reached the half of the max. allowed trading period and is still not completed.\n\nThe trade period ends on {1}\n\nPlease check your trade state at \"Portfolio/Open trades\" for further information. popup.warning.tradePeriod.ended=Your trade with ID {0} has reached the max. allowed trading period and is not completed.\n\nThe trade period ended on {1}\n\nPlease check your trade at \"Portfolio/Open trades\" for contacting the arbitrator. popup.warning.noTradingAccountSetup.headline=You have not setup a trading account popup.warning.noTradingAccountSetup.msg=You need to setup a national currency or altcoin account before you can create an offer.\nDo you want to setup an account? -popup.warning.noArbitratorSelected.headline=You don't have an arbitrator selected. -popup.warning.noArbitratorSelected.msg=You need to setup at least one arbitrator to be able to trade.\nDo you want to do this now? +popup.warning.noArbitratorsAvailable=There are no arbitrators available. popup.warning.notFullyConnected=You need to wait until you are fully connected to the network.\nThat might take up to about 2 minutes at startup. popup.warning.notSufficientConnectionsToBtcNetwork=You need to wait until you have at least {0} connections to the Bitcoin network. popup.warning.downloadNotComplete=You need to wait until the download of missing Bitcoin blocks is complete. - popup.warning.removeOffer=Are you sure you want to remove that offer?\nThe maker fee of {0} will be lost if you remove that offer. popup.warning.tooLargePercentageValue=Vous ne pouvez pas définir un pourcentage de 100% ou plus. popup.warning.examplePercentageValue=Merci de définir un pourcentage en nombre comme \"5.4\" pour 5.4% popup.warning.noPriceFeedAvailable=There is no price feed available for that currency. You cannot use a percent based price.\nPlease select the fixed price. popup.warning.sendMsgFailed=L'envoi du message à votre partenaire d'échange a échoué.\nMerci d'essayer de nouveau si l'échec persiste merci de reporter le bug. -popup.warning.insufficientBtcFundsForBsqTx=You don''t have sufficient BTC funds for paying the miner fee for that BSQ transaction.\nPlease fund your BTC wallet to be able to transfer BSQ.\nMissing funds: {0} -popup.warning.insufficientBsqFundsForBtcFeePayment=You don''t have sufficient BSQ funds for paying the mining fee in BSQ.\nYou can pay the fee in BTC or you need to fund your BSQ wallet. You can buy BSQ in Bisq.\nMissing BSQ funds: {0} -popup.warning.noBsqFundsForBtcFeePayment=Your BSQ wallet does not have sufficient funds for paying the mining fee in BSQ. +popup.warning.insufficientBtcFundsForBsqTx=You don''t have sufficient BTC funds for paying the miner fee for that transaction.\nPlease fund your BTC wallet.\nMissing funds: {0} + +popup.warning.insufficientBsqFundsForBtcFeePayment=You don''t have sufficient BSQ funds for paying the trade fee in BSQ. You can pay the fee in BTC or you need to fund your BSQ wallet. You can buy BSQ in Bisq.\n\nMissing BSQ funds: {0} +popup.warning.noBsqFundsForBtcFeePayment=Your BSQ wallet does not have sufficient funds for paying the trade fee in BSQ. popup.warning.messageTooLong=Your message exceeds the max. allowed size. Please send it in several parts or upload it to a service like https://pastebin.com. popup.warning.lockedUpFunds=You have locked up funds from a failed trade.\nLocked up balance: {0} \nDeposit tx address: {1}\nTrade ID: {2}.\n\nPlease open a support ticket by selecting the trade in the pending trades screen and clicking \"alt + o\" or \"option + o\"." -popup.warning.offerWithoutAccountAgeWitness=Your offer with offer ID {0} was created with an older version of Bisq which was not supporting the account age verification.\nAfter first of February 2018 such offers are not valid anymore.\n\nPlease remove that offer and create a new one instead. -popup.warning.offerWithoutAccountAgeWitness.confirm=Retirer l'offre popup.warning.nodeBanned=One of the {0} nodes got banned. Please restart your application to be sure to not be connected to the banned node. popup.warning.priceRelay=price relay popup.warning.seed=seed -popup.info.securityDepositInfo=To ensure that both traders follow the trade protocol they need to pay a security deposit.\n\nThe deposit will stay in your local trading wallet until the offer gets accepted by another trader.\nIt will be refunded to you after the trade has successfully completed.\n\nPlease note that you need to keep your application running if you have an open offer. When another trader wants to take your offer it requires that your application is online for executing the trade protocol.\nBe sure that you have standby mode deactivated as that would disconnect the network (standby of the monitor is not a problem). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=I confirm that I can make the deposit +popup.info.shutDownWithOpenOffers=Bisq is being shut down, but there are open offers. \n\nThese offers won't be available on the P2P network while Bisq is shut down, but they will be re-published to the P2P network the next time you start Bisq.\n\nTo keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't go into standby mode...monitor standby is not a problem). + popup.privateNotification.headline=Notification privée importante! @@ -1337,6 +1802,9 @@ popup.shutDownInProgress.msg=La fermeture peut prendre quelques secondes.\nMerci popup.attention.forTradeWithId=Veuillez consulter votre échange ID {0} +popup.roundedFiatValues.headline=New privacy feature: Rounded fiat values +popup.roundedFiatValues.msg=To increase privacy of your trade the {0} amount was rounded.\n\nDepending on the client version you''ll pay or receive either values with decimals or rounded ones.\n\nBoth values do comply from now on with the trade protocol.\n\nAlso be aware that BTC values are changed automatically to match the rounded fiat amount as close as possible. + #################################################################### # Notifications @@ -1421,10 +1889,10 @@ confidence.confirmed=Confirmé dans {0} bloc(s) confidence.invalid=La transaction n'est pas valide peerInfo.title=Info du pair -peerInfo.nrOfTrades=Numéro d'échanges complètes +peerInfo.nrOfTrades=Number of completed trades peerInfo.notTradedYet=You have not traded with that user so far. -peerInfo.setTag=Set tag for that peer: -peerInfo.age=Payment account age: +peerInfo.setTag=Set tag for that peer +peerInfo.age=Payment account age peerInfo.unknownAge=Age not known addressTextField.openWallet=Open your default Bitcoin wallet @@ -1444,7 +1912,6 @@ txIdTextField.blockExplorerIcon.tooltip=Open a blockchain explorer with that tra navigation.account=\"Compte\" navigation.account.walletSeed=\"Account/Wallet seed\" -navigation.arbitratorSelection=\"Arbitrator selection\" navigation.funds.availableForWithdrawal=\"Fund/Send funds\" navigation.portfolio.myOpenOffers=\"Portfolio/My open offers\" navigation.portfolio.pending=\"Portfolio/Open trades\" @@ -1513,8 +1980,8 @@ time.minutes=minutes time.seconds=secondes -password.enterPassword=Entrer le mot de passe: -password.confirmPassword=Confirmer le mot de passe: +password.enterPassword=Enter password +password.confirmPassword=Confirm password password.tooLong=Password must be less than 500 characters. password.deriveKey=Derive key from password password.walletDecrypted=Portefeuille décrypté avec succès et protection par mot de passe désactivée. @@ -1526,11 +1993,12 @@ password.forgotPassword=Mot de passe oublié? password.backupReminder=Please note that when setting a wallet password all automatically created backups from the unencrypted wallet will be deleted.\n\nIt is highly recommended to make a backup of the application directory and write down your seed words before setting a password! password.backupWasDone=I have already done a backup -seed.seedWords=Graines du portefeuille: -seed.date=Wallet date: +seed.seedWords=Wallet seed words +seed.enterSeedWords=Enter wallet seed words +seed.date=Wallet date seed.restore.title=Restore wallets from seed words seed.restore=Restore wallets -seed.creationDate=Date de création: +seed.creationDate=Creation date seed.warn.walletNotEmpty.msg=Your Bitcoin wallet is not empty.\n\nYou must empty this wallet before attempting to restore an older one, as mixing wallets together can lead to invalidated backups.\n\nPlease finalize your trades, close all your open offers and go to the Funds section to withdraw your bitcoin.\nIn case you cannot access your bitcoin you can use the emergency tool to empty the wallet.\nTo open that emergency tool press \"alt + e\" or \"option + e\" . seed.warn.walletNotEmpty.restore=Je confirme que je veux restaurer. seed.warn.walletNotEmpty.emptyWallet=D'abord, je videra mon portefeuille. @@ -1544,79 +2012,98 @@ seed.restore.error=An error occurred when restoring the wallets with seed words. #################################################################### payment.account=Compte -payment.account.no=Compte no.: -payment.account.name=Nom du compte: +payment.account.no=Account no. +payment.account.name=Account name payment.account.owner=Account owner full name payment.account.fullName=Full name (first, middle, last) -payment.account.state=State/Province/Region: -payment.account.city=City: -payment.bank.country=Pays de la banque: +payment.account.state=State/Province/Region +payment.account.city=City +payment.bank.country=Country of bank payment.account.name.email=Account owner full name / email payment.account.name.emailAndHolderId=Account owner full name / email / {0} -payment.bank.name=Nom de la banque: +payment.bank.name=Nom de la banque payment.select.account=Sélectionner le type de compte payment.select.region=Sélectionner la région payment.select.country=Sélectionner le pays payment.select.bank.country=Sélectionner le pays de la banque payment.foreign.currency=Êtes-vous sûr de vouloir choisir une devise autre que celle du pays par défaut? payment.restore.default=Non, restaurer la devise par défaut -payment.email=Email: -payment.country=Pays: -payment.extras=Extra requirements: -payment.email.mobile=Email ou numéro de mobile: -payment.altcoin.address=Adresse Altcoin: -payment.altcoin=Altcoin: +payment.email=Email +payment.country=Pays +payment.extras=Extra requirements +payment.email.mobile=Email or mobile no. +payment.altcoin.address=Altcoin address +payment.altcoin=Altcoin payment.select.altcoin=Sélectionner ou chercher un altcoin -payment.secret=Question secrète: -payment.answer=Réponse: -payment.wallet=ID du portefeuille: -payment.uphold.accountId=Username or email or phone no.: -payment.cashApp.cashTag=$Cashtag: -payment.moneyBeam.accountId=Email or phone no.: -payment.venmo.venmoUserName=Venmo username: -payment.popmoney.accountId=Email or phone no.: -payment.revolut.accountId=Email or phone no.: -payment.supportedCurrencies=Supported currencies: -payment.limitations=Limitations: -payment.salt=Salt for account age verification: +payment.secret=Secret question +payment.answer=Answer +payment.wallet=Wallet ID +payment.uphold.accountId=Username or email or phone no. +payment.cashApp.cashTag=$Cashtag +payment.moneyBeam.accountId=Email or phone no. +payment.venmo.venmoUserName=Venmo username +payment.popmoney.accountId=Email or phone no. +payment.revolut.accountId=Email or phone no. +payment.promptPay.promptPayId=Citizen ID/Tax ID or phone no. +payment.supportedCurrencies=Supported currencies +payment.limitations=Limitations +payment.salt=Salt for account age verification payment.error.noHexSalt=The salt need to be in HEX format.\nIt is only recommended to edit the salt field if you want to transfer the salt from an old account to keep your account age. The account age is verified by using the account salt and the identifying account data (e.g. IBAN). -payment.accept.euro=Accepter les échanges avec ces pays Zone Euro: -payment.accept.nonEuro=Accepter les échanges avec ces pays hors Zone Euro: -payment.accepted.countries=Pays acceptés: -payment.accepted.banks=Banques acceptées (ID): -payment.mobile=Numéro de portable: -payment.postal.address=Adresse postale: -payment.national.account.id.AR=CBU number: +payment.accept.euro=Accept trades from these Euro countries +payment.accept.nonEuro=Accept trades from these non-Euro countries +payment.accepted.countries=Accepted countries +payment.accepted.banks=Accepted banks (ID) +payment.mobile=Mobile no. +payment.postal.address=Postal address +payment.national.account.id.AR=CBU number #new -payment.altcoin.address.dyn={0} adresse: -payment.accountNr=Numéro de compte: -payment.emailOrMobile=Email ou numéro de mobile: +payment.altcoin.address.dyn={0} address +payment.altcoin.receiver.address=Receiver's altcoin address +payment.accountNr=Account number +payment.emailOrMobile=Email or mobile nr payment.useCustomAccountName=Utiliser un nom de compte personnalisé -payment.maxPeriod=Max. allowed trade period: +payment.maxPeriod=Max. allowed trade period payment.maxPeriodAndLimit=Max. trade duration: {0} / Max. trade limit: {1} / Account age: {2} payment.maxPeriodAndLimitCrypto=Max. trade duration: {0} / Max. trade limit: {1} payment.currencyWithSymbol=Devise:{0} payment.nameOfAcceptedBank=Nom de la banque acceptée payment.addAcceptedBank=Ajouter une banque acceptée payment.clearAcceptedBanks=Supprimer des banques acceptées -payment.bank.nameOptional=Nom de la banque (optionnel): -payment.bankCode=Code de la banque: +payment.bank.nameOptional=Bank name (optional) +payment.bankCode=Bank code payment.bankId=Bank ID (BIC/SWIFT) -payment.bankIdOptional=ID de la banque (BIC/SWIFT) (optionnel): -payment.branchNr=Branch no.: -payment.branchNrOptional=Branch no. (optional): -payment.accountNrLabel=Compte no. (IBAN): -payment.accountType=Type de compte: +payment.bankIdOptional=Bank ID (BIC/SWIFT) (optional) +payment.branchNr=Branch no. +payment.branchNrOptional=Branch no. (optional) +payment.accountNrLabel=Account no. (IBAN) +payment.accountType=Account type payment.checking=Vérification payment.savings=Savings -payment.personalId=ID personnelle: +payment.personalId=Personal ID payment.clearXchange.info=Please be sure that you fulfill the requirements for the usage of Zelle (ClearXchange).\n\n1. You need to have your Zelle (ClearXchange) account verified on their platform before starting a trade or creating an offer.\n\n2. You need to have a bank account at one of the following member banks:\n\t● Bank of America\n\t● Capital One P2P Payments\n\t● Chase QuickPay\n\t● FirstBank Person to Person Transfers\n\t● Frost Send Money\n\t● U.S. Bank Send Money\n\t● TD Bank\n\t● Citibank\n\t● Wells Fargo SurePay\n\n3. You need to be sure to not exceed the daily or monthly Zelle (ClearXchange) transfer limits.\n\nPlease use Zelle (ClearXchange) only if you fulfill all those requirements, otherwise it is very likely that the Zelle (ClearXchange) transfer fails and the trade ends up in a dispute.\nIf you have not fulfilled the above requirements you will lose your security deposit.\n\nPlease also be aware of a higher chargeback risk when using Zelle (ClearXchange).\nFor the {0} seller it is highly recommended to get in contact with the {1} buyer by using the provided email address or mobile number to verify that he or she is really the owner of the Zelle (ClearXchange) account. payment.moneyGram.info=When using MoneyGram the BTC buyer has to send the Authorisation number and a photo of the receipt by email to the BTC seller. The receipt must clearly show the seller's full name, country, state and the amount. The buyer will get displayed the seller's email in the trade process. payment.westernUnion.info=When using Western Union the BTC buyer has to send the MTCN (tracking number) and a photo of the receipt by email to the BTC seller. The receipt must clearly show the seller's full name, city, country and the amount. The buyer will get displayed the seller's email in the trade process. +payment.halCash.info=When using HalCash the BTC buyer need to send the BTC seller the HalCash code via a text message from the mobile phone.\n\nPlease make sure to not exceed the maximum amount your bank allows you to send with HalCash. The min. amount per withdrawal is 10 EUR and the max. amount is 600 EUR. For repeated withdrawals it is 3000 EUR per receiver per day and 6000 EUR per receiver per month. Please cross check those limits with your bank to be sure they use the same limits as stated here.\n\nThe withdrawal amount must be a multiple of 10 EUR as you cannot withdraw other amounts from an ATM. The UI in the create-offer and take-offer screen will adjust the BTC amount so that the EUR amount is correct. You cannot use market based price as the EUR amount would be changing with changing prices.\n\nIn case of a dispute the BTC buyer need to provide the proof that he sent the EUR. payment.limits.info=Please be aware that all bank transfers carry a certain amount of chargeback risk.\n\nTo mitigate this risk, Bisq sets per-trade limits based on two factors:\n\n1. The estimated level of chargeback risk for the payment method used\n2. The age of your account for that payment method\n\nThe account you are creating now is new and its age is zero. As your account grows in age over a two-month period, your per-trade limits will grow along with it:\n\n● During the 1st month, your per-trade limit will be {0}\n● During the 2nd month, your per-trade limit will be {1}\n● After the 2nd month, your per-trade limit will be {2}\n\nPlease note that there are no limits on the total number of times you can trade. +payment.cashDeposit.info=Please confirm your bank allows you to send cash deposits into other peoples' accounts. For example, Bank of America and Wells Fargo no longer allow such deposits. + +payment.f2f.contact=Contact info +payment.f2f.contact.prompt=How you want to get contacted by the trading peer? (email address, phone number,...) +payment.f2f.city=City for 'Face to face' meeting +payment.f2f.city.prompt=The city will be displayed with the offer +payment.f2f.optionalExtra=Optional additional information +payment.f2f.extra=Additional information + +payment.f2f.extra.prompt=The maker can define 'terms and conditions' or add a public contact information. It will be displayed with the offer. +payment.f2f.info='Face to Face' trades have different rules and come with different risks than online transactions.\n\nThe main differences are:\n● The trading peers need to exchange information about the meeting location and time by using their provided contact details.\n● The trading peers need to bring their laptops and do the confirmation of 'payment sent' and 'payment received' at the meeting place.\n● If a maker has special 'terms and conditions' he needs to state those in the 'Addition information' text field in the account.\n● By taking an offer the taker agrees to the maker's stated 'terms and conditions'.\n● In case of a dispute the arbitrator cannot help much as it is usually hard to get tamper proof evidence of what happened at the meeting. In such cases the BTC funds might get locked indefinitely or until the trading peers come to an agreement.\n\nTo be sure you fully understand the differences with 'Face to Face' trades please read the instructions and recommendations at: 'https://docs.bisq.network/trading-rules.html#f2f-trading' +payment.f2f.info.openURL=Open web page +payment.f2f.offerbook.tooltip.countryAndCity=County and city: {0} / {1} +payment.f2f.offerbook.tooltip.extra=Additional information: {0} + + # We use constants from the code so we do not use our normal naming convention # dynamic values are not recognized by IntelliJ @@ -1628,6 +2115,7 @@ US_POSTAL_MONEY_ORDER=US Postal Money Order CASH_DEPOSIT=Dépôt de cash MONEY_GRAM=MoneyGram WESTERN_UNION=Western Union +F2F=Face to face (in person) # suppress inspection "UnusedProperty" NATIONAL_BANK_SHORT=Banques nationales @@ -1643,26 +2131,52 @@ CASH_DEPOSIT_SHORT=Dépôt de cash MONEY_GRAM_SHORT=MoneyGram # suppress inspection "UnusedProperty" WESTERN_UNION_SHORT=Western Union +# suppress inspection "UnusedProperty" +F2F_SHORT=F2F # Do not translate brand names +# suppress inspection "UnusedProperty" OK_PAY=OKPay +# suppress inspection "UnusedProperty" UPHOLD=Uphold +# suppress inspection "UnusedProperty" CASH_APP=Cash App +# suppress inspection "UnusedProperty" MONEY_BEAM=MoneyBeam (N26) +# suppress inspection "UnusedProperty" VENMO=Venmo +# suppress inspection "UnusedProperty" POPMONEY=Popmoney +# suppress inspection "UnusedProperty" REVOLUT=Revolut +# suppress inspection "UnusedProperty" PERFECT_MONEY=Perfect Money +# suppress inspection "UnusedProperty" ALI_PAY=AliPay +# suppress inspection "UnusedProperty" WECHAT_PAY=WeChat Pay +# suppress inspection "UnusedProperty" SEPA=SEPA +# suppress inspection "UnusedProperty" SEPA_INSTANT=SEPA Instant Payments +# suppress inspection "UnusedProperty" FASTER_PAYMENTS=Faster Payments +# suppress inspection "UnusedProperty" SWISH=Swish +# suppress inspection "UnusedProperty" CLEAR_X_CHANGE=Zelle (ClearXchange) +# suppress inspection "UnusedProperty" CHASE_QUICK_PAY=Chase QuickPay +# suppress inspection "UnusedProperty" INTERAC_E_TRANSFER=Interac e-Transfer +# suppress inspection "UnusedProperty" +HAL_CASH=HalCash +# suppress inspection "UnusedProperty" BLOCK_CHAINS=Altcoins +# suppress inspection "UnusedProperty" +PROMPT_PAY=PromptPay +# suppress inspection "UnusedProperty" +ADVANCED_CASH=Advanced Cash # suppress inspection "UnusedProperty" OK_PAY_SHORT=OKPay @@ -1686,6 +2200,7 @@ ALI_PAY_SHORT=AliPay WECHAT_PAY_SHORT=WeChat Pay # suppress inspection "UnusedProperty" SEPA_SHORT=SEPA +# suppress inspection "UnusedProperty" SEPA_INSTANT_SHORT=SEPA Instant # suppress inspection "UnusedProperty" FASTER_PAYMENTS_SHORT=Paiements plus rapides @@ -1698,8 +2213,13 @@ CHASE_QUICK_PAY_SHORT=Chase QuickPay # suppress inspection "UnusedProperty" INTERAC_E_TRANSFER_SHORT=Interac e-Transfer # suppress inspection "UnusedProperty" +HAL_CASH_SHORT=HalCash +# suppress inspection "UnusedProperty" BLOCK_CHAINS_SHORT=Altcoins - +# suppress inspection "UnusedProperty" +PROMPT_PAY_SHORT=PromptPay +# suppress inspection "UnusedProperty" +ADVANCED_CASH_SHORT=Advanced Cash #################################################################### # Validation @@ -1707,6 +2227,7 @@ BLOCK_CHAINS_SHORT=Altcoins validation.empty=Empty input is not allowed. validation.NaN=Input is not a valid number. +validation.notAnInteger=Input is not an integer value. validation.zero=Input of 0 is not allowed. validation.negative=A negative value is not allowed. validation.fiat.toSmall=Input smaller than minimum possible amount is not allowed. @@ -1723,18 +2244,16 @@ validation.bankIdNumber={0} doit se composer de {1} nombres. validation.accountNr=Il faut que le numéro de compte se compose de {0} nombres. validation.accountNrChars=Il faut que le numéro de compte se compose de {0} caractères. validation.btc.invalidAddress=Cet adresse n'est pas correcte. Vérifiez le format d'adresse s'il vous plaît. -validation.btc.amountBelowDust=The amount you would like to send is below the dust limit of {0} \nand would be rejected by the Bitcoin network.\nPlease use a higher amount. validation.integerOnly=Please enter integer numbers only. validation.inputError=Your input caused an error:\n{0} -validation.bsq.insufficientBalance=Amount exceeds the available balance of {0}. -validation.btc.exceedsMaxTradeLimit=Amount larger than your trade limit of {0} is not allowed. +validation.bsq.insufficientBalance=Your available balance is {0}. +validation.btc.exceedsMaxTradeLimit=Your trade limit is {0}. validation.bsq.amountBelowMinAmount=Min. amount is {0} validation.nationalAccountId={0} doit se composer de {1} nombres. #new validation.invalidInput=Invalid input: {0} validation.accountNrFormat=Account number must be of format: {0} -validation.altcoin.wrongChecksum=Address validation failed because checksum was not correct. validation.altcoin.wrongStructure=Address validation failed because it does not match the structure of a {0} address. validation.altcoin.zAddressesNotSupported=L'adresse ZEC doit commencer par un t. Les adresses commençant par un z ne sont pas gérées. validation.altcoin.invalidAddress=L'adresse n'est pas un adresse valide {0}! {1} @@ -1753,3 +2272,12 @@ validation.iban.checkSumInvalid=IBAN checksum is invalid validation.iban.invalidLength=Number must have length 15 to 34 chars. validation.interacETransfer.invalidAreaCode=Non-Canadian area code validation.interacETransfer.invalidPhone=Invalid phone number format and not an email address +validation.interacETransfer.invalidQuestion=Must contain only letters, numbers, spaces and/or the symbols ' _ , . ? - +validation.interacETransfer.invalidAnswer=Must be one word and contain only letters, numbers, and/or the symbol - +validation.inputTooLarge=Input must not be larger than {0} +validation.inputTooSmall=Input has to be larger than {0} +validation.amountBelowDust=The amount below the dust limit of {0} is not allowed. +validation.length=Length must be between {0} and {1} +validation.pattern=Input must be of format: {0} +validation.noHexString=The input is not in HEX format. +validation.advancedCash.invalidFormat=Must be a valid email or wallet id of format: X000000000000 diff --git a/core/src/main/resources/i18n/displayStrings_hu.properties b/core/src/main/resources/i18n/displayStrings_hu.properties index 48e0a86c66..758d9ff075 100644 --- a/core/src/main/resources/i18n/displayStrings_hu.properties +++ b/core/src/main/resources/i18n/displayStrings_hu.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Igen, elkezdtem a kifizetést portfolio.pending.step2_seller.waitPayment.headline=Várás fizetésre portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=A betét tranzakció legalább egy blokklánc konfirmaciót kapott.\nMeg kell várnia, amíg a BTC vevő el nem indítja a {0} fizetést. -portfolio.pending.step2_seller.warn=A BTC vevő a {0} még mindig nem fizette ki.\nMeg kell várnia, amíg ez el nem végzi a kifizetést.\nHa a tranzakció még nem fejeződött be {1}-éig, a bíróhoz kerül megvizsgálásra. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=A BTC vevő még nem kezdte meg fizetését!\nA tranzakció maximális megengedett időtartama lejárt.\nVárakozhat hosszabb ideig, ezennel több időt adhatna váltótársának vagy kapcsolatba léphet a bíróval egy vita megnyitásához. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Nincs hozzáférhető tranzakció funds.tx.revert=Visszaszállás funds.tx.txSent=Tranzakció sikeresen elküldve egy új címre a helyi Bisq pénztárcában. funds.tx.direction.self=Küld saját magadnak. -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=Kártérítési kérelem @@ -762,9 +765,9 @@ support.buyerOfferer=BTC vevő/Ajánló support.sellerOfferer=BTC eladó/Ajánló support.buyerTaker=BTC vásárló/Vevő support.sellerTaker=BTC eladó/Vevő -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Kérjük, vegye figyelembe a vitarendezés alapvető szabályait:\n1. A bírók kérelmeit válaszolnia kell 2 napon belül.\n2. A vita maximális időtartama 14 nap.\n3. Felelnie kell amire a bíró kérni fog Öntől hogy bizonyítékot szolgáltasson ügyének.\n4. Elfogadta a wiki felhasználói körében vázolt szabályokat, amikor elindította az alkalmazást.\n\nKérjük olvassa el részletesebben a vitarendezési folyamatot a wiki weboldalunkon:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Rendszerüzenet: {0} support.youOpenedTicket=Nyitottál egy támogatási kérelmet. support.youOpenedDispute=Megindítottál egy vitarendezési kérelmet.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Használj egyéni Bitcoin Core csomópontokat settings.net.warn.usePublicNodes=Ha a nyilvános Bitcoin hálózatot használja, súlyos adatvédelmi problémára van kitéve, amelyet a hibás szűrőtervezés és -végrehajtás okoz, amelyet az SPV pénztárcákhoz használnak, mint a BitcoinJ (a Bisq-ban használt). Bármely teljes csomópont amelyhez csatlakozik megtudhatja, hogy az összes pénztárca címei egy egységhez tartoznak.\n\nKérjük olvassa el a részleteket a következő címen: https://bisq.network/blog/privacy-in-bitsquare.\n\nBiztosan szeretné használni a nyilvános csomópontokat? settings.net.warn.usePublicNodes.useProvided=Nem, használd a megadott csomópontokat settings.net.warn.usePublicNodes.usePublic=Igen, használd a nyilvános hálózatot -settings.net.warn.useCustomNodes.B2XWarning=Győződjön meg róla, hogy a Bitcoin csomópontja egy megbízható Bitcoin Core csomópont!\n\nA Bitcoin alapvető konszenzus szabályait nem követő csomópontok összekapcsolása felboríthatja a mobiltárcáját, és problémákat okozhat a tranzakció folyamatán.\n\nAzok a felhasználók, akik a konszenzus szabályokat sértő csomópontokhoz csatlakoznak, felelősek az esetleges károkért. Az ezzel járó vitákat a másik fél javára döntődnek. Nem lesz ajánlva technikai támogatást olyan felhasználóknak, akik figyelmen kívül hagyják figyelmeztető és védelmi mechanizmusaikat! -settings.net.localhostBtcNodeInfo=(Háttér-információ: Ha helyi bitcoin csomópontot (localhost) futtat, akkor kizárólag ehhez kapcsolódik.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Onion cím settings.net.creationDateColumn=Alapítva @@ -857,17 +860,17 @@ settings.net.inbound=bejövő settings.net.outbound=kimenő settings.net.reSyncSPVChainLabel=SPV lánc újraszinkronizálása settings.net.reSyncSPVChainButton=Töröld az SPV fájlt és újraszinkronizálj -settings.net.reSyncSPVSuccess=Az SPV láncfájl a következő indításkor törölve lesz. Most újra kell indítania az alkalmazását.\n\nÚjraindítás után a hálózathoz való újszinkronizálás eltarthat egy ideig, és csupán e befejezése után láthatja az összes tranzakciót.\n\nÚjszinkronizálás után kérjük végezzen ismét egy újraindítást, mert néha bizonyos ellentmondások helytelen mérlegkijelzéshez vezethetnek. -settings.net.reSyncSPVAfterRestart=Az SPV láncfájl törölve lett. Kérjük legyen türelemmel, időbe telhet a hálózattal való újraszinkronizálás. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Az újraszinkronizálás befejeződött. Kérjük, indítsa újra az alkalmazást. settings.net.reSyncSPVFailed=Nem sikerült törölni az SPV-lánc fájlt.\nHiba: {0} setting.about.aboutBisq=Bisq-ről -setting.about.about=A Bisq egy nyílt forráskódú projekt és egy decentralizált hálózat, olyan felhasználóknak akik Bitcoint nemzeti valutákkal vagy alternatív kriptográfiai valutákkal szeretnének váltani adatvédelmezett módon. További információ a Bisq-ról a projekt weboldalán. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq honlap setting.about.code=Forráskód setting.about.agpl=AGPL licenc setting.about.support=Támogasd Bisq-et -setting.about.def=Bisq nem egy vállalat, hanem közösségi projekt és nyitott részvételre. Ha részt szeretne venni vagy támogatni a Bisq-et, kérjük kövesse az alábbi linkeket. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Hozzájárulás setting.about.donate=Adományoz setting.about.providers=Adatszolgáltatók @@ -889,7 +892,7 @@ setting.about.subsystems.val=Hálózati verzió: {0}; P2P üzenet verziója: {1} account.tab.arbitratorRegistration=Bírói bejegyzés account.tab.account=Fiók account.info.headline=Üdvözöljük a Bisq-fiókodban -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Nemzeti valuta fiókok account.menu.altCoinsAccountView=Altérmék fiókok @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Bíró regisztrálás account.arbitratorRegistration.revoke=Regisztráció visszavonása -account.arbitratorRegistration.info.msg=Kérjük vegye figyelembe, hogy a visszavonás után 15 napig elérhetőnek kell maradnia, mivel lehetnek olyan tranzakciók, amelyek önt bíróként használják. A maximálisan megengedett tranzakciói időszak 8 nap, és a vitarendezés akár 7 napig is eltarthat. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Legalább 1 nyelvet kell beállítanod.\nHozzáadtuk az alapértelmezett nyelvet számodra. account.arbitratorRegistration.removedSuccess=Sikeresen eltávolította bíróját a P2P hálózatból. account.arbitratorRegistration.removedFailed=A bíró nem távolítható el.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Csak olyan bírákat választhat ki, akik leg account.arbitratorSelection.minOne=Legalább egy bírót kell választania. account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Ügyeljen arra, hogy követi a {0} pénztárcák használatának követelményeit a {1} weboldalon leírtak szerint.\nKözpontosított váltók pénztárcáinak használatávál, ahol nincsen hozzáférése kulcsaihoz vagy egy inkompatibilis pénztárca szoftvert használnak, tranzakciózói értékeinek elvesztéséhez vezethet!\nA bíró nem {2} szakember, és ilyenféle esetekben nem tud segíteni. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Megértem és alátámasztom, hogy tudom, melyik pénztárcát kell használnom. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Jelszó törlése account.password.removePw.headline=Pénztárca jelszavas védelmének távolítása account.password.setPw.button=Jelszó beiktatása account.password.setPw.headline=Pénztárca jelszóvédelmének beiktatása -account.password.info=Jelszavas védelemmel meg kell adnia a jelszavát, amikor kivonja a bitcoint a pénztárcából, vagy meg szeretné nézni illetve visszaállítani egy mobiltárcát a magszavakból, valamint az alkalmazás indításakor. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Pénztárca magszavak biztonsági mentése -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Nem állított be olyan pénztárca jelszót, amely megvédené a magszavak megjelenítését.\n\nMeg szeretné jeleníteni a magszavakat? account.seed.warn.noPw.yes=Igen, és ne kérdezz többé account.seed.enterPw=Írd be a jelszót a magszavak megtekintéséhez -account.seed.restore.info=Kérjük vegye figyelembe, hogy nem importálhat egy régi Bisq verziót (bármilyen változat 0.5.0 előtt), mivel hogy a pénztárca formátuma megváltozott!\n\nHa a régi verziótól az új Bisq alkalmazásba szeretné áthelyezni összegeit, küldje el ezeket egy Bitcoin tranzakción át.\n\nUgyanakkor vegye figyelembe, hogy a pénztárca visszaállítása csak vészhelyzet esetén történhet, és problémákat okozhat a belső pénztárca-adatbázisban.\nEz nem egy általunk ajánlott módszer a biztonsági másolat alkalmazására! Kérjük használjon egy biztonsági másolatot az alkalmazásadat könyvtárból a korábbi alkalmazásállapot helyreállításához. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Oké, értem és vissza szeretném állítani @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Proposal type dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=Eltávolít dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=BSQ pénzeszközök átutalása dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Visszavonási kérelem jóváhagyása dao.wallet.send.sendFunds.details=Küldve: {0}\nFogadó címe: {1}.\nSzükséges tranzakciós díj: {2} ({3} Satoshi/bájt)\nTranzakcióméret: {4} Kb\n\nCímzett kapni fog: {5}\n\nBiztosan szeretné visszavonni az összeget? -dao.wallet.chainHeightSynced={0} blokkig szinkronizálva (legújabb blokk: {1}) -dao.wallet.chainHeightSyncing={0} blokk szinkronizálása (legújabb blokk: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Típus # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Sikertelen ellenőrzés.\nKérjük tö displayUpdateDownloadWindow.success=Az új verziót sikeresen letöltötték és az aláírást ellenőrizték.\n\nKérjük nyissa meg a letöltési könyvtárat, állítsa le az alkalmazást és telepítse az új verziót. displayUpdateDownloadWindow.download.openDir=Letöltési könyvtár megnyitása -disputeSummaryWindow.title=Összefogló +disputeÖsszefoglóWindow.title=Összefogló disputeSummaryWindow.openDate=Ticket opening date disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence @@ -1741,7 +1746,7 @@ popup.headline.error=Hiba popup.doNotShowAgain=Ne mutasd ezt újra popup.reportError.log=Naplófájl nyitása popup.reportError.gitHub=Jelentés a Github kibocsátás-követőhöz -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Próbálja meg újraindítani az alkalmazást, és ellenőrizze a hálózati kapcsolatot, hogy meg tudja-e oldani a problémát. popup.error.takeOfferRequestFailed=Hiba történt amikor valaki megpróbálta felvenni ajánlatát:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=A {0} csomópontok egyike tiltva lett. Kérjük indíts popup.warning.priceRelay=árjelentés popup.warning.seed=mag -popup.info.securityDepositInfo=Annak biztosítása érdekében, hogy mindkét kereskedő kövesse a kereskedelmi protokollt, szükségük van egy kaucióra.\n\nA kaució a helyi tranzakciós pénztárcájában marad, amíg az ajánlatot egy másik kereskedő elfogadja.\nA tranzakció sikeres befejezése után ez visszatérítésre kerül.\n\nKérjük vegye figyelembe, hogy alkalmazását nyitva kell tartania ha nyitott ajánlatai vannak. Annak hogy egy másik kereskedő ajánlatát igénybe tudja venni, alkalmazásának szükséges online lenni, hogy a tranzakciói protokollt végrehajthassa.\nGyőződjön meg róla, hogy a készenléti állapot ki van kapcsolva, mert ez lezárja a hálózatot (a monitor készenléti állapota nem jelent problémát). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=I confirm that I can make the deposit diff --git a/core/src/main/resources/i18n/displayStrings_pt.properties b/core/src/main/resources/i18n/displayStrings_pt.properties index 85dc94c322..001ccd478b 100644 --- a/core/src/main/resources/i18n/displayStrings_pt.properties +++ b/core/src/main/resources/i18n/displayStrings_pt.properties @@ -83,7 +83,7 @@ shared.offerId=ID de Oferta shared.bankName=Nome do banco shared.acceptedBanks=Bancos aceitos shared.amountMinMax=Quantidade (min - max) -shared.amountHelp=Se uma oferta possui uma quantia mínima e máxima definida, então você pode negociar qualquer quantia nessa faixa. +shared.amountHelp=Se uma oferta possuir uma quantia mínima e máxima definidas, você poderá negociar qualquer quantia dentro dessa faixa. shared.remove=Remover shared.goTo=Ir para {0} shared.BTCMinMax=BTC (min - max) @@ -92,7 +92,7 @@ shared.dontRemoveOffer=Não remover a oferta shared.editOffer=Editar oferta shared.openLargeQRWindow=Abrir QR-Code em janela grande shared.tradingAccount=Conta de negociação -shared.faq=Visite a página de FAQ +shared.faq=Visite a página de ajuda shared.yesCancel=Sim, cancelar shared.nextStep=Próximo passo shared.selectTradingAccount=Selecionar conta de negociação @@ -102,7 +102,7 @@ shared.openDefaultWalletFailed=Erro ao abrir a carteira padrão de Bitcoin. Talv shared.distanceInPercent=Distância em % do preço de mercado shared.belowInPercent=% abaixo do preço de mercado shared.aboveInPercent=% acima do preço de mercado -shared.enterPercentageValue=Insira % do valor +shared.enterPercentageValue=Insira a % shared.OR=OR shared.notEnoughFunds=Você não possui saldo suficiente em sua carteira bisq.\nSão necessários {0}, porém você possui apenas {1}.\n\nPor favor, transfira mais bitcoins para a sua carteira bisq em \"Fundos/Receber fundos\" ou realize o pagamento usando uma carteira externa. shared.waitingForFunds=Aguardando pagamento... @@ -111,7 +111,7 @@ shared.TheBTCBuyer=O comprador de BTC shared.You=Você shared.reasonForPayment=Motivo do pagamento shared.sendingConfirmation=Enviando confirmação... -shared.sendingConfirmationAgain=Por favor envia a confirmação novamente +shared.sendingConfirmationAgain=Por favor, envie a confirmação novamente shared.exportCSV=Exportar para csv shared.noDateAvailable=Sem dado disponível shared.arbitratorsFee=Taxa de arbitragem @@ -160,11 +160,11 @@ shared.invalidKey=A chave que você inseriu não estava correta shared.enterPrivKey=Insira a chave privada para destravar shared.makerFeeTxId=ID de transação da taxa do ofertante shared.takerFeeTxId=ID de transação da taxa do aceitador -shared.payoutTxId=Payout transaction ID -shared.contractAsJson=Contract in JSON format +shared.payoutTxId=ID da transação de pagamento +shared.contractAsJson=Contrato em formato JSON shared.viewContractAsJson=Ver contrato em formato JSON shared.contract.title=Contrato para negociação com ID: {0} -shared.paymentDetails=BTC {0} payment details +shared.paymentDetails=Detalhes do pagamento BTC {0} shared.securityDeposit=Depósito de segurança shared.yourSecurityDeposit=Seu depósito de segurança shared.contract=Contrato @@ -179,8 +179,8 @@ shared.yourLanguage=Seus idiomas shared.addLanguage=Adicionar idioma shared.total=Total shared.totalsNeeded=Quantia necessária -shared.tradeWalletAddress=Trade wallet address -shared.tradeWalletBalance=Trade wallet balance +shared.tradeWalletAddress=Endereço da negociação +shared.tradeWalletBalance=Saldo da negociação shared.makerTxFee=Ofertante: {0} shared.takerTxFee=Aceitador da oferta: {0} shared.securityDepositBox.description=Depósito de segurança para BTC {0} @@ -188,11 +188,14 @@ shared.iConfirm=Eu confirmo shared.tradingFeeInBsqInfo=equivalente a {0} utilizado como taxa de mineração shared.openURL=Aberto {0} shared.fiat=Fiat -shared.crypto=Crypto +shared.crypto=Cripto shared.all=Todos shared.edit=Editar shared.advancedOptions=Opções avançadas shared.interval=Interval +shared.actions=Ações +shared.buyerUpperCase=Comprador +shared.sellerUpperCase=Vendedor #################################################################### # UI views @@ -222,8 +225,8 @@ mainView.marketPrice.tooltip.altcoinExtra=Se a altcoin não estiver disponível mainView.balance.available=Saldo disponível mainView.balance.reserved=Reservado em ofertas mainView.balance.locked=Travado em negociações -mainView.balance.reserved.short=Reservado -mainView.balance.locked.short=Travado +mainView.balance.reserved.short=Reservados +mainView.balance.locked.short=Travados mainView.footer.usingTor=(usando Tor) mainView.footer.localhostBitcoinNode=(localhost) @@ -268,8 +271,8 @@ market.offerBook.buyAltcoin=Comprar {0} (vender {1}) market.offerBook.sellAltcoin=Vender {0} (comprar {1}) market.offerBook.buyWithFiat=Comprar {0} market.offerBook.sellWithFiat=Vender {0} -market.offerBook.sellOffersHeaderLabel=Ordens de compra de {0} -market.offerBook.buyOffersHeaderLabel=Ordens de venda de {0} +market.offerBook.sellOffersHeaderLabel=Ofertas de compra de {0} +market.offerBook.buyOffersHeaderLabel=Ofertas de venda de {0} market.offerBook.buy=Eu quero comprar bitcoin market.offerBook.sell=Eu quero vender bitcoin @@ -313,7 +316,7 @@ offerbook.createOfferTo=Criar oferta para {0} {1} # postfix to previous. e.g.: Create new offer to buy BTC with ETH or Create new offer to sell BTC for ETH offerbook.buyWithOtherCurrency=(pagar com {0}) offerbook.sellForOtherCurrency=(receber em {0}) -offerbook.takeOfferButton.tooltip=Tomar oferta por {0} +offerbook.takeOfferButton.tooltip=Aceitar oferta {0} offerbook.yesCreateOffer=Sim, criar oferta offerbook.setupNewAccount=Configurar uma nova conta de negociação offerbook.removeOffer.success=Remoçao de oferta bem sucedida @@ -343,16 +346,16 @@ offerbook.info.sellAboveMarketPrice=Você irá receber {0} a mais do que o atual offerbook.info.buyBelowMarketPrice=Você irá pagar {0} a menos do que o atual preço de mercado (atualizado a cada minuto). offerbook.info.buyAtFixedPrice=Você irá comprar nesse preço fixo. offerbook.info.sellAtFixedPrice=Você irá vender neste preço fixo. -offerbook.info.noArbitrationInUserLanguage=Em caso de litígio, por favor, note que a arbitragem para esta oferta será tratada em {0}. O idioma está atualmente definido como {1}. +offerbook.info.noArbitrationInUserLanguage=O idioma do Bisq atualmente está definido para {1}. No entanto, em caso de disputa, a arbitragem para essa oferta será realizada em {0}. offerbook.info.roundedFiatVolume=O montante foi arredondado para aumentar a privacidade do seu comércio. #################################################################### # Offerbook / Create offer #################################################################### -createOffer.amount.prompt=Escreva aqui o valor em BTC -createOffer.price.prompt=Escreva aqui o preço -createOffer.volume.prompt=Escreva aqui o valor em {0} +createOffer.amount.prompt=Insira o valor em BTC +createOffer.price.prompt=Insira aqui o preço +createOffer.volume.prompt=Insira aqui o valor em {0} createOffer.amountPriceBox.amountDescription=Quantia em BTC para {0} createOffer.amountPriceBox.buy.volumeDescription=Valor em {0} a ser gasto createOffer.amountPriceBox.sell.volumeDescription=Valor em {0} a ser recebido @@ -373,19 +376,19 @@ createOffer.info.buyBelowMarketPrice=Você irá sempre pagar {0}% a menos do que createOffer.warning.sellBelowMarketPrice=Você irá sempre receber {0}% a menos do que o atual preço de mercado e o preço da sua oferta será atualizado constantemente. createOffer.warning.buyAboveMarketPrice=Você irá sempre pagar {0}% a mais do que o atual preço de mercado e o preço da sua oferta será atualizada constantemente. createOffer.tradeFee.descriptionBTCOnly=Taxa da negociação -createOffer.tradeFee.descriptionBSQEnabled=Select trade fee currency -createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} of trade amount +createOffer.tradeFee.descriptionBSQEnabled=Escolher moeda da taxa de transação +createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} da quantia da negociação # new entries createOffer.placeOfferButton=Criar oferta para {0} bitcoin createOffer.alreadyFunded=Você já havia financiado aquela oferta.\nSeus fundos foram movidos para sua carteira Bisq local e estão disponíveis para retirada na janela \"Fundos/Enviar fundos\".Save -createOffer.createOfferFundWalletInfo.headline=Financiar sua oferta. +createOffer.createOfferFundWalletInfo.headline=Financiar sua oferta # suppress inspection "TrailingSpacesInProperty" createOffer.createOfferFundWalletInfo.tradeAmount=- Quantia da negociação: {0} \n createOffer.createOfferFundWalletInfo.msg=Você precisa depositar {0} para esta oferta.\n\nEsses fundos ficam reservados na sua carteira local e ficarão travados no ednereço de depósito multisig quando alguém aceitar a sua oferta.\n\nA quantia equivale a soma de:\n{1}- Seu depósito de segurança: {2}\n- Taxa de negociação: {3}\n- Taxa de mineração: {4}\n\nVocê pode escolher entre duas opções para financiar sua negociação:\n- Usar a sua carteira Bisq (conveniente, mas transações poderão ser associadas entre si) OU\n- Transferir a partir de uma carteira externa (potencialmente mais privado)\n\nVocê verá todas as opções de financiamento e detalhes após fechar esta janela. # only first part "An error occurred when placing the offer:" has been used before. We added now the rest (need update in existing translations!) -createOffer.amountPriceBox.error.message=Um erro ocorreu ao emitir uma oferta:\n\n{0}\n\nNenhum fundo foi retirado de sua carteira até agora.\nFavor reinicie o programa e verifique sua conexão de internet. +createOffer.amountPriceBox.error.message=Um erro ocorreu ao emitir uma oferta:\n\n{0}\n\nNenhum fundo foi retirado de sua carteira até agora.\nPor favor, reinicie o programa e verifique sua conexão de internet. createOffer.setAmountPrice=Definir preço e quantia createOffer.warnCancelOffer=Você já havia financiado aquela oferta.\nSeus fundos foram movidos para sua carteira Bisq local e estão disponíveis para retirada na janela \"Fundos/Enviar fundos\".\nTem certeza que deseja cancelar? createOffer.timeoutAtPublishing=Um erro ocorreu ao publicar a oferta: tempo esgotado. @@ -416,10 +419,10 @@ takeOffer.validation.amountSmallerThanMinAmount=A quantia não pode ser inferior takeOffer.validation.amountLargerThanOfferAmount=A quantia inserida não pode ser superior à quantia definida na oferta. takeOffer.validation.amountLargerThanOfferAmountMinusFee=Essa quantia inserida criaria um troco pequeno demais para o vendedor de BTC. takeOffer.fundsBox.title=Financiar sua negociação -takeOffer.fundsBox.isOfferAvailable=Verificar se oferta está disponível ... +takeOffer.fundsBox.isOfferAvailable=Verificando se a oferta está disponível ... takeOffer.fundsBox.tradeAmount=Quantia a ser vendida takeOffer.fundsBox.offerFee=Taxa da negociação -takeOffer.fundsBox.networkFee=Total mining fees +takeOffer.fundsBox.networkFee=Total de taxas de mineração takeOffer.fundsBox.takeOfferSpinnerInfo=Aceitação da oferta em progresso ... takeOffer.fundsBox.paymentLabel=negociação Bisq com ID {0} takeOffer.fundsBox.fundsStructure=({0} depósito de segurança, {1} taxa de transação, {2} taxa de mineração) @@ -435,12 +438,12 @@ takeOffer.takeOfferFundWalletInfo.headline=Financiar sua negociação # suppress inspection "TrailingSpacesInProperty" takeOffer.takeOfferFundWalletInfo.tradeAmount=- Quantia da negociação: {0} \n takeOffer.takeOfferFundWalletInfo.msg=Você precisa depositar {0} para aceitar esta oferta.\n\nA quantia equivale a soma de:\n{1}- Seu depósito de segurança: {2}\n- Taxa de negociação: {3}\n- Taxas de mineração: {4}\n\nVocê pode escolher entre duas opções para financiar sua negociação:\n- Usar a sua carteira Bisq (conveniente, mas transações podem ser associadas entre si) OU\n- Transferir a partir de uma carteira externa (potencialmente mais privado)\n\nVocê verá todas as opções de financiamento e detalhes após fechar esta janela. -takeOffer.alreadyPaidInFunds=Se você já pagou com seus fundos você pode retirar na janela \"Fundos/Enviar fundos\". +takeOffer.alreadyPaidInFunds=Se você já pagou por essa oferta, você pode retirar seus fundos na seção \"Fundos/Enviar fundos\". takeOffer.paymentInfo=Informações de pagamento takeOffer.setAmountPrice=Definir quantia takeOffer.alreadyFunded.askCancel=Você já havia financiado aquela oferta.\nSeus fundos foram movidos para sua carteira Bisq local e estão disponíveis para retirada na janela \"Fundos/Enviar fundos\".\nTem certeza que deseja cancelar? takeOffer.failed.offerNotAvailable=Pedido de aceitar oferta de negociação falhou pois a oferta não está mais disponível. Talvez outro negociador tenha aceitado a oferta neste período. -takeOffer.failed.offerTaken=Não é possível aceitar a oferta pois ela já foi aceita por outro negociador. +takeOffer.failed.offerTaken=Não foi possível aceitar a oferta, pois ela já foi aceita por outro negociador. takeOffer.failed.offerRemoved=Não é possível aceitar a oferta pois ela foi removida. takeOffer.failed.offererNotOnline=Erro ao aceitar a oferta: o ofertante não está mais online. takeOffer.failed.offererOffline=Erro ao aceitar a oferta: o ofertante está offline. @@ -448,8 +451,8 @@ takeOffer.warning.connectionToPeerLost=Você perdeu a conexão com o ofertante.\ takeOffer.error.noFundsLost=\n\nA sua carteira ainda não realizou o pagamento.\nPor favor, reinicie o programa e verifique a sua conexão com a internet. takeOffer.error.feePaid=\n\nA taxa de aceitação já foi paga. No pior dos casos, você perderá essa taxa.\nPor favor, reinicie o programa e verifique a sua conexão com a internet. -takeOffer.error.depositPublished=\n\nThe deposit transaction is already published.\nPlease try to restart your application and check your network connection to see if you can resolve the issue.\nIf the problem still remains please contact the developers for support. -takeOffer.error.payoutPublished=\n\nThe payout transaction is already published.\nPlease try to restart your application and check your network connection to see if you can resolve the issue.\nIf the problem still remains please contact the developers for support. +takeOffer.error.depositPublished=\n\nA transação do depósito já foi publicada.\nPor favor, reinicie o programa e verifique sua conexão de internet para tentar resolver o problema.\nSe o problema persistir, entre em contato com os desenvolvedores. +takeOffer.error.payoutPublished=\n\nA transação de pagamento já foi publicada.\nPor favor, reinicie o programa e verifique sua conexão de internet para tentar resolver o problema.\nSe o problema persistir, entre em contato com os desenvolvedores. takeOffer.tac=Ao aceitar essa oferta, eu concordo com as condições de negociação definidas nesta tela. @@ -482,7 +485,7 @@ portfolio.pending.step5.completed=Concluído portfolio.pending.step1.info=A transação de depósito foi publicada.\nApós aguardar uma confirmação da blockchain, {0} poderá iniciar o pagamento. portfolio.pending.step1.warn=A transação do depósito ainda não foi confirmada.\nIsto pode ocorrer em casos raros em que a taxa de financiamento a partir de uma carteira externa de um dos negociadores foi muito baixa. -portfolio.pending.step1.openForDispute=The deposit transaction still did not get confirmed.\nThat might happen in rare cases when the funding fee of one trader from the external wallet was too low.\nThe max. period for the trade has elapsed.\n\nYou can wait longer or contact the arbitrator for opening a dispute. +portfolio.pending.step1.openForDispute=A transação do depósito ainda não foi confirmada.\nIsto raramente pode ocorrer quando um dos negociadores envia uma taxa de financiamento muito baixa através de uma carteira externa.\nO período máximo para a negociação já se esgotou.\n\nPor favor, aguarde mais um pouco ou entre em contato com o árbitro para abrir uma disputa. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step2.confReached=Sua negociação já tem ao menos uma confirmação do protocolo.\n(Você pode aguardar mais confirmações se quiser - 6 confirmações são consideradas muito seguras.)\n\n @@ -491,29 +494,29 @@ portfolio.pending.step2_buyer.copyPaste=(Você pode copia e colar os valores da portfolio.pending.step2_buyer.refTextWarn=NÃO escreva nenhum texto ou aviso adicional no campo \"razão do pagamento\" (não escreva nada sobre bitcoin, BTC ou Bisq). # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step2_buyer.accountDetails=A seguir estão os detalhes da conta do vendedor de BTC:\n -portfolio.pending.step2_buyer.tradeId=Favor não esquecer de adicionar o ID da negociação +portfolio.pending.step2_buyer.tradeId=Não se esqueça de adicionar o ID da negociação # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step2_buyer.assign=como \"razão do pagamento\" para que o recebedor possa associar seu pagamento a esta negociação.\n\n portfolio.pending.step2_buyer.fees=Caso seu banco cobre taxas você terá que cobrir estas taxas. # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step2_buyer.altcoin=Favor transferir a partir de sua carteira {0} externa\n{1} para o vendedor de BTC.\n\n +portfolio.pending.step2_buyer.altcoin=Transfira com a sua carteira {0} externa\n{1} para o vendedor de BTC.\n\n # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step2_buyer.cash=Favor ir ao banco e pagar {0} ao vendedor de BTC +portfolio.pending.step2_buyer.cash=Vá ao banco e pague {0} ao vendedor de BTC.\n\n portfolio.pending.step2_buyer.cash.extra=REQUESITO IMPORTANTE:\nApós executar o pagamento escrever no recibo: NÃO ACEITO RESTITUIÇÃO\nEntão rasgue-o em 2 partes, tire uma foto e envia-a para o email do vendedor de BTC. -portfolio.pending.step2_buyer.moneyGram=Por favor, paque {0} ao vendedor de BTC usando MoneyGram.\n\n -portfolio.pending.step2_buyer.moneyGram.extra=IMPORTANT REQUIREMENT:\nAfter you have done the payment send the Authorisation number and a photo of the receipt by email to the BTC seller.\nThe receipt must clearly show the seller''s full name, country, state and the amount. The seller''s email is: {0}. +portfolio.pending.step2_buyer.moneyGram=Por favor, pague {0} ao vendedor de BTC usando MoneyGram.\n\n +portfolio.pending.step2_buyer.moneyGram.extra=IMPORTANTE:\nApós você ter feito o pagamento, envie o número de autorização e uma foto do recibo por e-mail para o vendedor de BTC.\nO recibo deve exibir claramente o nome completo, o país e o estado do vendedor, assim como a quantia. O e-mail do vendedor é: {0}. portfolio.pending.step2_buyer.westernUnion=Por favor, pague {0} ao vendedor de BTC através da Western Union.\n\n portfolio.pending.step2_buyer.westernUnion.extra=IMPORTANT REQUIREMENT:\nAfter you have done the payment send the MTCN (tracking number) and a photo of the receipt by email to the BTC seller.\nThe receipt must clearly show the seller''s full name, city, country and the amount. The seller''s email is: {0}. # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step2_buyer.postal=Favor enviar {0} através de \"US Postal Money Order\" para o vendedor de BTC.\n\n +portfolio.pending.step2_buyer.postal=Envie {0} através de \"US Postal Money Order\" para o vendedor de BTC.\n\n # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step2_buyer.bank=Favor acessar sua conta bancária online e pagar {0} ao vendedor de BTC.\n\n +portfolio.pending.step2_buyer.bank=Por favor, acesse sua conta bancária online e pague {0} ao vendedor de BTC.\n\n portfolio.pending.step2_buyer.f2f=Por favor, entre em contato com o vendedor de BTC através do contato fornecido e combine um encontro para pagá-lo {0}.\n\n portfolio.pending.step2_buyer.startPaymentUsing=Iniciar pagamento usando {0} portfolio.pending.step2_buyer.amountToTransfer=Quantia a ser transferida -portfolio.pending.step2_buyer.sellersAddress=Seller''s {0} address -portfolio.pending.step2_buyer.buyerAccount=Your payment account to be used +portfolio.pending.step2_buyer.sellersAddress=Endereço {0} do vendedor +portfolio.pending.step2_buyer.buyerAccount=A sua conta de pagamento a ser usada portfolio.pending.step2_buyer.paymentStarted=Pagamento iniciado portfolio.pending.step2_buyer.warn=Você ainda não realizou o seu pagamento de {0}!\nEssa negociação deve ser completada até {1}, caso contrário ela será investigada pelo árbitro. portfolio.pending.step2_buyer.openForDispute=Você ainda não concluiu o pagamento!\nO período máximo para a negociação já passou.\n\nFavor entrar em contato com o árbitro para abrir uma disputa. @@ -531,9 +534,9 @@ portfolio.pending.step2_buyer.confirmStart.msg=Você iniciou o pagamento {0} par portfolio.pending.step2_buyer.confirmStart.yes=Sim, iniciei o pagamento portfolio.pending.step2_seller.waitPayment.headline=Aguardar o pagamento -portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information +portfolio.pending.step2_seller.f2fInfo.headline=Informações de contato do comprador portfolio.pending.step2_seller.waitPayment.msg=A transação de depósito tem pelo menos uma confirmação blockchain do protocolo.\nVocê precisa aguardar até que o comprador de BTC inicie o pagamento de {0}. -portfolio.pending.step2_seller.warn=O comprador de BTC ainda não fez o pagamento de {0}\nVocê precisa esperar até que ele inicie o pagamento.\nCaso a negociação não conclua em {1} o árbitro irá investigar. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=O comprador de BTC ainda não iniciou o pagamento!\nO período máximo permitido para a negociação expirou.\nVocê pode aguardar mais um pouco, dando mais tempo para o seu parceiro de negociação, ou você pode entrar em contato com o árbitro para abrir uma disputa. # suppress inspection "UnusedProperty" @@ -554,16 +557,16 @@ portfolio.pending.step3_buyer.wait.info=Aguardando confirmação do vendedor de portfolio.pending.step3_buyer.wait.msgStateInfo.label=Payment started message status portfolio.pending.step3_buyer.warn.part1a=na blockchain {0} portfolio.pending.step3_buyer.warn.part1b=com seu provedor de pagamentos (por exemplo seu banco) -portfolio.pending.step3_buyer.warn.part2=The BTC seller still has not confirmed your payment!\nPlease check {0} if the payment sending was successful.\nIf the BTC seller does not confirm the receipt of your payment by {1} the trade will be investigated by the arbitrator. -portfolio.pending.step3_buyer.openForDispute=The BTC seller has not confirmed your payment!\nThe max. period for the trade has elapsed.\nYou can wait longer and give the trading peer more time or contact the arbitrator for opening a dispute. +portfolio.pending.step3_buyer.warn.part2=O vendedor de BTC ainda não confirmou o pagamento!\nPor favor, verifique em {0} se o pagamento foi enviado com sucesso.\nCaso o vendedor não confirme o recebimento do pagamento até {1}, a negociação será investigada pelo árbitro. +portfolio.pending.step3_buyer.openForDispute=O vendedor de BTC não confirmou o seu pagamento!\nO período máximo para essa negociação expirou..\nVocê pode aguardar mais um pouco, dando mais tempo para o seu parceiro de negociação, ou você pode entrar em contato com um árbitro para abrir uma disputa. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.part=Seu parceiro de negociação confirmou que iniciou o pagamento de {0}.\n\n -portfolio.pending.step3_seller.altcoin.explorer=on your favorite {0} blockchain explorer -portfolio.pending.step3_seller.altcoin.wallet=at your {0} wallet -portfolio.pending.step3_seller.altcoin={0}Please check {1} if the transaction to your receiving address\n{2}\nhas already sufficient blockchain confirmations.\nThe payment amount has to be {3}\n\nYou can copy & paste your {4} address from the main screen after closing that popup. +portfolio.pending.step3_seller.altcoin.explorer=em seu explorador preferido da blockchain do {0} +portfolio.pending.step3_seller.altcoin.wallet=em sua carteira {0} +portfolio.pending.step3_seller.altcoin={0}Verifique em {1} se a transação para o seu endereço de recebimento\n{2}\njá tem confirmações suficientes na blockchain.\nA quantia do pagamento deve ser {3}\n\nVocê pode copiar e colar seu endereço {4} na janela principal, após fechar aquele popup. portfolio.pending.step3_seller.postal={0}Por gentileza verifique se recebeu {1} como \"US Postal Money Order\" do comprador de BTC.\n\nO ID de negociação (texto \"razão do pagamento\") da transação é: \"{2}\" -portfolio.pending.step3_seller.bank=Your trading partner has confirmed that he initiated the {0} payment.\n\nPlease go to your online banking web page and check if you have received {1} from the BTC buyer.\n\nThe trade ID (\"reason for payment\" text) of the transaction is: \"{2}\"\n\n -portfolio.pending.step3_seller.cash=Because the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\nTo avoid chargeback risk, only confirm if you received the email and if you are sure the paper receipt is valid.\nIf you are not sure, {0} +portfolio.pending.step3_seller.bank=Seu parceiro de negociação confirmou que ele já iniciou o pagamento de {0}.\n\nAcesse sua conta bancária online e verifique se você recebeu {1} do comprador de BTC.\n\nO ID de negociação (texto \"razão do pagamento\") da transação é: \"{2}\" +portfolio.pending.step3_seller.cash=\n\nComo o pagamento é realizado através de depósito de dinheiro, o comprador de BTC deve escrever \"SEM RESTITUIÇÃO\" no recibo de papel, rasgá-lo em duas partes e enviar uma foto do recibo para você por e-mail.\n\nPara evitar risco de restituição, apenas confirme caso você tenha recebido o e-mail e tem certeza de que o recibo é válido.\nSe não tiver certeza, {0} portfolio.pending.step3_seller.moneyGram=The buyer has to send you the Authorisation number and a photo of the receipt by email.\nThe receipt must clearly show your full name, country, state and the amount. Please check your email if you received the Authorisation number.\n\nAfter closing that popup you will see the BTC buyer's name and address for picking up the money from MoneyGram.\n\nOnly confirm receipt after you have successfully picked up the money! portfolio.pending.step3_seller.westernUnion=The buyer has to send you the MTCN (tracking number) and a photo of the receipt by email.\nThe receipt must clearly show your full name, city, country and the amount. Please check your email if you received the MTCN.\n\nAfter closing that popup you will see the BTC buyer's name and address for picking up the money from Western Union.\n\nOnly confirm receipt after you have successfully picked up the money! portfolio.pending.step3_seller.halCash=The buyer has to send you the HalCash code as text message. Beside that you will receive a message from HalCash with the required information to withdraw the EUR from a HalCash supporting ATM.\n\nAfter you have picked up the money from the ATM please confirm here the receipt of the payment! @@ -571,37 +574,37 @@ portfolio.pending.step3_seller.halCash=The buyer has to send you the HalCash cod portfolio.pending.step3_seller.bankCheck=\n\nPor favor, verifique também que o nome do remetente no seu extrato bancário confere com o do contrato de negociação:\nNome do remetente: {0}\n\nSe o nome do extrato bancário não for o mesmo que o exibido acima, {1} portfolio.pending.step3_seller.openDispute=por favor, não confirme e abra uma disputa pressionando \"alt + o\" ou \"option + o\". portfolio.pending.step3_seller.confirmPaymentReceipt=Confirmar recibo de pagamento -portfolio.pending.step3_seller.amountToReceive=Amount to receive -portfolio.pending.step3_seller.yourAddress=Your {0} address -portfolio.pending.step3_seller.buyersAddress=Buyers {0} address -portfolio.pending.step3_seller.yourAccount=Your trading account -portfolio.pending.step3_seller.buyersAccount=Buyers trading account +portfolio.pending.step3_seller.amountToReceive=Quantia a receber +portfolio.pending.step3_seller.yourAddress=Seu endereço {0} +portfolio.pending.step3_seller.buyersAddress=Endereço {0} do comprador +portfolio.pending.step3_seller.yourAccount=Sua conta de negociação +portfolio.pending.step3_seller.buyersAccount=Conta de negociação do comprador portfolio.pending.step3_seller.confirmReceipt=Confirmar recibo de pagamento portfolio.pending.step3_seller.buyerStartedPayment=O comprador de BTC iniciou o pagamento {0}.\n{1} portfolio.pending.step3_seller.buyerStartedPayment.altcoin=Verifique as confirmações de transação em sua carteira altcoin ou explorador de blockchain e confirme o pagamento quando houverem confirmações suficientes. portfolio.pending.step3_seller.buyerStartedPayment.fiat=Verifique em sua conta de negociação (por exemplo, sua conta bancária) e confirme que recebeu o pagamento. portfolio.pending.step3_seller.warn.part1a=na blockchain {0} portfolio.pending.step3_seller.warn.part1b=em seu provedor de pagamentos (por exemplo um banco) -portfolio.pending.step3_seller.warn.part2=You still have not confirmed the receipt of the payment!\nPlease check {0} if you have received the payment.\nIf you don''t confirm receipt by {1} the trade will be investigated by the arbitrator. +portfolio.pending.step3_seller.warn.part2=Você ainda não confirmou o recebimento do pagamento!\nPor favor, verifique em {0} se você recebeu o pagamento.\nCaso você não confirme o recebimento até {1}, a negociação será investigada pelo árbitro. portfolio.pending.step3_seller.openForDispute=Você ainda não confirmou o recebimento do pagamento!\nO período máximo para a negociação expirou.\nPor favor, confirme o recebimento do pagamento ou entre em contato com o árbitro para abrir uma disputa. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.onPaymentReceived.part1=Você recebeu o pagamento {0} de seu parceiro de negociação?\n\n # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.onPaymentReceived.fiat=O ID de negociação (texto \"razão do pagamento\") da transação é: \"{0}\"\n # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step3_seller.onPaymentReceived.name=Please also verify that the sender's name in your bank statement matches that one from the trade contract:\nSender's name: {0}\n\nIf the name is not the same as the one displayed here, please don't confirm but open a dispute by entering \"alt + o\" or \"option + o\".\n\n -portfolio.pending.step3_seller.onPaymentReceived.note=Favor tenha em mente que assim que confirmar o recibo o valor reservado será liberado para o comprador de BTC e o depósito de segurança será devolvido. +portfolio.pending.step3_seller.onPaymentReceived.name=Verifique também no extrato bancário se o nome do remetente confere com o nome que foi fornecido no contrato da negociação:\nNome do remetente: {0}\n\nSe o nome do extrato não for o mesmo que o nome exibido acima, não confirme e abra uma disputa pressionando \"alt + o\" ou \"option + o\".\n\n +portfolio.pending.step3_seller.onPaymentReceived.note=Tenha em mente que, assim que confirmar o recibo, o valor reservado será liberado para o comprador de BTC e o depósito de segurança será devolvido. portfolio.pending.step3_seller.onPaymentReceived.confirm.headline=Confirme que recebeu o pagamento portfolio.pending.step3_seller.onPaymentReceived.confirm.yes=Sim, eu recebi o pagamento portfolio.pending.step5_buyer.groupTitle=Resumo da negociação portfolio.pending.step5_buyer.tradeFee=Taxa da negociação portfolio.pending.step5_buyer.makersMiningFee=Taxa de mineração -portfolio.pending.step5_buyer.takersMiningFee=Total mining fees -portfolio.pending.step5_buyer.refunded=Refunded security deposit +portfolio.pending.step5_buyer.takersMiningFee=Total de taxas de mineração +portfolio.pending.step5_buyer.refunded=Depósito de segurança devolvido portfolio.pending.step5_buyer.withdrawBTC=Retirar seus bitcoins -portfolio.pending.step5_buyer.amount=Amount to withdraw -portfolio.pending.step5_buyer.withdrawToAddress=Withdraw to address +portfolio.pending.step5_buyer.amount=Quantia a ser retirada +portfolio.pending.step5_buyer.withdrawToAddress=Enviar para o endereço portfolio.pending.step5_buyer.moveToBisqWallet=Mover fundos para carteira Bisq portfolio.pending.step5_buyer.withdrawExternal=Retirar para carteira externa portfolio.pending.step5_buyer.alreadyWithdrawn=Seus fundos já forem retirados.\nFavor verifique o histórico de transações. @@ -609,26 +612,26 @@ portfolio.pending.step5_buyer.confirmWithdrawal=Confirmar solicitação de retir portfolio.pending.step5_buyer.amountTooLow=A quantia a ser transferida é inferior à taxa de transação e o valor mínimo de transação (poeira). portfolio.pending.step5_buyer.withdrawalCompleted.headline=Retirada completada portfolio.pending.step5_buyer.withdrawalCompleted.msg=Suas negociações concluídas estão salvas em \"Portfolio/Histórico\".\nVocê pode rever todas as suas transações bitcoin em \"Fundos/Transações\" -portfolio.pending.step5_buyer.bought=You have bought -portfolio.pending.step5_buyer.paid=You have paid +portfolio.pending.step5_buyer.bought=Você comprou +portfolio.pending.step5_buyer.paid=Você pagou -portfolio.pending.step5_seller.sold=You have sold -portfolio.pending.step5_seller.received=You have received +portfolio.pending.step5_seller.sold=Você vendeu +portfolio.pending.step5_seller.received=Você recebeu tradeFeedbackWindow.title=Parabéns, você completou uma negociação -tradeFeedbackWindow.msg.part1=We'd love to hear back from you about your experience. It'll help us to improve the software and to smooth out any rough edges. If you'd like to provide feedback, please fill out this short survey (no registration required) at: -tradeFeedbackWindow.msg.part2=If you have any questions, or experienced any problems, please get in touch with other users and contributors via the Bisq forum at: +tradeFeedbackWindow.msg.part1=Nós adoramos saber como está sendo a sua experiência. Ela nos ajuda a corrigir e aperfeiçoar o software. Caso você queira nos deixar a sua opinião, por favor, preencha nosso pequeno questionário (não é necessário registrar-se) em: +tradeFeedbackWindow.msg.part2=Se você tem dúvidas ou está tendo problemas, por favor entre em contato com outros usuários e contribuidores através do fórum Bisq em: tradeFeedbackWindow.msg.part3=Obrigado por usar Bisq! portfolio.pending.role=Minha função portfolio.pending.tradeInformation=Informação da negociação portfolio.pending.remainingTime=Tempo restante portfolio.pending.remainingTimeDetail={0} (até {1}) -portfolio.pending.tradePeriodInfo=After the first blockchain confirmation, the trade period starts. Based on the payment method used, a different maximum allowed trade period is applied. +portfolio.pending.tradePeriodInfo=O período de negociação irá se iniciar após a primeira confirmação na blockchain. O período de negociação máximo irá variar de acordo com o método de pagamento utilizado. portfolio.pending.tradePeriodWarning=Se o período expirar os dois negociantes poderão abrir uma disputa. portfolio.pending.tradeNotCompleted=Negociação não completada a tempo (até {0}) portfolio.pending.tradeProcess=Processo de negociação -portfolio.pending.openAgainDispute.msg=If you are not sure that the message to the arbitrator arrived (e.g. if you did not get a response after 1 day) feel free to open a dispute again. +portfolio.pending.openAgainDispute.msg=Se você não tem certeza de que o árbitro recebeu a mensagem (por exemplo, se você não receber nenhuma resposta após 1 dia), sinta-se livre em abrir uma disputa novamente. portfolio.pending.openAgainDispute.button=Abrir disputa novamente portfolio.pending.openSupportTicket.headline=Abrir ticket de suporte portfolio.pending.openSupportTicket.msg=Favor abrir apenas em caso de emergência se você não for mostrado o botão \"Abrir suporte\" ou \"Abrir disuputa\".\n\nQuando você abre um ticket de suporte, a negociação é interrompida e passada para o árbitro. @@ -639,13 +642,13 @@ portfolio.pending.openSupport=Abrir ticket de suporte portfolio.pending.supportTicketOpened=Ticket de suporte aberto portfolio.pending.requestSupport=Solicitar suporte portfolio.pending.error.requestSupport=Favor reportar o problema para seu árbitro.\n\nEle encaminhará a informação para os desenvolvedores para investigar o problema.\nApós o problema ser analisado você receberá todos os fundos travados de volta. -portfolio.pending.communicateWithArbitrator=Por favor vá até a janela \"Suporte\" e entre em contato com o árbitro. +portfolio.pending.communicateWithArbitrator=Por favor, vá até a seção \"Suporte\" e entre em contato com o árbitro. portfolio.pending.supportTicketOpenedMyUser=Você já abriu um ticket de suporte\n{0} portfolio.pending.disputeOpenedMyUser=Você já abriu uma disputa.\n{0} portfolio.pending.disputeOpenedByPeer=Seu parceiro de negociação abriu uma disputa\n{0} portfolio.pending.supportTicketOpenedByPeer=Seu parceiro de negociação abriu um ticket de suporte.\n{0} portfolio.pending.noReceiverAddressDefined=Nenhum endereço de recebimento definido -portfolio.pending.removeFailedTrade=If the arbitrator could not close that trade you can move it yourself to the failed trades screen.\nDo you want to remove that failed trade from the Pending trades screen? +portfolio.pending.removeFailedTrade=Se o árbitro não pode fechar a negociação, você pode movê-la por conta própria para a tela de negociações com erro.\nVocê quer remover a negociação com erro da tela de negociações pendentes? portfolio.closed.completed=Concluído portfolio.closed.ticketClosed=Ticket fechado portfolio.closed.canceled=Cancelado @@ -664,11 +667,11 @@ funds.tab.transactions=Transações funds.deposit.unused=Não utilizado funds.deposit.usedInTx=Utilizado em {0} transações -funds.deposit.fundBisqWallet=Financiar carteira Bisq +funds.deposit.fundBisqWallet=Depósito em carteira Bisq funds.deposit.noAddresses=Nenhum endereço de depósito foi gerado ainda funds.deposit.fundWallet=Financiar sua carteira -funds.deposit.withdrawFromWallet=Send funds from wallet -funds.deposit.amount=Amount in BTC (optional) +funds.deposit.withdrawFromWallet=Enviar fundos da carteira +funds.deposit.amount=Quantia em BTC (opcional) funds.deposit.generateAddress=Gerar um endereço novo funds.deposit.selectUnused=Favor selecione um endereço não utilizado da tabela acima no lugar de gerar um novo. @@ -680,8 +683,8 @@ funds.withdrawal.receiverAmount=Quantia do recipiente funds.withdrawal.senderAmount=Quantia do remetente funds.withdrawal.feeExcluded=Quantia excluindo a taxa de mineração funds.withdrawal.feeIncluded=Quantia incluindo a taxa de mineração -funds.withdrawal.fromLabel=Withdraw from address -funds.withdrawal.toLabel=Withdraw to address +funds.withdrawal.fromLabel=Retirar do endereço +funds.withdrawal.toLabel=Enviar para o endereço funds.withdrawal.withdrawButton=Retirar selecionados funds.withdrawal.noFundsAvailable=Não há fundos disponíveis para retirada funds.withdrawal.confirmWithdrawalRequest=Confirmar solicitação de retirada @@ -698,11 +701,11 @@ funds.reserved.noFunds=Não há fundos reservados em ofertas abertas funds.reserved.reserved=Reservado na carteira local com ID de oferta: {0} funds.locked.noFunds=Não há fundos travados em negociações -funds.locked.locked=Locked in multisig for trade with ID: {0} +funds.locked.locked=Travado em multisig para negociação com ID: {0} funds.tx.direction.sentTo=Enviado para: funds.tx.direction.receivedWith=Recebido com: -funds.tx.direction.genesisTx=From Genesis tx: +funds.tx.direction.genesisTx=Da transação gênese: funds.tx.txFeePaymentForBsqTx=Miner fee for BSQ tx funds.tx.createOfferFee=Taxa de oferta e transação: {0} funds.tx.takeOfferFee=Taxa de aceitação e transação: @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Sem transações disponíveis funds.tx.revert=Reverter funds.tx.txSent=Transação enviada com sucesso para um novo endereço em sua carteira Bisq local. funds.tx.direction.self=Enviar para você mesmo -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=Pedido de compensação @@ -730,7 +733,7 @@ funds.tx.compensationRequestTxFee=Pedido de compensação support.tab.support=Tickets de suporte support.tab.ArbitratorsSupportTickets=Tickets de suporte do árbitro support.tab.TradersSupportTickets=Tickets de suporte do negociador -support.filter=Filter list +support.filter=Lista de filtragem support.noTickets=Não há tickets abertos support.sendingMessage=Enviando mensagem... support.receiverNotOnline=Recebedor não está conectado. A mensagem foi gravada na caixa postal. @@ -762,9 +765,9 @@ support.buyerOfferer=Comprador de BTC / Ofetante support.sellerOfferer=Vendedor de BTC / Ofertante support.buyerTaker=Comprador de BTC / Aceitador da oferta support.sellerTaker=Vendedor de BTC / Aceitador da oferta -support.backgroundInfo=A Bisq não é uma empresa e não possui nenhum tipo de serviço de atendimento ao consumidor.\n\nSe surgir alguma disputa no processo de negociação (se você não receber um pagamento), clique no botão \"Abrir disputa\" após o período de negociação ter terminado para entrar em contato com o árbitro da negociação.\nSe surgiu algum problema/bug no aplicativo, o próprio aplicativo tentará detectá-lo e, se possível, irá exibir um botão \"Abrir ticket de suporte\". Este ticket será enviado para o árbitro, que encaminhará o problema detectado para os desenvolvedores do aplicativo.\n\nSe surgr algum problema/bug no aplicativo e o botão \"Abrir ticket de suporte\" não for exibido, você poderá abrir um ticket manualmente. Abra a negociação em que o problema surgiu e use a combinação de teclas \"alt + o\" ou \"option + o\". Por favor, utilize esse atalho somente se você tiver certeza de que o software não está funcionando corretamente. Se você tiver problemas ou dúvidas, por favor leia as dúvidas comuns (FAQ) no site https://bisq.network ou faça uma postagem na seção suporte do fórum do Bisq. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrators requests in between 2 days.\n2. The maximum period for the dispute is 14 days.\n3. You need to fulfill what the arbitrator is requesting from you to deliver evidence for your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more in detail about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Mensagem do sistema: {0} support.youOpenedTicket=Você abriu uma solicitação para suporte. support.youOpenedDispute=Você abriu uma solicitação para disputa.\n\n{0} @@ -780,38 +783,38 @@ settings.tab.network=Informações da rede settings.tab.about=Sobre setting.preferences.general=Preferências gerais -setting.preferences.explorer=Explorar de blocos do Bitcoin -setting.preferences.deviation=Max. deviation from market price -setting.preferences.avoidStandbyMode=Avoid standby mode +setting.preferences.explorer=Explorador de blocos do Bitcoin +setting.preferences.deviation=Desvio máx. do preço do mercado +setting.preferences.avoidStandbyMode=Impedir modo de economia de energia setting.preferences.deviationToLarge=Valores acima de {0}% não são permitidos. -setting.preferences.txFee=Withdrawal transaction fee (satoshis/byte) +setting.preferences.txFee=Taxa da transação de retirada (satoshis/byte) setting.preferences.useCustomValue=Usar valor personalizado setting.preferences.txFeeMin=A taxa de transação precisa ter pelo menos {0} satoshis/byte setting.preferences.txFeeTooLarge=Seu valor está muito alto (>5.000 satoshis/byte). A taxa de transação normalmente fica na faixa de 50-400 satoshis/byte. -setting.preferences.ignorePeers=Ignore peers with onion address (comma sep.) +setting.preferences.ignorePeers=Ignorar par(es) com endereço(s) onion (ex:end1,end2) setting.preferences.refererId=Referral ID setting.preferences.refererId.prompt=ID de referência opcional setting.preferences.currenciesInList=Moedas na lista de preços de mercado -setting.preferences.prefCurrency=Preferred currency -setting.preferences.displayFiat=Display national currencies +setting.preferences.prefCurrency=Moeda de preferência +setting.preferences.displayFiat=Exibir moedas nacionais setting.preferences.noFiat=Não há moedas nacionais selecionadas setting.preferences.cannotRemovePrefCurrency=Você não pode remover a moeda preferencial de exibição selecionada -setting.preferences.displayAltcoins=Display altcoins +setting.preferences.displayAltcoins=Exibir altcoins setting.preferences.noAltcoins=Não há altcoins selecionadas setting.preferences.addFiat=Adicionar moeda nacional setting.preferences.addAltcoin=Adicionar altcoin setting.preferences.displayOptions=Opções de exibição -setting.preferences.showOwnOffers=Show my own offers in offer book -setting.preferences.useAnimations=Use animations -setting.preferences.sortWithNumOffers=Sort market lists with no. of offers/trades -setting.preferences.resetAllFlags=Reset all \"Don't show again\" flags +setting.preferences.showOwnOffers=Exibir minhas próprias ofertas no livro de ofertas +setting.preferences.useAnimations=Usar animações +setting.preferences.sortWithNumOffers=Ordenar pelo nº de ofertas/negociações +setting.preferences.resetAllFlags=Esquecer todas marcações \"Não exibir novamente\" setting.preferences.reset=Limpar settings.preferences.languageChange=Para aplicar a mudança de língua em todas as telas requer uma reinicialização. -settings.preferences.arbitrationLanguageWarning=Em caso de litígio, por favor, note que a arbitragem é tratada em {0}. -settings.preferences.selectCurrencyNetwork=Select network -setting.preferences.daoOptions=DAO options +settings.preferences.arbitrationLanguageWarning=Em caso de disputa, a arbitragem será realizada em {0}. +settings.preferences.selectCurrencyNetwork=Rede +setting.preferences.daoOptions=Opções do DAO setting.preferences.dao.resync.label=Rebuild DAO state from genesis tx -setting.preferences.dao.resync.button=Resync +setting.preferences.dao.resync.button=Ressincronizar setting.preferences.dao.resync.popup=After an application restart the BSQ consensus state will be rebuilt from the genesis transaction. setting.preferences.dao.isDaoFullNode=Run Bisq as DAO full node setting.preferences.dao.rpcUser=RPC username @@ -824,22 +827,22 @@ settings.net.btcHeader=Rede Bitcoin settings.net.p2pHeader=Rede P2P settings.net.onionAddressLabel=Meu endereço onion settings.net.btcNodesLabel=Usar nodos personalizados do Bitcoin Core -settings.net.bitcoinPeersLabel=Connected peers -settings.net.useTorForBtcJLabel=Use Tor for Bitcoin network -settings.net.bitcoinNodesLabel=Bitcoin Core nodes to connect to +settings.net.bitcoinPeersLabel=Pares conectados +settings.net.useTorForBtcJLabel=Usar Tor na rede Bitcoin +settings.net.bitcoinNodesLabel=Conexão a nodos do Bitcoin Core settings.net.useProvidedNodesRadio=Usar nodos do Bitcoin Core fornecidos settings.net.usePublicNodesRadio=Usar rede pública do Bitcoin settings.net.useCustomNodesRadio=Usar nodos personalizados do Bitcoin Core -settings.net.warn.usePublicNodes=If you use the public Bitcoin network you are exposed to a severe privacy problem caused by the broken bloom filter design and implementation which is used for SPV wallets like BitcoinJ (used in Bisq). Any full node you are connected to could find out that all your wallet addresses belong to one entity.\n\nPlease read more about the details at: https://bisq.network/blog/privacy-in-bitsquare.\n\nAre you sure you want to use the public nodes? +settings.net.warn.usePublicNodes=Ao usar a rede pública do Bitcoin, você estará se expondo a um problema grave de privacidade que é causado por uma falha de projeto e de implementação do filtro bloom, o qual é usado em carteiras SPV como a BitcoinJ (a carteira SPV usada no Bisq). Qualquer nodo completo a que você se conectar será capaz de descobrir que todos os endereços da sua carteira pertencem a uma mesma pessoa/entidade.\n\nPor favor, leia mais sobre os detalhes em: https://bisq.network/blog/privacy-in-bitsquare.\n\nVocê tem certeza de que realmente quer usar os nodos públicos? settings.net.warn.usePublicNodes.useProvided=Não, usar os nodos fornecidos settings.net.warn.usePublicNodes.usePublic=Sim, usar rede pública -settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which are not following the Bitcoin Core consensus rules could screw up your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any damage created by that. Disputes caused by that would be decided in favor of the other peer. No technical support will be given to users who ignore our warning and protection mechanisms! -settings.net.localhostBtcNodeInfo=(Nota: se você estiver rodando um nodo Bitcoin local (localhost), você será conectado exclusivamente a ele.) -settings.net.p2PPeersLabel=Connected peers +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) +settings.net.p2PPeersLabel=Pares conectados settings.net.onionAddressColumn=Endereço onion -settings.net.creationDateColumn=Estabelecida -settings.net.connectionTypeColumn=Entrando/Saindo -settings.net.totalTrafficLabel=Total traffic +settings.net.creationDateColumn=Conexão +settings.net.connectionTypeColumn=Sentido +settings.net.totalTrafficLabel=Tráfego total settings.net.roundTripTimeColumn=Ping settings.net.sentBytesColumn=Enviado settings.net.receivedBytesColumn=Recebido @@ -862,23 +865,23 @@ settings.net.reSyncSPVAfterRestart=O arquivo SPV chain foi removido. Favor tenha settings.net.reSyncSPVAfterRestartCompleted=A resincronização concluiu. Favor reiniciar o programa. settings.net.reSyncSPVFailed=Não foi possível apagar o arquivo da SPV chain.\nErro: {0} setting.about.aboutBisq=Sobre Bisq -setting.about.about=Bisq é um projeto de código aberto e uma rede decentralizada de usuários que querem trocar criptomoedas por moedas nacionais em privacidade. Descubra mais sobre o Bisq em nossa página da web. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=página da web do Bisq setting.about.code=Código fonte setting.about.agpl=Licença AGPL setting.about.support=Suporte Bisq -setting.about.def=A Bisq não é uma empresa, ela é um projeto comunitário, aberto à participação de todos. Se você tem interesse em participar ou apoiar a Bisq, por favor, visite os links abaixo. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Contribuir setting.about.donate=Fazer doação setting.about.providers=Provedores de dados setting.about.apisWithFee=O Bisq utiliza APIs de terceiros para obter os preços de moedas fiduciárias e de altcoins, assim como para estimar a taxa de mineração. setting.about.apis=Bisq utiliza APIs de terceiros para os preços de moedas fiduciárias e altcoins. -setting.about.pricesProvided=Market prices provided by +setting.about.pricesProvided=Preços de mercado fornecidos por setting.about.pricesProviders={0}, {1} e {2} -setting.about.feeEstimation.label=Mining fee estimation provided by +setting.about.feeEstimation.label=Estimativa da taxa de mineração fornecida por setting.about.versionDetails=Detalhes da versão -setting.about.version=Application version -setting.about.subsystems.label=Versions of subsystems +setting.about.version=Versão do programa +setting.about.subsystems.label=Versões dos subsistemas setting.about.subsystems.val=Versão da rede: {0}; Versão de mensagens P2P: {1}; Versão do banco de dados local: {2}; Versão do protocolo de negociação: {3} @@ -889,7 +892,7 @@ setting.about.subsystems.val=Versão da rede: {0}; Versão de mensagens P2P: {1} account.tab.arbitratorRegistration=Registro de árbitro account.tab.account=Conta account.info.headline=Bem vindo à sua conta Bisq -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Contas de moedas nacionais account.menu.altCoinsAccountView=Contas de altcoins @@ -898,11 +901,11 @@ account.menu.seedWords=Semente da carteira account.menu.backup=Backup account.menu.notifications=Notificações -account.arbitratorRegistration.pubKey=Public key +account.arbitratorRegistration.pubKey=Chave pública account.arbitratorRegistration.register=Registrar árbitro account.arbitratorRegistration.revoke=Revogar registro -account.arbitratorRegistration.info.msg=Favor note que você precisa estar disponível por 15 dias após revogar o registro pois podem haver negociações utilizando você como árbitro. O período máximo de negociação é de 8 dias e o processo de disputa pode levar até 7 dias. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Você precisa escolher pelo menos 1 língua.\nNós adicionamos a língua padrão para você. account.arbitratorRegistration.removedSuccess=Você removeu com sucesso seu árbitro da rede P2P. account.arbitratorRegistration.removedFailed=Não foi possível remover árbitro.{0} @@ -920,10 +923,10 @@ account.arbitratorSelection.noMatchingLang=Nenhuma linguagem compatível. account.arbitratorSelection.noLang=Você só pode selecionar árbitros que falam ao menos 1 língua em comum. account.arbitratorSelection.minOne=Você precisa selecionar ao menos um árbitro. -account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Favor certifique-se de que você atende aos requesitos para usar carteiras {0} como descrito na página online {1}.\nUsar carteiras de mercados centralizados onde você não tem as chaves sob seu controle or não usar um software de carteira compatível pode levar a perda dos fundos negociados!\nO árbitro não é um especialista em {2} e não pode ajudar nesses casos. +account.altcoin.yourAltcoinAccounts=Suas contas de altcoins +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Eu entendo e confirmo que eu sei qual carteira que preciso usar. -account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. +account.altcoin.popup.xmr.msg=Para negociar XMR no Bisq, certifique-se de que você entende e satisfaz os seguintes requisitos:\n\nPara enviar XMR você precisa usar uma carteira oficial do Monero (a carteira GUI ou a carteira CLI) com a flag store-tx-info habilitada (esta flag já vem habilitada por padrão nas novas versões). Certifique-se de que você consegue acessar a chave de transação (tx key), pois ela será necessária caso alguma disputa seja aberta.\nCarteira CLI (linha de comando): use o comando get_tx_key\nCarteira GUI: entre na aba Histórico e clique no botão (P) para provar um pagamento\n\nVocê pode conferir/verificar a transação através da ferramenta XMR checktx tool (https://xmr.llcoins.net/checktx.html) ou através da própria carteira.\nCarteira CLI: usando o comando (check_tx_key).\nCarteira GUI: na aba Avançado > Provar/Conferir.\nNormalmente as transferências não podem ser verificadas nos sites exploradores da blockchain do Monero\n\nCaso surja uma disputa, você precisará prover ao árbitro os seguintes dados:\n- A chave privada da transação\n- O hash da transação\n- O endereço público do recipiente\n\nSe você não conseguir prover os dados acima para o árbitro, ou se tiver usado uma carteira que não fornece estes dados, você irá perder a disputa. Nas negociações de Monero no Bisq, o remetente de XMR é a pessoa que é responsável por conseguir verificar a transferência de XMR para o árbitro em caso de disputa.\n\nO ID do pagamento não é necessário.\nSe você ainda tiver dúvidas sobre como funciona o processo, visite (https://www.getmonero.org/resources/user-guides/prove-payment.html) ou o fórum do Monero (https://forum.getmonero.org) para obter maiores informações. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). account.altcoin.popup.ccx.msg=If you want to trade CCX on Bisq please be sure you understand the following requirements:\n\nTo send CCX you must use an official Conceal wallet, either CLI or GUI. After sending a transfer payment, the wallets\ndisplay the transaction secret key. You must save it along with the transaction hash (ID) and the recipient's public\naddress in case arbitration is necessary. In such a case, you must give all three to the arbitrator, who will then\nverify the CCX transfer using the Conceal Transaction Viewer (https://explorer.conceal.network/txviewer).\nBecause Conceal is a privacy coin, block explorers cannot verify transfers.\n\nIf you cannot provide the required data to the arbitrator, you will lose the dispute case.\nIf you do not save the transaction secret key immediately after transferring CCX, it cannot be recovered later.\nIf you do not understand these requirements, seek help at the Conceal discord (http://discord.conceal.network). account.altcoin.popup.drgl.msg=Trading Dragonglass on Bisq requires that you understand and fulfill the following requirements:\n\nBecause of the privacy Dragonglass provides a transaction is not verifyable on the public blockchain. If required you can prove your payment thru use of your TXN-Private-Key.\nThe TXN-Private Key is a one-time key automatically generated for every transaction that can only be accessed from within your DRGL wallet.\nEither by DRGL-wallet GUI (inside transaction details dialog) or by the Dragonglass CLI simplewallet (using command "get_tx_key").\n\nDRGL version 'Oathkeeper' and higher are REQUIRED for both.\n\nIn case of a dispute, you must provide the arbitrator the following data:\n- The TXN-Private key\n- The transaction hash\n- The recipient's public address\n\nVerification of payment can be made using the above data as inputs at \ (http://drgl.info/#check_txn).\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the arbitrator in case of a dispute. Use of PaymentID is not required.\n\nIf you are unsure about any part of this process, visit Dragonglass on Discord (http://discord.drgl.info) for help. @@ -932,31 +935,31 @@ account.altcoin.popup.XZC.msg=Ao usar {0}, você obrigatoriamente precisa usar e account.altcoin.popup.bch=Bitcoin Cash and Bitcoin Clashic suffer from replay protection. If you use those coins be sure you take sufficient precautions and understand all implications.You can suffer losses by sending one coin and unintentionally send the same coins on the other block chain.Because those "airdrop coins" share the same history with the Bitcoin blockchain there are also security risks and a considerable risk for losing privacy.\n\nPlease read at the Bisq Forum more about that topic: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc account.altcoin.popup.btg=Because Bitcoin Gold shares the same history as the Bitcoin blockchain it comes with certain security risks and a considerable risk for losing privacy.If you use Bitcoin Gold be sure you take sufficient precautions and understand all implications.\n\nPlease read at the Bisq Forum more about that topic: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc -account.fiat.yourFiatAccounts=Your national currency accounts +account.fiat.yourFiatAccounts=Suas contas de moeda nacional account.backup.title=Carteira de backup -account.backup.location=Backup location -account.backup.selectLocation=Selecione localização para backup +account.backup.location=Local de backup +account.backup.selectLocation=Selecione local para backup account.backup.backupNow=Fazer backup agora (o backup não é criptografado) -account.backup.appDir=Diretório de dados do programa +account.backup.appDir=Pasta de dados do programa account.backup.logFile=Arquivo de Log -account.backup.openDirectory=Abrir diretório +account.backup.openDirectory=Abrir pasta account.backup.openLogFile=Abrir arquivo de Log account.backup.success=Backup salvo com sucesso em:\n{0} -account.backup.directoryNotAccessible=O diretório escolhido não é acessível. {0} +account.backup.directoryNotAccessible=A pasta escolhida não está acessível. {0} account.password.removePw.button=Remover senha account.password.removePw.headline=Remover proteção com senha da carteira account.password.setPw.button=Definir senha account.password.setPw.headline=Definir proteção de senha da carteira -account.password.info=Com proteção por senha você precisa digitar sua senha quando for retirar bitcoin de sua carteira ou quando quiser ver ou restaurar uma carteira de palavras semente, e também quando for abrir o programa. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Fazer backup da carteira -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Você não definiu uma senha para carteira, que protegeria a exibição das palavras da semente.\n\nGostaria de exibir as palavras da semente? account.seed.warn.noPw.yes=Sim, e não me pergunte novamente account.seed.enterPw=Digite a senha para ver palavras semente -account.seed.restore.info=Please note that you cannot import a wallet from an old Bisq version (any version before 0.5.0), because the wallet format has changed!\n\nIf you want to move the funds from the old version to the new Bisq application send it with a bitcoin transaction.\n\nAlso be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, eu entendi e quero restaurar @@ -974,15 +977,15 @@ account.notifications.webcam.button=Escanear código QR account.notifications.noWebcam.button=Eu não tenho uma webcam account.notifications.testMsg.label=Send test notification account.notifications.testMsg.title=Testar -account.notifications.erase.label=Clear notifications on phone +account.notifications.erase.label=Limpar notificações no celular account.notifications.erase.title=Limpar notificações account.notifications.email.label=Pairing token account.notifications.email.prompt=Insira o token de pareamento que você recebeu por e-mail account.notifications.settings.title=Configurações -account.notifications.useSound.label=Play notification sound on phone -account.notifications.trade.label=Receive trade messages -account.notifications.market.label=Receive offer alerts -account.notifications.price.label=Receive price alerts +account.notifications.useSound.label=Reproduzir som de notificação no celular +account.notifications.trade.label=Receber mensagens de negociação +account.notifications.market.label=Receber alertas de oferta +account.notifications.price.label=Receber alertas de preço account.notifications.priceAlert.title=Alertas de preço account.notifications.priceAlert.high.label=Avisar se o preço do BTC estiver acima de account.notifications.priceAlert.low.label=Avisar se o preço do BTC estiver abaixo de @@ -1003,7 +1006,7 @@ account.notifications.marketAlert.offerType.label=Tenho interesse em account.notifications.marketAlert.offerType.buy=Ofertas de compra (eu quero vender BTC) account.notifications.marketAlert.offerType.sell=Ofertas de venda (eu quero comprar BTC) account.notifications.marketAlert.trigger=Distância do preço da oferta (%) -account.notifications.marketAlert.trigger.info=With a price distance set, you will only receive an alert when an offer that meets (or exceeds) your requirements is published. Example: you want to sell BTC, but you will only sell at a 2% premium to the current market price. Setting this field to 2% will ensure you only receive alerts for offers with prices that are 2% (or more) above the current market price. +account.notifications.marketAlert.trigger.info=Ao definir uma distância de preço, você só irá receber um alerta quando alguém publicar uma oferta que atinge (ou excede) os seus critérios. Por exemplo: você quer vender BTC, mas você só irá vender a um prêmio de 2% sobre o preço de mercado atual. Ao definir esse campo para 2%, você só irá receber alertas de ofertas cujos preços estão 2% (ou mais) acima do preço de mercado atual. account.notifications.marketAlert.trigger.prompt=Distância percentual do preço do mercado (ex: 2,50%, -0,50%, etc.) account.notifications.marketAlert.addButton=Inserir alerta de oferta account.notifications.marketAlert.manageAlertsButton=Gerenciar alertas de oferta @@ -1019,7 +1022,7 @@ account.notifications.marketAlert.message.msg.above=acima account.notifications.marketAlert.message.msg=A new ''{0} {1}'' offer with price {2} ({3} {4} market price) and payment method ''{5}'' was published to the Bisq offerbook.\nOffer ID: {6}. account.notifications.priceAlert.message.title=Alerta de preço para {0} account.notifications.priceAlert.message.msg=O seu preço de alerta foi atingido. O preço atual da {0} é {1} {2} -account.notifications.noWebCamFound.warning=No webcam found.\n\nPlease use the email option to send the token and encryption key from your mobile phone to the Bisq application. +account.notifications.noWebCamFound.warning=Nenhuma webcam foi encontrada.\n\nPor favor, use a opção e-mail para enviar o token e a chave de criptografia do seu celular para o Bisq account.notifications.priceAlert.warning.highPriceTooLow=O preço mais alto deve ser maior do que o preço mais baixo account.notifications.priceAlert.warning.lowerPriceTooHigh=O preço mais baixo deve ser menor do que o preço mais alto @@ -1036,7 +1039,7 @@ dao.tab.bonding=Bonding dao.tab.proofOfBurn=Asset listing fee/Proof of burn dao.paidWithBsq=pago com BSQ -dao.availableBsqBalance=Available +dao.availableBsqBalance=Disponível dao.availableNonBsqBalance=Available non-BSQ balance (BTC) dao.unverifiedBsqBalance=Unverified (awaiting block confirmation) dao.lockedForVoteBalance=Used for voting @@ -1050,11 +1053,11 @@ dao.proposal.menuItem.vote=Vota em propostas dao.proposal.menuItem.result=Resultados dos votos dao.cycle.headline=Voting cycle dao.cycle.overview.headline=Voting cycle overview -dao.cycle.currentPhase=Current phase -dao.cycle.currentBlockHeight=Current block height -dao.cycle.proposal=Proposal phase -dao.cycle.blindVote=Blind vote phase -dao.cycle.voteReveal=Vote reveal phase +dao.cycle.currentPhase=Fase atual +dao.cycle.currentBlockHeight=Altura do bloco atual +dao.cycle.proposal=Fase de proposta +dao.cycle.blindVote=Fase de voto cego +dao.cycle.voteReveal=Fase de revelação dos votos dao.cycle.voteResult=Resultado dos votos dao.cycle.phaseDuration={0} blocks (≈{1}); Block {2} - {3} (≈{4} - ≈{5}) @@ -1142,14 +1145,14 @@ dao.param.THRESHOLD_CONFISCATION=Required threshold in % for a confiscation requ dao.param.THRESHOLD_ROLE=Required threshold in % for bonded role requests # suppress inspection "UnusedProperty" -dao.param.RECIPIENT_BTC_ADDRESS=Recipient BTC address +dao.param.RECIPIENT_BTC_ADDRESS=Endereço BTC do recipiente # suppress inspection "UnusedProperty" dao.param.ASSET_LISTING_FEE_PER_DAY=Asset listing fee per day # suppress inspection "UnusedProperty" dao.param.ASSET_MIN_VOLUME=Min. trade volume -dao.param.currentValue=Current value: {0} +dao.param.currentValue=Valor atual: {0} dao.param.blocks={0} blocos # suppress inspection "UnusedProperty" @@ -1159,20 +1162,20 @@ dao.results.cycle.duration.value={0} bloco(s) # suppress inspection "UnusedProperty" dao.results.cycle.value.postFix.isDefaultValue=(valor padrão) # suppress inspection "UnusedProperty" -dao.results.cycle.value.postFix.hasChanged=(has been changed in voting) +dao.results.cycle.value.postFix.hasChanged=(foi modificado em votação) # suppress inspection "UnusedProperty" dao.phase.PHASE_UNDEFINED=Indefinido # suppress inspection "UnusedProperty" -dao.phase.PHASE_PROPOSAL=Proposal phase +dao.phase.PHASE_PROPOSAL=Fase de proposta # suppress inspection "UnusedProperty" dao.phase.PHASE_BREAK1=Break 1 # suppress inspection "UnusedProperty" -dao.phase.PHASE_BLIND_VOTE=Blind vote phase +dao.phase.PHASE_BLIND_VOTE=Fase de voto cego # suppress inspection "UnusedProperty" dao.phase.PHASE_BREAK2=Break 2 # suppress inspection "UnusedProperty" -dao.phase.PHASE_VOTE_REVEAL=Vote reveal phase +dao.phase.PHASE_VOTE_REVEAL=Fase de revelação dos votos # suppress inspection "UnusedProperty" dao.phase.PHASE_BREAK3=Break 3 # suppress inspection "UnusedProperty" @@ -1196,7 +1199,7 @@ dao.bond.reputation.header=Lockup a bond for reputation dao.bond.reputation.table.header=My reputation bonds dao.bond.reputation.amount=Amount of BSQ to lockup dao.bond.reputation.time=Unlock time in blocks -dao.bond.reputation.salt=Salt +dao.bond.reputation.salt=Sal dao.bond.reputation.hash=Hash dao.bond.reputation.lockupButton=Lockup dao.bond.reputation.lockup.headline=Confirm lockup transaction @@ -1224,7 +1227,7 @@ dao.bond.table.column.details=Detalhes dao.bond.table.column.lockupTxId=Lockup Tx ID dao.bond.table.column.bondState=Bond state dao.bond.table.column.lockTime=Lock time -dao.bond.table.column.lockupDate=Lockup date +dao.bond.table.column.lockupDate=Travado em dao.bond.table.button.lockup=Lockup dao.bond.table.button.unlock=Destravar @@ -1292,17 +1295,17 @@ dao.burnBsq.menuItem.assetFee=Asset listing fee dao.burnBsq.menuItem.proofOfBurn=Proof of burn dao.burnBsq.header=Fee for asset listing dao.burnBsq.selectAsset=Select Asset -dao.burnBsq.fee=Fee -dao.burnBsq.trialPeriod=Trial period -dao.burnBsq.payFee=Pay fee +dao.burnBsq.fee=Taxa +dao.burnBsq.trialPeriod=Período de testes +dao.burnBsq.payFee=Pagar taxa dao.burnBsq.allAssets=All assets dao.burnBsq.assets.nameAndCode=Asset name dao.burnBsq.assets.state=Estado dao.burnBsq.assets.tradeVolume=Volume de negociação dao.burnBsq.assets.lookBackPeriod=Verification period dao.burnBsq.assets.trialFee=Fee for trial period -dao.burnBsq.assets.totalFee=Total fees paid -dao.burnBsq.assets.days={0} days +dao.burnBsq.assets.totalFee=Total de taxas pagas +dao.burnBsq.assets.days={0} dias dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial perios is {0}. # suppress inspection "UnusedProperty" @@ -1319,7 +1322,7 @@ dao.assetState.REMOVED_BY_VOTING=Removed by voting dao.proofOfBurn.header=Proof of burn dao.proofOfBurn.amount=Quantia dao.proofOfBurn.preImage=Pre-image -dao.proofOfBurn.burn=Burn +dao.proofOfQueimar.burn=Queimar dao.proofOfBurn.allTxs=All proof of burn transactions dao.proofOfBurn.myItems=My proof of burn transactions dao.proofOfBurn.date=Data @@ -1330,34 +1333,34 @@ dao.proofOfBurn.signature.window.title=Sign a message with key from proof or bur dao.proofOfBurn.verify.window.title=Verify a message with key from proof or burn transaction dao.proofOfBurn.copySig=Copy signature to clipboard dao.proofOfBurn.sign=Sign -dao.proofOfBurn.message=Message -dao.proofOfBurn.sig=Signature -dao.proofOfBurn.verify=Verify +dao.proofOfBurn.message=Mensagem +dao.proofOfBurn.sig=Assinatura +dao.proofOfBurn.verify=Verificar dao.proofOfBurn.verify.header=Verify message with key from proof or burn transaction -dao.proofOfBurn.verificationResult.ok=Verification succeeded +dao.proofOfBurn.verificationResult.ok=Verificação realizada com sucesso dao.proofOfBurn.verificationResult.failed=Verification failed # suppress inspection "UnusedProperty" dao.phase.UNDEFINED=Indefinido # suppress inspection "UnusedProperty" -dao.phase.PROPOSAL=Proposal phase +dao.phase.PROPOSAL=Fase de proposta # suppress inspection "UnusedProperty" dao.phase.BREAK1=Break before blind vote phase # suppress inspection "UnusedProperty" -dao.phase.BLIND_VOTE=Blind vote phase +dao.phase.BLIND_VOTE=Fase de voto cego # suppress inspection "UnusedProperty" dao.phase.BREAK2=Break before vote reveal phase # suppress inspection "UnusedProperty" -dao.phase.VOTE_REVEAL=Vote reveal phase +dao.phase.VOTE_REVEAL=Fase de revelação dos votos # suppress inspection "UnusedProperty" dao.phase.BREAK3=Break before result phase # suppress inspection "UnusedProperty" dao.phase.RESULT=Vote result phase # suppress inspection "UnusedProperty" -dao.phase.separatedPhaseBar.PROPOSAL=Proposal phase +dao.phase.separatedPhaseBar.PROPOSAL=Fase de proposta # suppress inspection "UnusedProperty" -dao.phase.separatedPhaseBar.BLIND_VOTE=Blind vote +dao.phase.separatedPhaseBar.BLIND_VOTE=Voto cego # suppress inspection "UnusedProperty" dao.phase.separatedPhaseBar.VOTE_REVEAL=Revelar voto # suppress inspection "UnusedProperty" @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Tipo de proposta dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=Meu voto +dao.proposal.table.header.remove=Remover dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1451,7 +1456,7 @@ dao.proposal.display.paramValue=Parameter value dao.proposal.display.confiscateBondComboBox.label=Choose bond dao.proposal.display.assetComboBox.label=Asset to remove -dao.blindVote=blind vote +dao.blindVote=voto cego dao.blindVote.startPublishing=Publishing blind vote transaction... dao.blindVote.success=Your blind vote has been successfully published. @@ -1471,7 +1476,7 @@ dao.wallet.dashboard.genesisTxId=Genesis transaction ID dao.wallet.dashboard.genesisIssueAmount=BSQ issued at genesis transaction dao.wallet.dashboard.compRequestIssueAmount=BSQ issued for compensation requests dao.wallet.dashboard.reimbursementAmount=BSQ issued for reimbursement requests -dao.wallet.dashboard.availableAmount=Total available BSQ +dao.wallet.dashboard.availableAmount=Total de BSQ disponível dao.wallet.dashboard.burntAmount=Burned BSQ (fees) dao.wallet.dashboard.totalLockedUpAmount=Locked up in bonds dao.wallet.dashboard.totalUnlockingAmount=Unlocking BSQ from bonds @@ -1501,8 +1506,8 @@ dao.wallet.send.send=Enviar fundos BSQ dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Confirmar solicitação de retirada. dao.wallet.send.sendFunds.details=Enviando: {0}\nPara o endereço: {1}\nTaxa de transação: {2} ({3} satoshis/byte)\nTamanho da transação: {4} Kb\n\nO destinatário receberá: {5}\n\nTem certeza de que deseja retirar essa quantia? -dao.wallet.chainHeightSynced=Sincronizado até o bloco:{0} (último bloco: {1}) -dao.wallet.chainHeightSyncing=Sincronizando bloco: {0} (último bloco: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Tipo # suppress inspection "UnusedProperty" @@ -1545,7 +1550,7 @@ dao.tx.issuanceFromCompReq.tooltip=Compensation request which led to an issuance dao.tx.issuanceFromReimbursement=Reimbursement request/issuance dao.tx.issuanceFromReimbursement.tooltip=Reimbursement request which led to an issuance of new BSQ.\nIssuance date: {0} dao.proposal.create.missingFunds=Você não tem saldo suficiente para criar a proposta.\nFaltam: {0} -dao.feeTx.confirm=Confirm {0} transaction +dao.feeTx.confirm=Confirmar transação {0} dao.feeTx.confirm.details=Taxa de {0}: {1}\nTaxa de mineração: {2} ({3} satoshis/byte)\nTamanho da transação: {4} Kb\n\nTem certeza de que deseja publicar a transação {5}? @@ -1554,11 +1559,11 @@ dao.feeTx.confirm.details=Taxa de {0}: {1}\nTaxa de mineração: {2} ({3} satosh #################################################################### contractWindow.title=Detalhes da disputa -contractWindow.dates=Offer date / Trade date +contractWindow.dates=Data da oferta / Data da negociação contractWindow.btcAddresses=Bitcoin address BTC buyer / BTC seller contractWindow.onions=Network address BTC buyer / BTC seller contractWindow.numDisputes=No. of disputes BTC buyer / BTC seller -contractWindow.contractHash=Contract hash +contractWindow.contractHash=Hash do contrato displayAlertMessageWindow.headline=Informação importante! displayAlertMessageWindow.update.headline=Informação importante de atualização! @@ -1573,14 +1578,14 @@ displayUpdateDownloadWindow.button.downloadLater=Baixar depois displayUpdateDownloadWindow.button.ignoreDownload=Ignorar essa versão displayUpdateDownloadWindow.headline=Uma nova atualização para o Bisq está disponível! displayUpdateDownloadWindow.download.failed.headline=Erro no download -displayUpdateDownloadWindow.download.failed=Erro no Download.\nPor favor baixe manualmente em https://bisq.network/downloads +displayUpdateDownloadWindow.download.failed=Erro no Download.\nPor favor, baixe manualmente em https://bisq.network/downloads displayUpdateDownloadWindow.installer.failed=Não foi possível determinar o instalador correto. Por favor, baixe o instalador em https://bisq.network/downloads e verifique-o manualmente displayUpdateDownloadWindow.verify.failed=Falha durante a verificação.\nPor faovr, baixe manualmente em https://bisq.network/downloads -displayUpdateDownloadWindow.success=The new version has been successfully downloaded and the signature verified.\n\nPlease open the download directory, shut down the application and install the new version. -displayUpdateDownloadWindow.download.openDir=Abrir diretório de download +displayUpdateDownloadWindow.success=A nova versão foi baixada com sucesso e teve a sua assinatura verificada.\n\nPara usá-la, abra a pasta de downloads, feche o programa e instale a nova versão. +displayUpdateDownloadWindow.download.openDir=Abrir pasta de download -disputeSummaryWindow.title=Resumo -disputeSummaryWindow.openDate=Ticket opening date +disputeResumoWindow.title=Resumo +disputeSummaryWindow.openDate=Data da abertura do ticket disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence disputeSummaryWindow.evidence.tamperProof=Evidência à prova de adulteração @@ -1594,7 +1599,7 @@ disputeSummaryWindow.payout.adjustAmount=A quantia digitada excede a quantidade disputeSummaryWindow.payoutAmount.buyer=Buyer's payout amount disputeSummaryWindow.payoutAmount.seller=Seller's payout amount disputeSummaryWindow.payoutAmount.invert=Use loser as publisher -disputeSummaryWindow.reason=Reason of dispute +disputeSummaryWindow.reason=Motivo da disputa disputeSummaryWindow.reason.bug=Bug (problema técnico) disputeSummaryWindow.reason.usability=Usabilidade disputeSummaryWindow.reason.protocolViolation=Violação de protocolo @@ -1609,11 +1614,11 @@ disputeSummaryWindow.close.msg=Ticket fechado em {0}\n\nResumo:\n{1} evidência disputeSummaryWindow.close.closePeer=Você também precisa fechar o ticket dos parceiros de negociação! emptyWalletWindow.headline={0} emergency wallet tool -emptyWalletWindow.info=Please use that only in emergency case if you cannot access your fund from the UI.\n\nPlease note that all open offers will be closed automatically when using this tool.\n\nBefore you use this tool, please backup your data directory. You can do this at \"Account/Backup\".\n\nPlease report us your problem and file a bug report on GitHub or at the Bisq forum so that we can investigate what was causing the problem. -emptyWalletWindow.balance=Your available wallet balance +emptyWalletWindow.info=Por favor, utilize essa opção apenas em caso de emergência, caso você não consiga acessar seus fundos a partir do programa.\n\nNote que todas as ofertas abertas serão fechadas automaticamente quando você utilizar esta ferramenta.\n\nAntes de usar esta ferramenta, faça um backup da sua pasta de dados. Você pode fazer isso em \"Conta/Backup\".\n\nHavendo qualquer problema, avise-nos através do GitHub ou do fórum Bisq, para que assim possamos investigar o que causou o problema. +emptyWalletWindow.balance=Seu saldo disponível na carteira emptyWalletWindow.bsq.btcBalance=Balance of non-BSQ Satoshis -emptyWalletWindow.address=Your destination address +emptyWalletWindow.address=Seu endereço de destino emptyWalletWindow.button=Enviar todos os fundos emptyWalletWindow.openOffers.warn=Você possui ofertas abertas que serão removidas se você esvaziar sua carteira.\nTem certeza de que deseja esvaziar sua carteira? emptyWalletWindow.openOffers.yes=Sim, tenho certeza @@ -1635,50 +1640,50 @@ filterWindow.preventPublicBtcNetwork=Prevent usage of public Bitcoin network filterWindow.add=Adicionar filtro filterWindow.remove=Remover filtro -offerDetailsWindow.minBtcAmount=Min. BTC amount +offerDetailsWindow.minBtcAmount=Quantia mín. em BTC offerDetailsWindow.min=(mín. {0}) offerDetailsWindow.distance=(distância do preço de mercado: {0}) -offerDetailsWindow.myTradingAccount=My trading account +offerDetailsWindow.myTradingAccount=Minha conta de negociação offerDetailsWindow.offererBankId=(ID/BIC/SWIFT do banco do ofertante) offerDetailsWindow.offerersBankName=(nome do banco do ofertante) -offerDetailsWindow.bankId=Bank ID (e.g. BIC or SWIFT) +offerDetailsWindow.bankId=ID do banco (ex: BIC ou SWIFT) offerDetailsWindow.countryBank=País do banco do ofertante -offerDetailsWindow.acceptedArbitrators=Accepted arbitrators +offerDetailsWindow.acceptedArbitrators=Árbitros aceitos offerDetailsWindow.commitment=Compromisso offerDetailsWindow.agree=Eu concordo -offerDetailsWindow.tac=Terms and conditions +offerDetailsWindow.tac=Termos e condições offerDetailsWindow.confirm.maker=Criar oferta para {0} bitcoin offerDetailsWindow.confirm.taker=Confirmar: Aceitar oferta de {0} bitcoin -offerDetailsWindow.creationDate=Creation date +offerDetailsWindow.creationDate=Criada em offerDetailsWindow.makersOnion=Endereço onion do ofertante qRCodeWindow.headline=Código QR qRCodeWindow.msg=Por favor, utilize esse código QR para realizar depósitos em sua carteira bisq a partir de uma carteira externa. -qRCodeWindow.request=Payment request:\n{0} +qRCodeWindow.request=Solicitação de pagamento:\n{0} selectDepositTxWindow.headline=Selecionar transação de depósito para disputa -selectDepositTxWindow.msg=The deposit transaction was not stored in the trade.\nPlease select one of the existing multisig transactions from your wallet which was the deposit transaction used in the failed trade.\n\nYou can find the correct transaction by opening the trade details window (click on the trade ID in the list)and following the trading fee payment transaction output to the next transaction where you see the multisig deposit transaction (the address starts with 3). That transaction ID should be visible in the list presented here. Once you found the correct transaction select that transaction here and continue.\n\nSorry for the inconvenience but that error case should happen very rarely and in future we will try to find better ways to resolve it. +selectDepositTxWindow.msg=A transação do depósito não foi guardada na negociação.\nPor favor, selecione a transação multisig de sua carteira usada como transação de depósito na negociação que falhou.\n\nVocê pode descobrir qual foi a transação abrindo a janela de detalhe de negociações (clique no ID da negociação na lista) e seguindo a saída (output) da transação de pagamento da taxa de negociação para a próxima transação onde você verá a transação de depósito multisig (o endereço inicia com o número 3). Esse ID de transação deve estar visível na lista apresentada aqui. Uma vez encontrada a transação, selecione-a aqui e continue.\n\nDesculpe-nos pelo ocorrido, este erro deveria ocorrer muito raramente e no futuro iremos procurar melhores maneiras de resolvê-lo. selectDepositTxWindow.select=Selecionar transação de depósito selectBaseCurrencyWindow.headline=Seleção de mercado -selectBaseCurrencyWindow.msg=The selected default market is {0}.\n\nIf you want to change to another base currency please select one from the drop down box.\nYou can also change later the base currency at the \"Settings/Network\" screen. +selectBaseCurrencyWindow.msg=O mercado padrão selecionado é {0}.\n\nSe você quer trocá-lo para outra moeda, por favor, selecione-a.\nVocê também pode mudar isso depois na tela \"Configurações/Rede\". selectBaseCurrencyWindow.select=Escolher moeda de base sendAlertMessageWindow.headline=Enviar notificação global -sendAlertMessageWindow.alertMsg=Alert message +sendAlertMessageWindow.alertMsg=Mensagem de alerta sendAlertMessageWindow.enterMsg=Digitar mensagem -sendAlertMessageWindow.isUpdate=Is update notification -sendAlertMessageWindow.version=New version no. +sendAlertMessageWindow.isUpdate=É notificação de atualização +sendAlertMessageWindow.version=Nº da nova versão sendAlertMessageWindow.send=Enviar notificação sendAlertMessageWindow.remove=Remover notificação sendPrivateNotificationWindow.headline=Enviar mensagem privada -sendPrivateNotificationWindow.privateNotification=Private notification +sendPrivateNotificationWindow.privateNotification=Notificação privada sendPrivateNotificationWindow.enterNotification=Digite notificação sendPrivateNotificationWindow.send=Enviar notificação privada showWalletDataWindow.walletData=Dados da carteira -showWalletDataWindow.includePrivKeys=Include private keys +showWalletDataWindow.includePrivKeys=Incluir chaves privadas # We do not translate the tac because of the legal nature. We would need translations checked by lawyers # in each language which is too expensive atm. @@ -1692,7 +1697,7 @@ tradeDetailsWindow.disputedPayoutTxId=ID de transação do pagamento disputado: tradeDetailsWindow.tradeDate=Data da negociação tradeDetailsWindow.txFee=Taxa de mineração tradeDetailsWindow.tradingPeersOnion=Endereço onion dos parceiros de negociação -tradeDetailsWindow.tradeState=Trade state +tradeDetailsWindow.tradeState=Estado da negociação walletPasswordWindow.headline=Digite senha para abrir: @@ -1700,7 +1705,7 @@ torNetworkSettingWindow.header=Configurações de rede do Tor torNetworkSettingWindow.noBridges=Não usar bridges torNetworkSettingWindow.providedBridges=Conectar com as pontes fornecidas torNetworkSettingWindow.customBridges=Adicionar pontes personalizadas -torNetworkSettingWindow.transportType=Transport type +torNetworkSettingWindow.transportType=Tipo de transporte torNetworkSettingWindow.obfs3=obfs3 torNetworkSettingWindow.obfs4=obfs4 (recomendado) torNetworkSettingWindow.meekAmazon=meek-amazon @@ -1741,12 +1746,12 @@ popup.headline.error=Erro popup.doNotShowAgain=Não mostrar novamente popup.reportError.log=Abrir arquivo de log popup.reportError.gitHub=Relatar à lista de problemas do GitHub -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Por favor, reinicie o aplicativo e verifique sua conexão de Internet para ver se o problema foi resolvido. -popup.error.takeOfferRequestFailed=An error occurred when someone tried to take one of your offers:\n{0} +popup.error.takeOfferRequestFailed=Um erro ocorreu quando alguém tentou aceitar uma de suas ofertas:\n{0} -error.spvFileCorrupted=Um erro ocorreu ao ler o arquivo SPV chain.\nPode ser que o arquivo SPV chain esteja corrompido.\n\nMensagem de erro: {0}\n\nDeseja remover o arquivo e resincronizar? +error.spvFileCorrupted=Um erro ocorreu ao ler o arquivo SPV chain.\nPode ser que o arquivo SPV chain esteja corrompido.\n\nMensagem de erro: {0}\n\nDeseja remover o arquivo e ressincronizar? error.deleteAddressEntryListFailed=Não foi possível apagar o arquivo AddressEntryList.\nErro: {0} popup.warning.walletNotInitialized=A carteira ainda não foi inicializada @@ -1758,27 +1763,27 @@ popup.warning.tradePeriod.halfReached=Sua negociação com ID {0} atingiu metade popup.warning.tradePeriod.ended=Sua negociação com ID {0} atingiu o período máximo permitido e ainda não foi concluída.\n\nO período de negociação acabou em {1}\n\nFavor verifique sua negociação em \"Portfolio/Negociações em aberto\" para entrar em contato com o árbitro. popup.warning.noTradingAccountSetup.headline=Você ainda não configurou uma conta de negociação popup.warning.noTradingAccountSetup.msg=Você precisa criar uma conta com moeda nacional ou altcoin antes de criar uma oferta.\nQuer criar uma conta? -popup.warning.noArbitratorsAvailable=There are no arbitrators available. +popup.warning.noArbitratorsAvailable=Não há árbitros disponíveis. popup.warning.notFullyConnected=Você precisa aguardar até estar totalmente conectado à rede.\nIsto pode levar até 2 minutos na inicialização do programa. -popup.warning.notSufficientConnectionsToBtcNetwork=You need to wait until you have at least {0} connections to the Bitcoin network. +popup.warning.notSufficientConnectionsToBtcNetwork=Você precisa esperar até ter pelo menos {0} conexões à rede Bitcoin. popup.warning.downloadNotComplete=Você precisa aguardar até que termine o download dos blocos Bitcoin restantes popup.warning.removeOffer=Tem certeza que deseja remover essa oferta?\nA taxa de oferta de {0} será perdida se você removê-la. popup.warning.tooLargePercentageValue=Você não pode definir uma porcentage suprior a 100%. -popup.warning.examplePercentageValue=Favor digitar um número porcentual como \"5.4\" para 5.4% +popup.warning.examplePercentageValue=Digite um número porcentual como \"5.4\" para 5.4% popup.warning.noPriceFeedAvailable=Não há canal de preços disponível para essa moeda. Você não pode usar um preço porcentual.\nFavor selecionar um preço fixo. popup.warning.sendMsgFailed=O envio da mensagem para seu parceiro de negociação falhou.\nFavor tentar novamente e se o erro persistir reportar o erro (bug report). -popup.warning.insufficientBtcFundsForBsqTx=You don''t have sufficient BTC funds for paying the miner fee for that transaction.\nPlease fund your BTC wallet.\nMissing funds: {0} +popup.warning.insufficientBtcFundsForBsqTx=Você não possui fundos BTC suficientes para pagar a taxa de mineração para essa transação.\nPor favor, deposite BTC em sua carteira.\nFundos faltando: {0} popup.warning.insufficientBsqFundsForBtcFeePayment=You don''t have sufficient BSQ funds for paying the trade fee in BSQ. You can pay the fee in BTC or you need to fund your BSQ wallet. You can buy BSQ in Bisq.\n\nMissing BSQ funds: {0} popup.warning.noBsqFundsForBtcFeePayment=Your BSQ wallet does not have sufficient funds for paying the trade fee in BSQ. popup.warning.messageTooLong=Sua mensagem excede o tamanho máximo permitido. Favor enviá-la em várias partes ou subir utilizando um serviço como https://pastebin.com. popup.warning.lockedUpFunds=You have locked up funds from a failed trade.\nLocked up balance: {0} \nDeposit tx address: {1}\nTrade ID: {2}.\n\nPlease open a support ticket by selecting the trade in the pending trades screen and clicking \"alt + o\" or \"option + o\"." -popup.warning.nodeBanned=One of the {0} nodes got banned. Please restart your application to be sure to not be connected to the banned node. +popup.warning.nodeBanned=Um dos {0} nodos foi banido. Por favor, reinicie o programa para certificar-se de que você não está conectado ao nodo banido. popup.warning.priceRelay=price relay popup.warning.seed=semente -popup.info.securityDepositInfo=Para garantir que ambos os negociadores sigam o protocolo de negociação, eles precisam pagam um depósito de segurança.\n\nO depósito permanecerá em sua carteira de negociação local até que a oferta seja aceita por outro negociador.\nEle será devolvido para você após a negociação ser concluída com sucesso.\n\nÉ necessário que você mantenha o programa aberto, caso você tenha uma oferta em aberto. Quando outro negociador quiser aceitar a sua oferta, é necessário que o seu programa esteja aberto e online para que o protoclo de negociação seja executado.\nCertifique-se de que a função standby (economia de energia) do seu computador está desativada, pois este modo faz com que o bisq se desconecte da rede (não há problema em você desligar o monitor). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=Eu confirmo que eu posso fazer o depósito @@ -1788,17 +1793,17 @@ popup.info.shutDownWithOpenOffers=Bisq is being shut down, but there are open of popup.privateNotification.headline=Notificação privada importante! popup.securityRecommendation.headline=Recomendação de segurança importante -popup.securityRecommendation.msg=Lembre-se de proteger a sua carteira com uma senha, caso você já não tenha criado uma.\n\nRecomendamos que você escreva num papel as palavras da semente de sua carteira. Essas palavras funcionam como uma senha mestra para recuperar a sua carteira Bitcoin.\nNa seção \"Semente da carteira\" você encontra mais informações.\n\nTambém aconselhamos que faça backup completo da pasta de dados do programa na seção \"Backup\". +popup.securityRecommendation.msg=Lembre-se de proteger a sua carteira com uma senha, caso você já não tenha criado uma.\n\nRecomendamos que você escreva num papel as palavras da semente de sua carteira. Essas palavras funcionam como uma senha mestra para recuperar a sua carteira Bitcoin, caso o seu computador apresente algum problema.\nVocê irá encontrar mais informações na seção \"Semente da carteira\".\n\nTambém aconselhamos que você faça um backup completo da pasta de dados do programa na seção \"Backup\". popup.bitcoinLocalhostNode.msg=Bisq detected a locally running Bitcoin Core node (at localhost).\nPlease make sure that this node is fully synced before you start Bisq and that it is not running in pruned mode. popup.shutDownInProgress.headline=Desligando -popup.shutDownInProgress.msg=Desligar o programa pode levar alguns segundos.\nFavor não interromper o processo. +popup.shutDownInProgress.msg=O desligamento do programa pode levar alguns segundos.\nPor favor, não interrompa o processo. popup.attention.forTradeWithId=Atenção para a negociação com ID {0} popup.roundedFiatValues.headline=Nova funcionalidade de privacidade: valores arredondados em moeda fiduciária -popup.roundedFiatValues.msg=To increase privacy of your trade the {0} amount was rounded.\n\nDepending on the client version you''ll pay or receive either values with decimals or rounded ones.\n\nBoth values do comply from now on with the trade protocol.\n\nAlso be aware that BTC values are changed automatically to match the rounded fiat amount as close as possible. +popup.roundedFiatValues.msg=Para aumentar a privacidade da sua transação, a quantia {0} foi arredondada.\n\nDependendo da versão do cliente, você irá pagar ou receber valores com decimais ou valores arredondados.\n\nAmbos os valores se enquadram no protocolo de negociação.\n\nPerceba também que os valores em BTC são modificados automaticamente para corresponder o mais próximo possível à quantia em fiat arredondada. #################################################################### @@ -1818,7 +1823,7 @@ notification.walletUpdate.headline=Update da carteira de negociação notification.walletUpdate.msg=Sua carteira Bisq tem saldo suficiente.\nQuantia: {0} notification.takeOffer.walletUpdate.msg=Sua carteira Bisq já tinha saldo suficiente proveniente de uma tentativa anterior de aceitar oferta.\nQuantia: {0} notification.tradeCompleted.headline=Negociação concluída -notification.tradeCompleted.msg=You can withdraw your funds now to your external Bitcoin wallet or transfer it to the Bisq wallet. +notification.tradeCompleted.msg=Você pode retirar seus fundos agora para sua carteira Bitcoin externa ou transferi-los para a carteira Bisq. #################################################################### @@ -1838,16 +1843,16 @@ systemTray.tooltip=Bisq: A exchange descentralizada guiUtil.miningFeeInfo=Please be sure that the mining fee used at your external wallet is at least {0} satoshis/byte. Otherwise the trade transactions cannot be confirmed and a trade would end up in a dispute. -guiUtil.accountExport.savedToPath=Contas de negociação salvas no diretório:\n{0} +guiUtil.accountExport.savedToPath=Contas de negociação salvas na pasta:\n{0} guiUtil.accountExport.noAccountSetup=Você não tem contas de negociação prontas para exportar. -guiUtil.accountExport.selectPath=Selecione diretório de {0} +guiUtil.accountExport.selectPath=Selecione pasta de {0} # suppress inspection "TrailingSpacesInProperty" guiUtil.accountExport.tradingAccount=Conta de negociação com ID {0} # suppress inspection "TrailingSpacesInProperty" guiUtil.accountImport.noImport=Nós não importamos uma conta de negociação com id {0} pois ela já existe.\n guiUtil.accountExport.exportFailed=Exportar para CSV falhou pois houve um erro.\nErro = {0} -guiUtil.accountExport.selectExportPath=Selecionar diretório para exportar -guiUtil.accountImport.imported=Conta de negociação importada do diretório:\n{0}\n\nContas importadas:\n{1} +guiUtil.accountExport.selectExportPath=Selecionar pasta para exportar +guiUtil.accountImport.imported=Conta de negociação importada da pasta:\n{0}\n\nContas importadas:\n{1} guiUtil.accountImport.noAccountsFound=Nenhuma conta de negociação exportada foi encontrada no caminho: {0}.\nNome do arquivo é {1}." guiUtil.openWebBrowser.warning=Você abrirá uma página da web em seu navegador padrão.\nDeseja abrir a página agora?\n\nSe você não estiver usando o \"Tor Browser\" como seu navegador padrão você conectará à página na rede aberta (clear net).\n\nURL: \"{0}\" guiUtil.openWebBrowser.doOpen=Abrir a página da web e não perguntar novamente @@ -1884,10 +1889,10 @@ confidence.confirmed=Confirmado em {0} bloco(s) confidence.invalid=A transação é inválida peerInfo.title=Informação do par -peerInfo.nrOfTrades=Number of completed trades +peerInfo.nrOfTrades=Nº de negociações concluídas peerInfo.notTradedYet=Você ainda não negociou com esse usuário. -peerInfo.setTag=Set tag for that peer -peerInfo.age=Payment account age +peerInfo.setTag=Definir uma etiqueta para esse trader +peerInfo.age=Idade da conta de pagamento peerInfo.unknownAge=Idade desconhecida addressTextField.openWallet=Abrir a sua carteira Bitcoin padrão @@ -1906,7 +1911,7 @@ txIdTextField.blockExplorerIcon.tooltip=Abrir um explorador de blockchain com o #################################################################### navigation.account=\"Conta\" -navigation.account.walletSeed=\"Account/Wallet seed\" +navigation.account.walletSeed=\"Conta/Sementa da carteira\" navigation.funds.availableForWithdrawal=\"Fundos/Enviar fundos\" navigation.portfolio.myOpenOffers=\"Portfolio/Minhas ofertas\" navigation.portfolio.pending=\"Portfolio/Negociações em aberto\" @@ -1975,8 +1980,8 @@ time.minutes=minutos time.seconds=segundos -password.enterPassword=Enter password -password.confirmPassword=Confirm password +password.enterPassword=Insira a senha +password.confirmPassword=Confirme a senha password.tooLong=A senha deve ter menos de 500 caracteres. password.deriveKey=Derivar chave a partir da senha password.walletDecrypted=A carteira foi decriptada com sucesso e a proteção por senha removida @@ -1988,12 +1993,12 @@ password.forgotPassword=Esqueceu a senha? password.backupReminder=Please note that when setting a wallet password all automatically created backups from the unencrypted wallet will be deleted.\n\nIt is highly recommended to make a backup of the application directory and write down your seed words before setting a password! password.backupWasDone=Eu já fiz um backup -seed.seedWords=Wallet seed words -seed.enterSeedWords=Enter wallet seed words -seed.date=Wallet date +seed.seedWords=Semente da carteira +seed.enterSeedWords=Insira a semente da carteira +seed.date=Data da carteira seed.restore.title=Restaurar carteira seed.restore=Restaurar carteira -seed.creationDate=Creation date +seed.creationDate=Criada em seed.warn.walletNotEmpty.msg=Your Bitcoin wallet is not empty.\n\nYou must empty this wallet before attempting to restore an older one, as mixing wallets together can lead to invalidated backups.\n\nPlease finalize your trades, close all your open offers and go to the Funds section to withdraw your bitcoin.\nIn case you cannot access your bitcoin you can use the emergency tool to empty the wallet.\nTo open that emergency tool press \"alt + e\" or \"option + e\" . seed.warn.walletNotEmpty.restore=Eu desejo restaurar mesmo assim seed.warn.walletNotEmpty.emptyWallet=Eu esvaziarei as carteiras primeiro @@ -2007,13 +2012,13 @@ seed.restore.error=Um erro ocorreu ao restaurar as carteiras com palavras sement #################################################################### payment.account=Conta -payment.account.no=Account no. -payment.account.name=Account name +payment.account.no=Nº da conta +payment.account.name=Nome da conta payment.account.owner=Nome completo do titular da conta payment.account.fullName=Nome completo (nome e sobrenome) -payment.account.state=State/Province/Region -payment.account.city=City -payment.bank.country=Country of bank +payment.account.state=Estado/Província/Região +payment.account.city=Cidade +payment.bank.country=País do banco payment.account.name.email=Nome completo / e-mail do titular da conta payment.account.name.emailAndHolderId=Nome completo / e-mail / {0} do titular da conta payment.bank.name=Nome do banco @@ -2023,72 +2028,72 @@ payment.select.country=Selecionar país payment.select.bank.country=Selecionar país do banco payment.foreign.currency=Tem certeza que deseja selecionar uma moeda que não seja a moeda padrão do pais? payment.restore.default=Não, resturar para a moeda padrão -payment.email=Email +payment.email=E-mail payment.country=País -payment.extras=Extra requirements -payment.email.mobile=Email or mobile no. +payment.extras=Requerimentos adicionais +payment.email.mobile=E-mail ou celular payment.altcoin.address=Endereço altcoin payment.altcoin=Altcoin payment.select.altcoin=Selecionar ou buscar altcoin -payment.secret=Secret question -payment.answer=Answer -payment.wallet=Wallet ID -payment.uphold.accountId=Username or email or phone no. -payment.cashApp.cashTag=$Cashtag -payment.moneyBeam.accountId=Email or phone no. -payment.venmo.venmoUserName=Venmo username -payment.popmoney.accountId=Email or phone no. -payment.revolut.accountId=Email or phone no. +payment.secret=Pergunta secreta +payment.answer=Resposta +payment.wallet=ID da carteira +payment.uphold.accountId=Nome de usuário, e-mail ou nº de telefone +payment.cashApp.cashTag=$Cashtag: +payment.moneyBeam.accountId=E-mail ou nº de telefone +payment.venmo.venmoUserName=Nome do usuário do Venmo +payment.popmoney.accountId=E-mail ou nº de telefone +payment.revolut.accountId=E-mail ou nº de telefone payment.promptPay.promptPayId=Citizen ID/Tax ID or phone no. -payment.supportedCurrencies=Supported currencies -payment.limitations=Limitations -payment.salt=Salt for account age verification +payment.supportedCurrencies=Moedas suportadas +payment.limitations=Limites +payment.salt=Sal para verificação da idade da conta payment.error.noHexSalt=O sal precisa estar em formato hexadecimal.\nO campo sal só deve ser editado se você quiser transferir o sal de uma conta antiga para manter a idade de conta. A idade da conta é verificada utilizando o sal da conta e os dados identificadores da conta (por exemplo, o IBAN). -payment.accept.euro=Accept trades from these Euro countries -payment.accept.nonEuro=Accept trades from these non-Euro countries -payment.accepted.countries=Accepted countries -payment.accepted.banks=Accepted banks (ID) -payment.mobile=Mobile no. -payment.postal.address=Postal address -payment.national.account.id.AR=CBU number +payment.accept.euro=Aceitar negociações destes países do Euro +payment.accept.nonEuro=Aceitar negociações desses países fora do Euro +payment.accepted.countries=Países aceitos +payment.accepted.banks=Bancos aceitos (ID) +payment.mobile=Celular +payment.postal.address=CEP +payment.national.account.id.AR=Número CBU #new payment.altcoin.address.dyn=Endereço {0} payment.altcoin.receiver.address=Endereço altcoin do recipiente -payment.accountNr=Account number -payment.emailOrMobile=Email or mobile nr -payment.useCustomAccountName=Usar número de conta personalizado: -payment.maxPeriod=Max. allowed trade period +payment.accountNr=Nº da conta +payment.emailOrMobile=E-mail ou celular +payment.useCustomAccountName=Usar nome personalizado +payment.maxPeriod=Período máximo de negociação permitido payment.maxPeriodAndLimit=Duração máx. da negociação: {0} / Limite de negociação: {1} / Idade da conta: {2} payment.maxPeriodAndLimitCrypto=Duração máxima de negociação: {0} / Limite de negociação: {1} payment.currencyWithSymbol=Moeda: {0} payment.nameOfAcceptedBank=Nome do banco aceito payment.addAcceptedBank=Adicionar banco aceito payment.clearAcceptedBanks=Limpar bancos aceitos -payment.bank.nameOptional=Bank name (optional) -payment.bankCode=Bank code +payment.bank.nameOptional=Nome do banco (opcional) +payment.bankCode=Código do banco payment.bankId=ID do banco (BIC/SWIFT) -payment.bankIdOptional=Bank ID (BIC/SWIFT) (optional) -payment.branchNr=Branch no. -payment.branchNrOptional=Branch no. (optional) -payment.accountNrLabel=Account no. (IBAN) -payment.accountType=Account type +payment.bankIdOptional=ID do banco (BIC/SWIFT) (opcional) +payment.branchNr=Nº da agência +payment.branchNrOptional=Nº da agência (opcional) +payment.accountNrLabel=Nº da conta (IBAN) +payment.accountType=Tipo de conta payment.checking=Conta Corrente payment.savings=Poupança -payment.personalId=Personal ID +payment.personalId=Identificação pessoal payment.clearXchange.info=Please be sure that you fulfill the requirements for the usage of Zelle (ClearXchange).\n\n1. You need to have your Zelle (ClearXchange) account verified on their platform before starting a trade or creating an offer.\n\n2. You need to have a bank account at one of the following member banks:\n\t● Bank of America\n\t● Capital One P2P Payments\n\t● Chase QuickPay\n\t● FirstBank Person to Person Transfers\n\t● Frost Send Money\n\t● U.S. Bank Send Money\n\t● TD Bank\n\t● Citibank\n\t● Wells Fargo SurePay\n\n3. You need to be sure to not exceed the daily or monthly Zelle (ClearXchange) transfer limits.\n\nPlease use Zelle (ClearXchange) only if you fulfill all those requirements, otherwise it is very likely that the Zelle (ClearXchange) transfer fails and the trade ends up in a dispute.\nIf you have not fulfilled the above requirements you will lose your security deposit.\n\nPlease also be aware of a higher chargeback risk when using Zelle (ClearXchange).\nFor the {0} seller it is highly recommended to get in contact with the {1} buyer by using the provided email address or mobile number to verify that he or she is really the owner of the Zelle (ClearXchange) account. payment.moneyGram.info=When using MoneyGram the BTC buyer has to send the Authorisation number and a photo of the receipt by email to the BTC seller. The receipt must clearly show the seller's full name, country, state and the amount. The buyer will get displayed the seller's email in the trade process. payment.westernUnion.info=When using Western Union the BTC buyer has to send the MTCN (tracking number) and a photo of the receipt by email to the BTC seller. The receipt must clearly show the seller's full name, city, country and the amount. The buyer will get displayed the seller's email in the trade process. payment.halCash.info=When using HalCash the BTC buyer need to send the BTC seller the HalCash code via a text message from the mobile phone.\n\nPlease make sure to not exceed the maximum amount your bank allows you to send with HalCash. The min. amount per withdrawal is 10 EUR and the max. amount is 600 EUR. For repeated withdrawals it is 3000 EUR per receiver per day and 6000 EUR per receiver per month. Please cross check those limits with your bank to be sure they use the same limits as stated here.\n\nThe withdrawal amount must be a multiple of 10 EUR as you cannot withdraw other amounts from an ATM. The UI in the create-offer and take-offer screen will adjust the BTC amount so that the EUR amount is correct. You cannot use market based price as the EUR amount would be changing with changing prices.\n\nIn case of a dispute the BTC buyer need to provide the proof that he sent the EUR. -payment.limits.info=Please be aware that all bank transfers carry a certain amount of chargeback risk.\n\nTo mitigate this risk, Bisq sets per-trade limits based on two factors:\n\n1. The estimated level of chargeback risk for the payment method used\n2. The age of your account for that payment method\n\nThe account you are creating now is new and its age is zero. As your account grows in age over a two-month period, your per-trade limits will grow along with it:\n\n● During the 1st month, your per-trade limit will be {0}\n● During the 2nd month, your per-trade limit will be {1}\n● After the 2nd month, your per-trade limit will be {2}\n\nPlease note that there are no limits on the total number of times you can trade. +payment.limits.info=Por favor, esteja ciente de que todas as transferências bancárias possuem um certo risco de serem estornadas.\n\nPara reduzir esse risco, o Bisq definite limites por transação, que são baseados em dois fatores:\n\n1. O nível estimado de risco de estorno para o método de pagamento utilizado\n2. A idade da sua conta para aquele método de pagamento\n\nA conta que você está criando agora é considerada nova, e portanto tem uma idade de zero. À medida que a idade da sua conta for aumentando, os seus limites também irão aumentar:\n\n● Durante o 1º mês, o seu limite por negociação será de {0}\n● Durante o 2º mês, o seu limite por negociação será de {1}\n● Após o 2º mês, o seu limite por negociação será de {2}\n\nNote que esses limites são para cada negociação. Não existem limites no número total de negociações que você pode realizar. -payment.cashDeposit.info=Please confirm your bank allows you to send cash deposits into other peoples' accounts. For example, Bank of America and Wells Fargo no longer allow such deposits. +payment.cashDeposit.info=Certifique-se de que o seu banco permite a realização de depósitos em espécie na conta de terceiros. payment.f2f.contact=Informações para contato payment.f2f.contact.prompt=Como você gostaria de ser contatado pelo seu parceiro de negociação? (e-mail, nº de telefone, ...) payment.f2f.city=Cidade para se encontrar pessoalmente -payment.f2f.city.prompt=The city will be displayed with the offer +payment.f2f.city.prompt=A cidade será exibida na oferta payment.f2f.optionalExtra=Informações adicionais opcionais payment.f2f.extra=Informações adicionais @@ -2222,12 +2227,12 @@ ADVANCED_CASH_SHORT=Advanced Cash validation.empty=Campo vazio não é permitido validation.NaN=Número inválido -validation.notAnInteger=Input is not an integer value. +validation.notAnInteger=A entrada não é um valor inteiro. validation.zero=Número 0 não é permitido validation.negative=Valores negativos não são permitidos. validation.fiat.toSmall=Entrada menor do que a quantia mínima permitida. validation.fiat.toLarge=Entrada maior do que a quantia máxima permitida. -validation.btc.fraction=Input results in a bitcoin value with a fraction of the smallest unit (satoshi). +validation.btc.fraction=A entrada resulta em um valor de bitcoin menor do que a unidade mínima (satoshi). validation.btc.toLarge=Entrada maior que {0} não é permitida. validation.btc.toSmall=Entrada menor que {0} não é permitida. validation.securityDeposit.toSmall=Entrada menor que {0} não é permitida. @@ -2238,11 +2243,11 @@ validation.sortCodeChars={0} deve consistir de {1} caracteres. validation.bankIdNumber={0} deve consistir de {1 números. validation.accountNr=O número de conta deve conter {0} númerais. validation.accountNrChars=O número da conta deve conter {0} caracteres. -validation.btc.invalidAddress=O endereço está incorreto. Favor verificar o formato do endereço. +validation.btc.invalidAddress=O endereço está incorreto. Por favor, verifique o formato do endereço. validation.integerOnly=Por favor, insira apesar números inteiros validation.inputError=Os dados entrados causaram um erro:\n{0} -validation.bsq.insufficientBalance=Your available balance is {0}. -validation.btc.exceedsMaxTradeLimit=Your trade limit is {0}. +validation.bsq.insufficientBalance=Seu saldo disponível é {0}. +validation.btc.exceedsMaxTradeLimit=Seu limite de negociação é {0}. validation.bsq.amountBelowMinAmount=A quantia mínima é {0} validation.nationalAccountId={0} deve consistir de {1 números. @@ -2256,7 +2261,7 @@ validation.bic.invalidLength=Comprimento da entrada não é 8 ou 11 validation.bic.letters=Banco e código de país devem ser letras validation.bic.invalidLocationCode=BIC contém código de localização inválido validation.bic.invalidBranchCode=BIC contém código da agência inválido -validation.bic.sepaRevolutBic=Revolut Sepa accounts are not supported. +validation.bic.sepaRevolutBic=Contas Revolut Sepa não são suportadas. validation.btc.invalidFormat=Formato inválido do endereço Bitcoin. validation.bsq.invalidFormat=Formato inválido do endereço BSQ. validation.email.invalidAddress=Endereço inválido @@ -2267,12 +2272,12 @@ validation.iban.checkSumInvalid=Código de verificação IBAN é inválido validation.iban.invalidLength=Número deve ter entre 15 e 34 caracteres. validation.interacETransfer.invalidAreaCode=Código de área não é canadense. validation.interacETransfer.invalidPhone=Número de telefone inválido e não é um endereço de email -validation.interacETransfer.invalidQuestion=Must contain only letters, numbers, spaces and/or the symbols ' _ , . ? - +validation.interacETransfer.invalidQuestion=Deve conter somente letras, números, espaços e/ou os símbolos ' _ , . ? - validation.interacETransfer.invalidAnswer=Must be one word and contain only letters, numbers, and/or the symbol - -validation.inputTooLarge=Input must not be larger than {0} -validation.inputTooSmall=Input has to be larger than {0} -validation.amountBelowDust=The amount below the dust limit of {0} is not allowed. -validation.length=Length must be between {0} and {1} -validation.pattern=Input must be of format: {0} -validation.noHexString=The input is not in HEX format. -validation.advancedCash.invalidFormat=Must be a valid email or wallet id of format: X000000000000 +validation.inputTooLarge=Não deve ser maior do que {0} +validation.inputTooSmall=Deve ser maior do que {0} +validation.amountBelowDust=Não é permitido uma quantia menor do que o limite pó de {0}. +validation.length=Deve ser entre {0} e {1} +validation.pattern=Deve ser no formato: {0} +validation.noHexString=Não está no formato hexadecimal +validation.advancedCash.invalidFormat=Deve ser um e-mail válido ou uma ID de carteira no formato: X000000000000 diff --git a/core/src/main/resources/i18n/displayStrings_ro.properties b/core/src/main/resources/i18n/displayStrings_ro.properties index 909bce829f..b756fbe1d1 100644 --- a/core/src/main/resources/i18n/displayStrings_ro.properties +++ b/core/src/main/resources/i18n/displayStrings_ro.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Da, am inițiat plata portfolio.pending.step2_seller.waitPayment.headline=Așteaptă plata portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=Tranzacția de depozitare are cel puțin o confirmare pe blockchain.\nTrebuie să aștepți până când cumpărătorul de BTC inițiază plata {0}. -portfolio.pending.step2_seller.warn=Cumpărătorul de BTC încă nu a efectuat plata {0}.\nTrebuie să aștepți până când acesta inițiază plata.\nDacă tranzacția nu a fost finalizată la {1}, arbitrul o va investiga. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=Vânzătorul de BTC înca nu a inițiat plata!\nPerioada maximă de timp pentru tranzacționare a expirat.\nPoți aștepta mai mult astfel acordând mai mult timp partenerului de tranzacționare sau poți contacta arbitrul în vederea deschiderii unei dispute. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Nicio tranzacție disponibilă funds.tx.revert=Revenire funds.tx.txSent=Tranzacția a fost virată cu succes la o nouă adresă în portofelul Bisq local. funds.tx.direction.self=Trimite-ți ție -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=Solicitare de despăgubire @@ -762,9 +765,9 @@ support.buyerOfferer=Ofertant/Cumpărător BTC support.sellerOfferer=Ofertant/Vânzător BTC support.buyerTaker=Acceptant/Cumpărător BTC support.sellerTaker=Acceptant/Vânzător BTC -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Reține regulile de bază ale procesului de dispută:\n1. Trebuie să răspunzi solicitărilor arbitrilor în termen de 2 zile.\n2. Termenul maxim pentru o dispută este de 14 zile.\n3. Trebuie să îndeplinești ceea ce arbitrul îți va solicita și să furnizezi dovezi susținătoare cazul tău.\n4. Ai acceptat regulile descrise în wiki în cadrul acordului de utilizare atunci când ați pornit prima dată aplicația.\n\nTe rugăm să citești în detaliu despre procesul disputelor pe wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Mesaj de sistem: {0} support.youOpenedTicket=Ați deschis o solicitare de asistență. support.youOpenedDispute=Ai deschis o cerere pentru dispută.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Folosește noduri Bitcoin Core preferențiale settings.net.warn.usePublicNodes=Dacă folosești rețeaua publică de Bitcoin vei fi expus la probleme grave de confidențialitate provocate de designul și implementarea filtrului eronat bloom care este folosit pentru portofele SPV precum BitcoinJ (folosit în Bisq). Orice nod complet la care ești conectat îți poate afla toate adresele de portofel ca aparținând unei singure entități.\n\nTe invităm să citești mai multe în detaliu la: https://bisq.network/blog/privacy-in-bitsquare.\n\nSigur dorești să folosești nodurile publice? settings.net.warn.usePublicNodes.useProvided=Nu, folosește noduri implicite settings.net.warn.usePublicNodes.usePublic=Da, folosește rețeaua publică -settings.net.warn.useCustomNodes.B2XWarning=Asigură-te că nodul tău de Bitcoin este un nod Bitcoin Core de încredere!\n\nConectarea la noduri ce nu respectă regulile de consimțământ Bitcoin Core ar putea să îți avarieze portofelul și să provoace probleme în procesul de tranzacționare.\n\nUtilizatorii care se conectează la noduri ce încalcă regulile consensuale sunt responsabili pentru eventualele daune create de acestea. Disputele cauzate de acest act s-ar decide în favoarea celuilalt partener. Nu se va acorda niciun suport tehnic utilizatorilor care ignoră mecanismele noastre de avertizare și protecție! -settings.net.localhostBtcNodeInfo=(Informație de bază: dacă rulezi un nod local de bitcoin (localhost), vei fi conectat exclusiv la acesta.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Adresa de Onion settings.net.creationDateColumn=Stabilită @@ -857,17 +860,17 @@ settings.net.inbound=Intrare settings.net.outbound=ieșire settings.net.reSyncSPVChainLabel=Resincronizează lanțul SPV settings.net.reSyncSPVChainButton=Șterge fișierul SPV și resincronizează -settings.net.reSyncSPVSuccess=Fișierul lanțului SPV va fi șters la următoarea pornire. Acum trebuie să repornești aplicația.\n\nDupă repornire, poate dura puțin timp până se resincronizează cu rețeaua și vei vedea toate tranzacțiile numai după finalizarea resincronizării.\n\nTe rugăm să repornești din nou după finalizarea resincronizării deoarece uneori pot apărea neconcordanțe ce duc la afișarea incorectă a soldului. -settings.net.reSyncSPVAfterRestart=Fișierul lanțului SPV a fost șters. Te rugăm să ai răbdare, resincronizarea cu rețeaua poate dura ceva timp. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Resincronizarea s-a încheiat. Te rog repornește aplicația. settings.net.reSyncSPVFailed=Nu s-a putut șterge fișierul lanțului SPV.\nEroare: {0} setting.about.aboutBisq=Despre Bisq -setting.about.about=Bisq este un proiect open source și o rețea descentralizată de utilizatori care doresc să schimbe Bitcoin cu monedele naționale sau cu cripto-valutele alternative într-un mod care protejează intimitatea interlocutorilor. Află mai multe despre Bisq pe pagina noastră web a proiectului. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Pagina web Bisq setting.about.code=Cod sursă setting.about.agpl=Licență AGPL setting.about.support=Susține Bisq -setting.about.def=Bisq nu este o companie, ci un proiect comunitar și deschis pentru participare. Dacă dorești să participi sau să sprijiniți Bisq, te rugăm să urmezi link-urile de mai jos. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Contribuie setting.about.donate=Donează setting.about.providers=Furnizori de date @@ -889,7 +892,7 @@ setting.about.subsystems.val=Versiune rețea: {0}; Versiune mesaj P2P: {1}; Vers account.tab.arbitratorRegistration=Înregistrare arbitru account.tab.account=Cont account.info.headline=Bine ai venit în contul tău Bisq -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Conturile valutelor naționale account.menu.altCoinsAccountView=Conturi altcoin @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Înregistrează arbitru account.arbitratorRegistration.revoke=Revocă înregistrarea -account.arbitratorRegistration.info.msg=Reține că trebuie să rămâi disponibil timp de 15 zile după revocare, deoarece ar putea exista tranzacții care să te folosească ca arbitru. Perioada de tranzacționare maximă permisă este de 8 zile, iar procesul de dispută poate dura până la 7 zile. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Trebuie să setezi cel puțin 1 limbă.\nAm adăugat limba prestabilită pentru tine. account.arbitratorRegistration.removedSuccess=Ți-ai înlăturat cu succes arbitrul din rețeaua P2P. account.arbitratorRegistration.removedFailed=Arbitrul nu a putut fi eliminat.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Poți selecta doar arbitri care vorbesc cel p account.arbitratorSelection.minOne=Trebuie să ai ales cel puțin un arbitru. account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Asigură-te că respecți cerințele pentru utilizarea {0} portofelelor așa cum este descris pe pagina web {1}.\nFolosind portofelelor de pe schimburile centralizate unde nu ai sub controlul tău cheile private sau utilizând un soft de portofel incompatibil poate duce la pierderea fondurilor tranzacționate!\nArbitrul nu este un {2} specialist și nu poate ajuta în astfel de cazuri. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Înțeleg și confirm că știu ce portofel trebuie să folosesc. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Înlătură parola account.password.removePw.headline=Înlătură protecția prin parolă a portofelului account.password.setPw.button=Setează parola account.password.setPw.headline=Setează protecția prin parolă a portofelului -account.password.info=Cu protecția prin parolă, trebuie să-ți introduci parola când retragi bitcoin din portofel sau dacă dorești să vizualizezi, restaurezi un portofel din cuvintele-nucleu, precum și la pornirea aplicației. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Salvează cuvintele-nucleu ale portofelului tău -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Nu ai creat o parolă pentru portofel care să protejeze afișarea cuvintelor-nucleu.\n\nDorești afișarea cuvintelor-nucleu? account.seed.warn.noPw.yes=Da, și nu mă mai întreba vreodată account.seed.enterPw=Introdu parola pentru a vizualiza cuvintele-nucleu -account.seed.restore.info=Reține că nu poți importa un portofel dintr-o versiune veche Bisq (orice versiune mai veche de 0.5.0), deoarece formatul portofelului sa schimbat!\n\nDacă dorești să muți fondurile din versiunea veche în noua aplicație Bisq, trimite-o cu o tranzacție Bitcoin.\n\nDe asemenea, reține că restaurarea portofelului este recomandată numai pentru cazurile de urgență și poate cauza probleme cu baza de date internă a portofelului.\nAceasta nu este o modalitate de a încărca o copie de rezervă! Folosește o copie de rezervă din directorul de date al aplicației pentru a restaura o stare anterioară a aplicației. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Da, înțeleg și doresc să restaurez @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Proposal type dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=Înlătură dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=Trimite fondurile BSQ dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Confirmă solicitarea retragerii dao.wallet.send.sendFunds.details=Trimitem: {0}\nCătre adresa de primire: {1}.\nComisionul de tranzacție necesar: {2} ({3} Satoshi/octet)\nMărimea tranzacției: {4} Kb\n\nDestinatarul va primi: {5}\n\nEști sigur că dorești să retragi suma specificată? -dao.wallet.chainHeightSynced=Sincronizat până la blocul:{0} (ultimul bloc: {1}) -dao.wallet.chainHeightSyncing=Sincronizare bloc: {0} (ultimul bloc: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Tip # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Verficare eșuată.\nTe rugăm descarc displayUpdateDownloadWindow.success=Noua versiune a fost descărcată cu succes iar semnătura a fost verificată.\n\nDeschide directorul de descărcare, închide aplicația și instalează noua versiune. displayUpdateDownloadWindow.download.openDir=Deschide directorul descărcărilor -disputeSummaryWindow.title=Rezumat +disputeRezumatWindow.title=Rezumat disputeSummaryWindow.openDate=Ticket opening date disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence @@ -1741,7 +1746,7 @@ popup.headline.error=Eroare popup.doNotShowAgain=Nu arăta din nou popup.reportError.log=Deschide fișierul jurnal popup.reportError.gitHub=Reclamare către Github -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Încearcă să repornești aplicația și să verifici conexiunea la rețea pentru a vedea dacă poți remedia astfel problema. popup.error.takeOfferRequestFailed=A intervenit o eroare când cineva a încercat să îți preia una din oferte:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=Unul dintre nodurile {0} a fost interzise. Te rugăm s popup.warning.priceRelay=preț releu popup.warning.seed=nucleu -popup.info.securityDepositInfo=Pentru a asigura că ambii comercianți respectă protocolul de tranzacționare, ambii trebuie să plătească un depozit de securitate.\n\nDepozitul va rămâne în portofelul tău local de tranzacționare până când oferta ajunge acceptată de un alt comerciant.\nAceasta va fi returnată după ce tranzacția a fost finalizată cu succes.\n\nReține că trebuie să păstrezi aplicația deschisă dacă ai o ofertă deschisă. Atunci când un alt comerciant dorește să îți accepte oferta, este necesar ca aplicația ta să fie online pentru executarea protocolului de tranzacționare.\nAsigură-te că ai modul în așteptare dezactivat, deoarece acesta ar deconecta rețeaua (starea în așteptare a monitorului nu reprezintă o problemă). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=I confirm that I can make the deposit diff --git a/core/src/main/resources/i18n/displayStrings_ru.properties b/core/src/main/resources/i18n/displayStrings_ru.properties index 0b711590fd..d155957819 100644 --- a/core/src/main/resources/i18n/displayStrings_ru.properties +++ b/core/src/main/resources/i18n/displayStrings_ru.properties @@ -158,9 +158,9 @@ shared.tradeAmount=Сумма сделки shared.tradeVolume=Объём сделки shared.invalidKey=Введён неправильный ключ. shared.enterPrivKey=Введите личный ключ для разблокировки -shared.makerFeeTxId=Идент. транзакции взноса создателя -shared.takerFeeTxId=Идент. транзакции взноса получателя -shared.payoutTxId=Идент. транзакции выплаты +shared.makerFeeTxId=Идентификатор транзакции взноса создателя +shared.takerFeeTxId=Идентификатор транзакции взноса получателя +shared.payoutTxId=Идентификатор транзакции выплаты shared.contractAsJson=Контракт в формате JSON shared.viewContractAsJson=Просмотреть контракт в формате JSON shared.contract.title=Контракт сделки с идентификатором: {0} @@ -178,21 +178,24 @@ shared.btcAmount=Количество ВТС shared.yourLanguage=Ваши языки shared.addLanguage=Добавить язык shared.total=Всего -shared.totalsNeeded=Нужно средств +shared.totalsNeeded=Нужны средства shared.tradeWalletAddress=Адрес кошелька сделки shared.tradeWalletBalance=Баланс кошелька сделки shared.makerTxFee=Создатель: {0} -shared.takerTxFee=Принимающий: {0} +shared.takerTxFee=Получатель: {0} shared.securityDepositBox.description=Залоговый депозит для BTC {0} shared.iConfirm=Подтверждаю shared.tradingFeeInBsqInfo=эквивалент {0}, в качестве комиссии майнера -shared.openURL=Перейти на {0} +shared.openURL=Открыть {0} shared.fiat=Нац. валюта shared.crypto=Криптовалюта shared.all=Все shared.edit=Отредактировать shared.advancedOptions=Дополнительные настройки shared.interval=Интервал +shared.actions=Действия +shared.buyerUpperCase=Покупатель +shared.sellerUpperCase=Продавец #################################################################### # UI views @@ -212,7 +215,7 @@ mainView.menu.settings=Настройки mainView.menu.account=Счёт mainView.menu.dao=DAO -mainView.marketPrice.provider=Курс предостален +mainView.marketPrice.provider=Курс предоставлен mainView.marketPrice.label=Рыночный курс mainView.marketPriceWithProvider.label=Рыночный курс предоставлен {0} mainView.marketPrice.bisqInternalPrice=Курс последней сделки Bisq @@ -222,7 +225,7 @@ mainView.marketPrice.tooltip.altcoinExtra=Если алткойн недосту mainView.balance.available=Доступный баланс mainView.balance.reserved=Выделено на предложения mainView.balance.locked=Заперто в сделках -mainView.balance.reserved.short=Выделено +mainView.balance.reserved.short=Зарезервировано mainView.balance.locked.short=Заперто mainView.footer.usingTor=(используется Tor) @@ -300,10 +303,10 @@ offerbook.trader=Трейдер offerbook.offerersBankId=Идентификатор(BIC/SWIFT) банка создателя предложения: {0} offerbook.offerersBankName=Название банка создателя предложения: {0} offerbook.offerersBankSeat=Местоположение банка создателя предложения: {0} -offerbook.offerersAcceptedBankSeatsEuro=Приемлемые банки стран (получатель): Все страны Еврозоны -offerbook.offerersAcceptedBankSeats=Приемлемые банки стран (получатель):\n {0} +offerbook.offerersAcceptedBankSeatsEuro=Признанные страны банков (получателя): Все страны Еврозоны +offerbook.offerersAcceptedBankSeats=Признанные страны банков (получателя):\n {0} offerbook.availableOffers=Доступные предложения -offerbook.filterByCurrency=Фильтр по валюте +offerbook.filterByCurrency=Фильтровать по валюте offerbook.filterByPaymentMethod=Фильтр по способу оплаты offerbook.nrOffers=Кол-во предложений: {0} @@ -382,7 +385,7 @@ createOffer.alreadyFunded=Вы уже обеспечили это предлож createOffer.createOfferFundWalletInfo.headline=Обеспечить своё предложение # suppress inspection "TrailingSpacesInProperty" createOffer.createOfferFundWalletInfo.tradeAmount=- Сумма сделки: {0} \n -createOffer.createOfferFundWalletInfo.msg=Вы должны внести {0} для обеспечения этого предложения.\n\nЭти средства выделяются в Вашем локальном кошельке, и будут заперты в депозитном адресе multisig, когда кто-то примет Ваше предложение.\n\nСумма состоит из:\n{1}\n- Вашего залогового депозита: {2}\n- Торгового сбора: {3}\n- Общей комиссии майнера: {4}\n\n\nВы можете выбрать один из двух вариантов обеспечения сделки:\n - Использовать свой Bisq кошелёк (удобо, но связь между сделками может быть вычислена посторонними) ИЛИ\n - Перевод с внешнего кошелька (потенциально более анонимно)\n\nВы увидите все варианты обеспечения и подробности после закрытия этого окна. +createOffer.createOfferFundWalletInfo.msg=Вы должны внести {0} для обеспечения этого предложения.\n\nЭти средства выделяются в Вашем локальном кошельке, и будут заперты в депозитном адресе multisig, когда кто-то примет Ваше предложение.\n\nСумма состоит из:\n{1}- Вашего залогового депозита: {2}\n- Торгового сбора: {3}\n- Общей комиссии майнера: {4}\n\n\nВы можете выбрать один из двух вариантов обеспечения сделки:\n - Использовать свой Bisq кошелёк (удобо, но связь между сделками может быть вычислена посторонними) ИЛИ\n - Перевод с внешнего кошелька (потенциально более анонимно)\n\nВы увидите все варианты обеспечения и подробности после закрытия этого окна. # only first part "An error occurred when placing the offer:" has been used before. We added now the rest (need update in existing translations!) createOffer.amountPriceBox.error.message=Сбой создания предложения:\n\n{0}\n\nВаши средства остались в кошельке.\nПросьба перезагрузить приложение и проверить связь с интернет. @@ -511,9 +514,9 @@ portfolio.pending.step2_buyer.postal=Просьба послать {0} \"Пла portfolio.pending.step2_buyer.bank=Просьба заплатить {0} продавцу BTC, через интернет сервис вашего банка.\n\n portfolio.pending.step2_buyer.f2f=Просьба связаться с продавцом BTC по указанному контакту и договориться о встрече, чтобы заплатить {0}.\n\n portfolio.pending.step2_buyer.startPaymentUsing=Начать оплату, используя {0} -portfolio.pending.step2_buyer.amountToTransfer=Сумма перевода +portfolio.pending.step2_buyer.amountToTransfer=Сумма для перевода portfolio.pending.step2_buyer.sellersAddress={0} адрес продавца -portfolio.pending.step2_buyer.buyerAccount=Использовать Ваш платёжный счет +portfolio.pending.step2_buyer.buyerAccount=Ваш платёжный счет для использования portfolio.pending.step2_buyer.paymentStarted=Платёж начат portfolio.pending.step2_buyer.warn=Вы ещё не оплатили {0}!\nУчтите, что сделка должна быть завершена до {1}, иначе арбитр начнёт расследование. portfolio.pending.step2_buyer.openForDispute=Вы не завершили оплату!\nМаксимальный срок отведенный для сделки истек.\n\nПросьба обратиться к арбитру, и начать спор. @@ -525,7 +528,7 @@ portfolio.pending.step2_buyer.westernUnionMTCNInfo.headline=Отправить M portfolio.pending.step2_buyer.westernUnionMTCNInfo.msg=Вам необходимо отправить по э-почте продавцу BTC MTCN (номер отслеживания) и фотографию квитанции.\nВ квитанции должно быть четко указано полное имя продавца, город, страна и сумма. Адрес э-почты продавца: {0}. \n\nВы отправили MTCN и контракт продавцу? portfolio.pending.step2_buyer.halCashInfo.headline=Послать код HalCash portfolio.pending.step2_buyer.halCashInfo.msg=Отклонение в процентах от рыночной цены (например, 2.50%, -0.50% и т. д.) -portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Некоторые банки требуют имя получателя. Код сортировки Великобритании и номер счета достаточно для перевода Faster Payment, и имя получателя не проверяется ни одним из банков. +portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Некоторые банки требуют имя получателя. Код сортировки Великобритании и номер счета достаточны для перевода Faster Payment, и имя получателя не проверяется ни одним из банков. portfolio.pending.step2_buyer.confirmStart.headline=Подтвердите начало платежа portfolio.pending.step2_buyer.confirmStart.msg=Вы начали {0} оплату Вашему контрагенту? portfolio.pending.step2_buyer.confirmStart.yes=Да, я начал оплату @@ -566,14 +569,14 @@ portfolio.pending.step3_seller.bank=Ваш контрагент подтверд portfolio.pending.step3_seller.cash=Так как оплата осуществляется наличными на счёт, покупатель BTC должен написать \"НЕ ПОДЛЕЖИТ ВОЗВРАТУ\" на квитанции, разорвать на 2 части, и послать Вам фото квитанции по э-почте.\n\nЧтоб исключить возвратный платёж, подтверждайте его только получив это фото, и если Вы уверенны, что квитанция действительна.\nЕсли Вы не уверенны, {0} portfolio.pending.step3_seller.moneyGram=Покупатель обязан отправить Вам по электронной почте номер авторизации и фотографию квитанции.\nВ квитанции должно быть четко указано Ваше полное имя, страна, штат и сумма. Пожалуйста, проверьте свою электронную почту, и получение номера авторизации. \n\nПосле закрытия этого всплывающего окна Вы увидите имя и адрес покупателя BTC для получения денег от MoneyGram.\n\nПодтверждайте получение только после того как Вы успешно забрали деньги! portfolio.pending.step3_seller.westernUnion=Покупатель обязан отправить Вам по электронной почте MTCN (номер отслеживания) и фотографию квитанции.\nВ квитанции должно быть четко указано Ваше полное имя, город, страна и сумма. Пожалуйста, проверьте свою электронную почту, и получение MTCN.\n\nПосле закрытия этого всплывающего окна Вы увидите имя и адрес покупателя BTC для получения денег от Western Union. \n\nПодтверждайте получение только после того как Вы успешно забрали деньги! -portfolio.pending.step3_seller.halCash=Покупатель должен отправить Вам код HalCash в виде SMS. Кроме того, Вы получите сообщение от HalCash с информацией, необходимой для снятия EUR в банкомате, поддерживающем HalCash.\n\nПосле того, как Вы забрали деньги из банкомата, просьба подтвердить здесь квитанцию об оплате! +portfolio.pending.step3_seller.halCash=Покупатель должен отправить Вам код HalCash в текстовом сообщении. Кроме этого, Вы получите сообщение от HalCash с информацией, необходимой для снятия EUR в банкомате, поддерживающем HalCash.\n\nПосле того, как Вы забрали деньги из банкомата, просьба подтвердить здесь квитанцию об оплате! portfolio.pending.step3_seller.bankCheck=\n\nПросьба удостовериться, что имя отправителя в Вашем банковском отчете соответствует имени Вашего контрагента:\nИмя отправителя: {0}\n\nЕсли имя не соответствует показанному здесь, {1} portfolio.pending.step3_seller.openDispute=просьба не подтверждать, а открыть спор, нажав \"alt + o\" или \"option + o\". portfolio.pending.step3_seller.confirmPaymentReceipt=Подтвердите квитанцию оплаты portfolio.pending.step3_seller.amountToReceive=Сумма поступления portfolio.pending.step3_seller.yourAddress=Ваш адрес {0} -portfolio.pending.step3_seller.buyersAddress= {0} адрес покупателя +portfolio.pending.step3_seller.buyersAddress=Адрес {0} покупателя portfolio.pending.step3_seller.yourAccount=Ваш торговый счёт portfolio.pending.step3_seller.buyersAccount=Торговый счёт покупателя portfolio.pending.step3_seller.confirmReceipt=Подтвердить получение платежа @@ -600,7 +603,7 @@ portfolio.pending.step5_buyer.makersMiningFee=Комиссия майнера portfolio.pending.step5_buyer.takersMiningFee=Итого комиссия майнера portfolio.pending.step5_buyer.refunded=Возмещённый залоговый депозит portfolio.pending.step5_buyer.withdrawBTC=Вывести Ваш биткойн -portfolio.pending.step5_buyer.amount=Сумма вывода +portfolio.pending.step5_buyer.amount=Сумма для вывода portfolio.pending.step5_buyer.withdrawToAddress=Вывести на адрес portfolio.pending.step5_buyer.moveToBisqWallet=Перевести средства в Bisq кошелёк portfolio.pending.step5_buyer.withdrawExternal=Вывести на внешний кошелёк @@ -702,8 +705,8 @@ funds.locked.locked=Заперто в адрес multisig для сделки с funds.tx.direction.sentTo=Отправлено: funds.tx.direction.receivedWith=Получено: -funds.tx.direction.genesisTx=От исходной транзакции: -funds.tx.txFeePaymentForBsqTx=Комиссия майнера за транзакцию BSQ +funds.tx.direction.genesisTx=От исходной трансакции: +funds.tx.txFeePaymentForBsqTx=Комиссия майнера за трансакцию BSQ funds.tx.createOfferFee=Взнос создателя и за транзакцию: {0} funds.tx.takeOfferFee=Взнос получателя и за транзакцию: {0} funds.tx.multiSigDeposit=Вклад на адрес multisig: {0} @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Транзакции недоступны funds.tx.revert=Возврат funds.tx.txSent=Транзакция успешно отправлена на новый адрес локального кошелька Bisq. funds.tx.direction.self=Транзакция внутри кошелька -funds.tx.proposalTxFee=Комиссия майнера за предложение +funds.tx.daoTxFee=Комиссия майнера за трансакцию DAO funds.tx.reimbursementRequestTxFee=Запрос возмещения funds.tx.compensationRequestTxFee=Запрос компенсации @@ -762,9 +765,9 @@ support.buyerOfferer=Покупатель ВТС/Создатель support.sellerOfferer=Продавец ВТС/Создатель support.buyerTaker=Покупатель ВТС/Получатель support.sellerTaker=Продавец BTC/Получатель -support.backgroundInfo=Bisq не компания и не предоставляет какой либо техпомощи клиентам.\n\n\nВ случае спора в процессе сделки (напр. один участник не следует протоколу сделок), приложение покажет кнопку \"Открыть спор\" после истечения срока сделки, и арбитр станет доступен.\nВ случаях сбоев приложения или других проблем обнаруженных программой, возникнет кнопка \"Открыть билет поддержки\", арбитр станет доступен и передаст сведения о проблеме разработчикам.\n\nВ случаях когда пользователь столкнулся с проблемой, но не появилась кнопка \"Открыть билет поддержки\", можно вызвать поддержку вручную, выбрав сделку, которая вызывает проблему, в разделе \"Папка/Текущие сделки\" и введя комбинацию клавиш \"alt + o\" или \"option + o\". Просьба использовать это только если уверены, что программа не работает как ожидалось. Если у Вас возникли проблемы или вопросы, просьба пересмотреть Часто Задаваемые Вопросы на странице bisq.network, или разместить вопрос на Bisq форуме в разделе поддержки. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Учтите основные правила процесса рассмотрения спора:\n1. Вы обязаны ответитть на запросы арбитра в течении 2 дней.\n2. Максимальный срок отведенный на спор 14 дней.\n3. Вы обязаны предоставить арбитру запрашиваемые доказательства по Вашему делу.\n4. Вы согласились с правилами указанными в wiki в соглашении пользователя, когда первый раз запускали приложение.\n\nПросьба прочесть детали процесса спора в нашем wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Учтите основные правила процесса рассмотрения спора:\n1. Вы обязаны ответитть на запросы арбитра в течении 2 дней.\n2. Максимальный срок отведенный на спор 14 дней.\n3. Вы обязаны содействовать арбитру, и предоставлять запрашиваемую информацию по Вашему делу.\n4. Вы согласились с правилами указанными в wiki в соглашении пользователя, когда первый раз запускали приложение.\n\nПросьба прочесть детали процесса спора в нашем wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Системное сообщение: {0} support.youOpenedTicket=Вы открыли запрос поддержки. support.youOpenedDispute=Вы запросили начать спор.\n\n{0} @@ -782,7 +785,7 @@ settings.tab.about=О проекте setting.preferences.general=Основные настройки setting.preferences.explorer=Обозреватель блоков Биткойн setting.preferences.deviation=Макс. отклонение от рыночного курса -setting.preferences.avoidStandbyMode=Избежать режима ожидания +setting.preferences.avoidStandbyMode=Избегать режима ожидания setting.preferences.deviationToLarge=Значения выше 30 % не разрешены. setting.preferences.txFee=Комиссия за снятие средств (сатоши/байт) setting.preferences.useCustomValue=Задать своё значение @@ -812,13 +815,13 @@ settings.preferences.selectCurrencyNetwork=Выбрать сеть setting.preferences.daoOptions=Настройки DAO setting.preferences.dao.resync.label=Перестроить состояние DAO от исходной транзакции setting.preferences.dao.resync.button=Повторная синхронизация -setting.preferences.dao.resync.popup=После перезапуска приложения согласованное состояние BSQ будет восстановлено из исходных транзакции. -setting.preferences.dao.isDaoFullNode=Запустить Bisq в режиме полноценный узел DAO +setting.preferences.dao.resync.popup=После перезапуска приложения, согласованное состояние BSQ будет восстановлено из исходных транзакции. +setting.preferences.dao.isDaoFullNode=Запустить Bisq в режиме полноценного узла DAO setting.preferences.dao.rpcUser=Логин RPC setting.preferences.dao.rpcPw=Пароль RPC setting.preferences.dao.fullNodeInfo=Для запуска Bisq в качестве полноценного узла DAO, Вам необходим локальный узел Bitcoin Core, настроенный с RPC и другими требованиями описанными в " {0}". setting.preferences.dao.fullNodeInfo.ok=Открыть страницу описаний -setting.preferences.dao.fullNodeInfo.cancel=Нет, останусь в режиме легкий узел +setting.preferences.dao.fullNodeInfo.cancel=Нет, останусь в режиме легкого узла settings.net.btcHeader=Сеть Биткойн settings.net.p2pHeader=Сеть Р2Р @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Использовать особые узлы settings.net.warn.usePublicNodes=Если Вы используете общедоступную сеть Bitcoin, Вы подвергаетесь серьезной угрозе конфиденциальности, вызванной несовершенным дизайном и реализацией фильтра bloom, который используется в кошельках SPV, таких как BitcoinJ (который используется в Bisq). Любой самостоятельный узел, к которому Вы подключены, может вычислить, что все Ваши адреса кошельков принадлежат одному лицу.\n\nПросьба осведомиться о подробностях на: https://bisq.network/blog/privacy-in-bitsquare.\n\nИспользовать общедоступные узлы? settings.net.warn.usePublicNodes.useProvided=Нет, использовать предусмотренные узлы settings.net.warn.usePublicNodes.usePublic=Да, использовать общедоступную сеть -settings.net.warn.useCustomNodes.B2XWarning=Просьба убедиться, что Ваш Биткойн узел является доверенным Bitcoin Core узлом! \n\nПодключение к узлам, которые не следуют правилам консенсуса Bitcoin Core, может повредить Ваш кошелек и вызвать проблемы в процессе торговли.\n\nПользователи, которые подключаются к узлам, нарушающим правила консенсуса, несут ответственность за любой ущерб, причиненный этим. Споры, вызванные этим, будут решаться в пользу контрагента. Никакая техническая поддержка не будет предоставлена пользователям, которые игнорируют наши механизмы предупреждения и защиты! -settings.net.localhostBtcNodeInfo=(Справка: если Вы используете локальный узел Биткойн (localhost), Вы подключаетесь исключительно к нему.) +settings.net.warn.useCustomNodes.B2XWarning=Просьба убедиться, что Ваш Биткойн узел является доверенным Bitcoin Core узлом! \n\nПодключение к узлам не следующим правилам консенсуса Bitcoin Core, может повредить Ваш кошелек и вызвать проблемы в процессе торговли.\n\nПользователи подключающиеся к узлам, нарушающим правила консенсуса, несут ответственность за любой причиненный ущерб. Вытекающие споры будут решаться в пользу контрагента. Никакая техническая поддержка не будет предоставлена пользователям, которые игнорируют это предупреждения и механизмы защиты! +settings.net.localhostBtcNodeInfo=(Справка: если Вы используете локальный узел Биткойн (localhost), Вы можете подключаться исключительно к нему.) settings.net.p2PPeersLabel=Подключенные пэры settings.net.onionAddressColumn=Onion/Tor адрес settings.net.creationDateColumn=Создано @@ -857,17 +860,17 @@ settings.net.inbound=входящий settings.net.outbound=выходящий settings.net.reSyncSPVChainLabel=Синхронизировать цепь SPV заново settings.net.reSyncSPVChainButton=Удалить файл SPV и синхронизировать повторно -settings.net.reSyncSPVSuccess=Файл цепочки SPV удалится при перезагрузке. Необходимо перезапустить приложение.\n\nПосле перезагрузки, потребуется некоторое время для повторной синхронизации с сетью и Вы увидите все транзакции только после её завершения.\n\nПросьба повторить перезагрузку после завершения повторной синхронизации, поскольку иногда возникают несоответствия, ведущие к неверному балансу. -settings.net.reSyncSPVAfterRestart=Файл цепочки SPV удален. Просьба проявлять терпение; повторная синхронизации с сетью может занять некоторое время. +settings.net.reSyncSPVSuccess=Файл цепи SPV удалится при перезагрузке. Необходимо перезапустить приложение.\n\nПосле перезагрузки, потребуется некоторое время для повторной синхронизации с сетью и Вы увидите все транзакции только после её завершения.\n\nПросьба повторить перезагрузку после завершения повторной синхронизации, поскольку иногда возникают несоответствия, ведущие к неверному балансу. +settings.net.reSyncSPVAfterRestart=Файл цепи SPV удален. Просьба потерпеть. Повторная синхронизации с сетью может занять некоторое время. settings.net.reSyncSPVAfterRestartCompleted=Повторная синхронизация завершена. Просьба перезагрузить приложение. settings.net.reSyncSPVFailed=Не удалось удалить файл цепи SPV.\nСбой: {0} setting.about.aboutBisq=О Bisq -setting.about.about=Bisq - проект с открытым исходным кодом и децентрализованной сетью пользователей, которые желают обменивать биткойн на национальные валюты или криптовалюты, с защитой конфиденциальности. Узнайте больше о Bisq на веб-странице нашего проекта. +setting.about.about=Bisq - проект с открытым исходным кодом, предназначенный для обмена биткойн на национальные валюты (и другие криптовалюты), через децентрализованную Р2Р сеть пользователей, с прочной защитой конфиденциальности. Узнайте больше о Bisq на веб-странице нашего проекта. setting.about.web=Веб страница Bisq setting.about.code=Исходный код setting.about.agpl=Лицензия AGPL setting.about.support=Поддержать Bisq -setting.about.def=Bisq не компания, а общественный проект, открытый для участия. Если вы желаете участвовать или поддержать Bisq, просьба следовать по ссылке ниже. +setting.about.def=Bisq не компания, а общественный проект, открытый для участия. Если Вы желаете участвовать или поддержать Bisq, просьба следовать по ссылкам ниже. setting.about.contribute=Способствовать setting.about.donate=Пожертвовать setting.about.providers=Источники данных @@ -889,7 +892,7 @@ setting.about.subsystems.val=Версия сети: {0}; Версия P2P соо account.tab.arbitratorRegistration=Регистрация арбитра account.tab.account=Счёт account.info.headline=Добро пожаловать в Ваш Bisq Счёт -account.info.msg=Здесь можно добавить свои торговые счета для нац. валют и алткойнов, выбрать арбитров, создать резервные копии своего кошелька и данных счетов.\n\nПустой кошелёк Биткойн был создан, когда Вы впервые запустили Bisq.\nСоветуем записать кодовые слова для восстановления кошелька (см. вкладку вверху) и добавить пароль до ввода средств. Ввод и вывод биткойнов проводят в разделе \"Средства\".\n\nБезопасность и конфиденциальность:\nBisq - децентрализованный обменник. Ваши данные хранятся только на Вашем компьютере. Серверов нет, и нам не доступы Ваши личные данные, средства и даже IP адрес. Данные, как номера банковских счетов, адреса электронных кошельков, итп, сообщаются только Вашему контрагенту для обеспечения Ваших сделок (в случае спора, арбитр увидит те же данные, что и контрагент). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Счета в нац. валюте account.menu.altCoinsAccountView=Алткойн-счета @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Публичный ключ account.arbitratorRegistration.register=Зарегистрировать арбитра account.arbitratorRegistration.revoke=Отозвать регистрацию -account.arbitratorRegistration.info.msg=Учтите, что Вы обязанч быть доступны в течение 15 дней после отзыва, поскольку могут быть сделки, в которых Вы задействованы как арбитр. Макс. допустимый срок сделки составляет 8 дней, и спор может рассматриваться до 7 дней. +account.arbitratorRegistration.info.msg=Учтите, что Вы обязаны быть доступны в течение 15 дней после отзыва, поскольку могут быть сделки, в которых Вы задействованы как арбитр. Макс. допустимый срок сделки составляет 8 дней, и спор может рассматриваться до 7 дней. account.arbitratorRegistration.warn.min1Language=Необходимо указать хотя бы 1 язык.\nОдин добавлен по умолчанию. account.arbitratorRegistration.removedSuccess=Вы благополучно удалили Вашего арбитра из сети P2P. account.arbitratorRegistration.removedFailed=Не удалось удалить арбитра.{0} @@ -921,12 +924,12 @@ account.arbitratorSelection.noLang=Можно выбирать только те account.arbitratorSelection.minOne=Необходимо выбрать хотя бы одного арбитра. account.altcoin.yourAltcoinAccounts=Ваши алткойн-счета -account.altcoin.popup.wallet.msg=Убедитесь, что соблюдаете требования пользования кошельками {0}, описанных на веб-странице {1}.\nИспользование кошельков из централизованных обменников, где Ваши ключи не находятся под Вашим контролем, или несовместимого кошелька может привести к потере Ваших торговых средств!\nАрбитр не является специалистом {2} и не может помочь в таких случаях. +account.altcoin.popup.wallet.msg=Убедитесь, что соблюдаете требования пользования кошельками {0}, описанных на веб-странице {1}.\nИспользование кошельков централизованных обменников рискованно, где (а) Ваши ключи не под Вашим контролем, или (б) используют несовместимый кошелёк; может привести к потере Ваших торговых средств!\nАрбитр не является специалистом {2} и не может помочь в таких случаях. account.altcoin.popup.wallet.confirm=Я понимаю и подтверждаю, что знаю какой кошелёк нужно использовать. account.altcoin.popup.xmr.msg=Для обмена XMR на Bisq, просьба понять и следовать следующим правилам:\n\nДля отправления XMR необходимы кошельки официальный Monero GUI или Monero CLI с включённым флажком store-tx-info (в новейших версиях по умолчанию). Удостоверьтесь, что доступен ключ транзакций необходимый в случае спора.\nmonero-wallet-cli (используйте команду get_tx_key)\nmonero-wallet-gui (перейдите в раздел history и нажмите на кнопку (P) для подтверждения оплаты)\n\n В дополнение к инструменту проверки XMR (https://xmr.llcoins.net/checktx.html), верификация также может быть выполнена в кошельке.\nmonero-wallet-cli: используя команду (check_tx_key).\nmonero-wallet-gui: разделе Advanced > Prove/Check.\nОбычным исследователем блоков переводы не проверяются.\n\nЕсли возникнет спора, арбитру потребуются от Вас следующие данные:\n- Ключ транзакции\n- Хэш(hash) транзакции\n- Публичный адрес получателя\n\nЕсли Вы не предоставите эти данные, либо используете несоответствующие кошельки, Вы проиграете спор. Посылающий XMR ответственен перед арбитром за подтверждение перевода XMR в случае спора.\n\nИдентификатор оплаты не нужен - только нормальный публичный адрес.\nЕсли Вам не знаком этот процесс, посетите (https://www.getmonero.org/resources/user-guides/prove-payment.html) или осведомитесь на форуме Monero (https://forum.getmonero.org). -account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). +account.altcoin.popup.blur.msg=Если вы хотите торговать BLUR на Bisq, вам нужно понять и выполнить следующие требования:\n\nЧтобы послать BLUR, вы должны использовать кошелёк Blur Network CLI или кошелёк GUI.\n\nЕсли вы используете кошелёк CLI, хэш сделки (tx ID) будет показан после отправки перевoда. Вы должны сохранить эту информацию. Немедленно после отправки перевода, используйте команду 'get_tx_key' для получения секретного ключа сделки. Если вы не выполните этот акт, вы не сможете получить ключ позже.\n\nЕсли вы используете кошелёк Blur Network GUI, вы можете найти частный ключ и идентификацию (ID) сделки во вкладке "История". Немедленно после отправки, найдите интересуемую сделку. Нажмите на символ "?" в нижне-правом углу окна содержащего сделку. Вы должны сохранить эту информацию.\n\nВ случае необходимости арбитража, вы должны предоставить следующее арбитру: 1.) идентификацию (ID) сделки, 2.) частный ключ сделки, и 3.) адрес получателя. Арбитр затем проверит перевод BLUR пользуясь Просмотрщиком сделок Blur или Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nЕсли вы не сможете предоставить требованную информацию арбитру, вы проиграете спор. Во всех случаях спора, отправитель несёт 100% ответственности за подтверждение сделок арбитру.\n\nЕсли вы не понимаете эти требования, не торгуйте на Bisq. Сначала, ищите помощь в Споре Сети Blur или Blur Network Discord (https://discord.gg/dMWaqVW). account.altcoin.popup.ccx.msg=Если Вы хотите торговать CCX на Bisq, просьба убедиться, что Вы понимаете следующие требования:\n\nДля отправки ccx вы должны использовать официальный кошелек - либо CLI, либо GUI. После отправки перевода, кошельки\nпоказывают секретный ключ транзакции. Вы должны сохранить его вместе с хэшем транзакции (ID) и общедоступным\nадресом получателя на случай возникновения спора. В таком случае Вы должны предоставить все три арбитру,\nдля проверки перевода CCX с помощью Обозревателя Скрытых Транзакций (https://explorer.скрывать.network/txviewer).\nТак как Conceal монета конфиденциальности, блок обозреватели не могут проверить переводы.\n\nЕсли Вы не сможете предоставить необходимые данные арбитру, Вы проиграете спор.\nЕсли Вы не сохраните секретный ключ транзакции сразу после передачи CCX, его нельзя будет восстановить позже.\nЕсли Вы не понимаете этих требований, обратитесь за помощью в Conceal discord (http://discord.conceal.network). -account.altcoin.popup.drgl.msg=Trading Dragonglass on Bisq requires that you understand and fulfill the following requirements:\n\nBecause of the privacy Dragonglass provides a transaction is not verifyable on the public blockchain. If required you can prove your payment thru use of your TXN-Private-Key.\nThe TXN-Private Key is a one-time key automatically generated for every transaction that can only be accessed from within your DRGL wallet.\nEither by DRGL-wallet GUI (inside transaction details dialog) or by the Dragonglass CLI simplewallet (using command "get_tx_key").\n\nDRGL version 'Oathkeeper' and higher are REQUIRED for both.\n\nIn case of a dispute, you must provide the arbitrator the following data:\n- The TXN-Private key\n- The transaction hash\n- The recipient's public address\n\nVerification of payment can be made using the above data as inputs at \ (http://drgl.info/#check_txn).\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the arbitrator in case of a dispute. Use of PaymentID is not required.\n\nIf you are unsure about any part of this process, visit Dragonglass on Discord (http://discord.drgl.info) for help. +account.altcoin.popup.drgl.msg=\nЧтобы торговать Dragonglass на Bisq, вы должны понять и выполнить следующие треобования:\n\nТак как Dragonglass предоставляет конфиденциальность, сделку невозможно подтвердить в общественном блокчейне. Вам необходимо доказать вашу оплату пользуясь вашим частным ключом TXN (TXN-Private-Key).\nЧастный ключ TXN - это одноразовый ключ который автоматически создан при каждой сделке и только доступен изнутри вашего кошелька DRGL.\nИли через GUI (графический интерфейс пользователя) кошелька DRGL (внутри диалога деталей сделок) или через Dragonglass CLI simplewallet (пользуясь командой "get_tx_key").\n\nДля обоих НЕОБХОДИМЫ версия DRGL "Oathkeeper" и новее.\n\nВ случае спора, вы должны предоставить следующую информацию арбитру: \n- Частный ключ TXN\n- Хэш сделки\n- Публичный адрес получателя\n\nПодтверждение оплаты может быть выполнено используя приведённые выше данные в качестве входных данных в (http://drgl.info/#check_txn). \n\nЕсли вы не можете предоставить приведённые выше данные или вы использовали несовместимый кошелёк, это приведёт к потере спора. Отправитель Dragonglass имеет ответственность за подтвердение перевода DRGL арбитру в случае спора. Использование PaymentID не требуется.\n\nЕсли вы не уверены в какой-либо части этого процесса, посетите Dragonglass о споре (http://discord.drgl.info) для услуг. account.altcoin.popup.ZEC.msg=При использовании {0} допустимо использовать только прозрачные адреса (начиная с t) а не z-адреса (личные), потому что арбитр не сможет проверить транзакцию с z-адресами. account.altcoin.popup.XZC.msg=При использовании {0} можно использовать только прозрачные (отслеживаемые) адреса, а не неотслеживаемые адреса, поскольку арбитр не сможет проверить транзакцию с неотслеживаемыми адресами в обозревателе блоков цепи / вlockchain. account.altcoin.popup.bch=Bitcoin Cash и Bitcoin Classic страдают отсутствием защиты воспроизведения. Если вы используете эти монеты, убедитесь, что вы принимаете достаточные меры предосторожности и понимаете все последствия. Возможно понести убытки, отправив одну монету и непреднамеренно отправить те же монеты на другую блокцепь. Поскольку эти монеты были выпущены процессом "airdrop" и разделяют исторические данные с блокчейном Биткойн, существует также риск безопасности и значительный риск потери конфиденциальности. \n\nПросьба прочесть подробнее на форуме Bisq: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc @@ -949,14 +952,14 @@ account.password.removePw.button=Удалить пароль account.password.removePw.headline=Удалить защиту паролем для кошелька account.password.setPw.button=Установить пароль account.password.setPw.headline=Установить пароль для защиты кошелька -account.password.info=С защитой паролем, Вам необходимо ввести пароль при выводе биткойнов из своего кошелька, или если Вы хотите просмотреть или восстановить кошелёк из кодовых слов, а также при запуске приложения. +account.password.info=С защитой паролем, Вам необходимо ввести пароль при запуске приложения, при выводе биткойнов из Вашего кошелька, и если Вы хотите восстановить кошелёк из кодовых слов. account.seed.backup.title=Сохранить кодовые слова Вашего кошелька -account.seed.info=Просьба записать кодовые слова для восстановления кошелька и дату! Вы сможете восстановить Ваш кошелёк когда угодно, используя фразу из кодовых слов и дату.\nКодовые слова используются для обоих кошельков BTC и BSQ.\n\nВам следует записать и сохранить кодовые слова на бумаге, и не хранить их на компьютере.\n\nУчтите, что кодовые слова не заменяют резервную копию.\nВам следует сделать резервную копию всего каталога приложения в разделе \"Счёт/Резервное копирование\" для восстановления действительного состояния приложения и данных.\nИмпорт кодовых слов рекомендуется только в экстренных случаях. Приложение не будет функционировать без надлежащего резервного копирования файлов базы данных и ключей! +account.seed.info=Просьба записать кодовые слова кошелька и дату создания! Используя эти данные, Вы сможете восстановить Ваш кошелёк когда угодно.\nОдни и те-же кодовые слова используются для обоих кошельков - BTC и BSQ.\n\nВам следует записать кодовые слова на бумаге, и не хранить их на компьютере.\n\nУчтите, что кодовые слова НЕ заменяют резервную копию.\nВам следует сделать резервную копию всего каталога приложения в разделе \"Счёт/Резервное копирование\" для восстановления действительного состояния приложения и данных.\nИмпорт кодовых слов рекомендуется только в экстренных случаях. Приложение не будет функционировать без надлежащего резервного копирования файлов базы данных и ключей! account.seed.warn.noPw.msg=Вы не установили пароль кошелька, защищающий его кодовые слова.\n\nЖелаете показать на экране кодовые слова? account.seed.warn.noPw.yes=Да, и не спрашивать снова account.seed.enterPw=Введите пароль, чтобы увидеть кодовые слова -account.seed.restore.info=Учтите, что невозможно импортировать кошелек из старой версии Bisq (любая версия до 0.5.0), потому что формат кошелька изменился! \n\nЕсли вы хотите перевести средства со старой версии приложения на новую, отправьте их с помощью транзакции Биткойн. \n\nТакже помните, что восстановление кошелька предназначено только для экстренных случаев, и может вызвать проблемы с базой данных кошелька.\nЭто не способ резервного копирования! Просьба использовать резервную копию из директории приложения для восстановления предыдущего состояния приложения. +account.seed.restore.info=Просьба создать резервную копию перед восстановлением из кодовых слов. Помните, что восстановление кошелька предназначено для экстренных случаев и может вызвать неполадки внутренней базы данных кошелька.\nЭто не способ резервного копирования! Используйте резервную копию из каталога данных приложения для восстановления его предыдущего состояния. account.seed.restore.ok=Хорошо, я понимаю и хочу восстановить @@ -968,9 +971,9 @@ account.notifications.setup.title=Установка account.notifications.download.label=Скачать мобильное приложение account.notifications.download.button=Скачать account.notifications.waitingForWebCam=Ожидание веб-камеры... -account.notifications.webCamWindow.headline=Сканировать код QR телефоном +account.notifications.webCamWindow.headline=Сканировать код QR с телефона account.notifications.webcam.label=Применить веб-камеру -account.notifications.webcam.button=Сканировать код +account.notifications.webcam.button=Сканировать код QR account.notifications.noWebcam.button=Нет веб-камеры account.notifications.testMsg.label=Отправить тестовое уведомление account.notifications.testMsg.title=Проверка @@ -979,13 +982,13 @@ account.notifications.erase.title=Очистить уведомления account.notifications.email.label=Токен спаривания account.notifications.email.prompt=Введите токен спаривания полученный по э-почте account.notifications.settings.title=Настройки -account.notifications.useSound.label=Озвучить уведомление +account.notifications.useSound.label=Озвучить уведомление на телефоне account.notifications.trade.label=Получать сообщения сделки account.notifications.market.label=Получать оповещения о предложении account.notifications.price.label=Получать оповещения о ценах account.notifications.priceAlert.title=Оповещения о ценах -account.notifications.priceAlert.high.label=Уведомлять, если цена BTC выше -account.notifications.priceAlert.low.label=Уведомлять, если цена BTC ниже +account.notifications.priceAlert.high.label=Уведомить, если цена BTC выше +account.notifications.priceAlert.low.label=Уведомить, если цена BTC ниже account.notifications.priceAlert.setButton=Установить оповещение о цене account.notifications.priceAlert.removeButton=Удалить оповещение о цене account.notifications.trade.message.title=Состояние сделки изменилось @@ -1021,7 +1024,7 @@ account.notifications.priceAlert.message.title=Оповещение о цене account.notifications.priceAlert.message.msg=Ваше оповещение о цене сработало. Текущая цена {0} {1} {2} account.notifications.noWebCamFound.warning=Веб-камера не найдена.\n\nПросьба применить э-почту для отправки токена и ключа шифрования с Вашего мобильного телефона на приложение Bisq. account.notifications.priceAlert.warning.highPriceTooLow=Более высокая цена должна быть больше чем более низкая цена. -account.notifications.priceAlert.warning.lowerPriceTooHigh=Нижняя цена должна быть ниже, чем более высокая цена. +account.notifications.priceAlert.warning.lowerPriceTooHigh=Нижняя цена должна быть ниже чем более высокая цена. @@ -1040,7 +1043,7 @@ dao.availableBsqBalance=Доступно dao.availableNonBsqBalance=Доступный баланс (ВТС) исключая BSQ dao.unverifiedBsqBalance=Непроверенно (ожидает подтверждения блока) dao.lockedForVoteBalance=Использовано для голосования -dao.lockedInBonds=Заперто в облигациях +dao.lockedInBonds=Заперто в гарантийных депозитах dao.totalBsqBalance=Общий баланс BSQ dao.tx.published.success=Ваша транзакция опубликована. @@ -1112,34 +1115,34 @@ dao.param.REIMBURSEMENT_MIN_AMOUNT=Мин. сумма запроса BSQ воз dao.param.REIMBURSEMENT_MAX_AMOUNT=Макс. сумма запроса BSQ возмещения # suppress inspection "UnusedProperty" -dao.param.QUORUM_GENERIC=Необходимый кворум BSQ для обычного предложения +dao.param.QUORUM_GENERIC=Требуемый кворум в BSQ для обычного предложения # suppress inspection "UnusedProperty" -dao.param.QUORUM_COMP_REQUEST=Необходимый кворум BSQ для запроса компенсации +dao.param.QUORUM_COMP_REQUEST=Требуемый кворум в BSQ для запроса компенсации # suppress inspection "UnusedProperty" -dao.param.QUORUM_REIMBURSEMENT=Необходимый кворум BSQ для запроса возмещения +dao.param.QUORUM_REIMBURSEMENT=Требуемый кворум в BSQ для запроса возмещения # suppress inspection "UnusedProperty" -dao.param.QUORUM_CHANGE_PARAM=Необходимый кворум BSQ для изменения параметра +dao.param.QUORUM_CHANGE_PARAM=Требуемый кворум в BSQ для изменения параметра # suppress inspection "UnusedProperty" dao.param.QUORUM_REMOVE_ASSET=Необходимый кворум BSQ для удаления актива # suppress inspection "UnusedProperty" dao.param.QUORUM_CONFISCATION=Необходимый кворум BSQ для запроса конфискации # suppress inspection "UnusedProperty" -dao.param.QUORUM_ROLE=Необходимый кворум в BSQ для запросов обеспеченной роли +dao.param.QUORUM_ROLE=Требуемый кворум в BSQ для запросов роли требующей залога # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_GENERIC=Необходимый порог в % для обычного предложения +dao.param.THRESHOLD_GENERIC=Требуемый порог в % для обычного предложения # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_COMP_REQUEST=Необходимый порог в % для запроса компенсации +dao.param.THRESHOLD_COMP_REQUEST=Требуемый порог в % для запроса компенсации # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_REIMBURSEMENT=Необходимый порог в % для запроса возмещения +dao.param.THRESHOLD_REIMBURSEMENT=Требуемый порог в % для запроса возмещения # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_CHANGE_PARAM=Необходимый порог в % для изменения параметра +dao.param.THRESHOLD_CHANGE_PARAM=Требуемый порог в % для изменения параметра # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_REMOVE_ASSET=Необходимый порог в % для удаления актива +dao.param.THRESHOLD_REMOVE_ASSET=Требуемый порог в % для удаления актива # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_CONFISCATION=Необходимый порог в % для запроса конфискации +dao.param.THRESHOLD_CONFISCATION=Требуемый порог в % для запроса конфискации # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_ROLE=Необходимый порог в % для запросов обеспеченной роли +dao.param.THRESHOLD_ROLE=Требуемый порог в % для запросов обеспеченной роли # suppress inspection "UnusedProperty" dao.param.RECIPIENT_BTC_ADDRESS=BTC адрес получателя @@ -1211,7 +1214,7 @@ dao.bond.bondedRoles=Обеспеченные роли dao.bond.details.header=Подробности роли dao.bond.details.role=Роль -dao.bond.details.requiredBond=Необходимый гарантийный депозит BSQ +dao.bond.details.requiredBond=Требуемый гарантийный депозит BSQ dao.bond.details.unlockTime=Срок разблокировки в блоках dao.bond.details.link=Ссылка на подробности роли dao.bond.details.isSingleton=Может быть принято несколькими держателями роли @@ -1319,7 +1322,7 @@ dao.assetState.REMOVED_BY_VOTING=Удалён голосованием dao.proofOfBurn.header=Proof of burn dao.proofOfBurn.amount=Количество dao.proofOfBurn.preImage=Pre-image -dao.proofOfBurn.burn=Сжечь +dao.proofOfСжечь.burn=Сжечь dao.proofOfBurn.allTxs=Все транзакции proof of burn dao.proofOfBurn.myItems=Мои транзакции proof of burn dao.proofOfBurn.date=Дата @@ -1407,14 +1410,14 @@ dao.proposal.myVote.merit=Вес голоса от заслуженного BSQ dao.proposal.myVote.stake=Вес голоса от доли dao.proposal.myVote.blindVoteTxId=Транз. идент. слепого голосования dao.proposal.myVote.revealTxId=Транз. идент. выявления голоса -dao.proposal.myVote.stake.prompt=Доступный баланс для голосования: {0} +dao.proposal.myVote.stake.prompt=Макс. доступный баланс для голосования: {0} dao.proposal.votes.header=Голосование по всем предложениям dao.proposal.votes.header.voted=Мой голос dao.proposal.myVote.button=Голосование по всем предложениям dao.proposal.create.selectProposalType=Выберите тип предложения dao.proposal.create.proposalType=Тип предложения -dao.proposal.create.createNew=Создать новый запрос компенсации -dao.proposal.create.create.button=Создать запрос компенсации +dao.proposal.create.createNew=Создать новое предложение +dao.proposal.create.create.button=Создать предложение dao.proposal=предложение dao.proposal.display.type=Тип предложения dao.proposal.display.name=Имя/ник @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Параметр dao.proposal.table.header.proposalType=Тип предложения dao.proposal.table.header.link=Ссылка +dao.proposal.table.header.myVote=Мой голос +dao.proposal.table.header.remove=Удалить dao.proposal.table.icon.tooltip.removeProposal=Удалить моё предложение dao.proposal.table.icon.tooltip.changeVote=Текущий голос: "{0}". Изменить голос на: "{1}" @@ -1489,7 +1494,7 @@ dao.wallet.receive.fundYourWallet=Ввести средства на Ваш BSQ dao.wallet.receive.bsqAddress=Адрес кошелька BSQ dao.wallet.send.sendFunds=Послать средства -dao.wallet.send.sendBtcFunds=Отправить средства исключая BSQ (BTC) +dao.wallet.send.sendBtcFunds=Отправить средства (BTC), исключая BSQ dao.wallet.send.amount=Сумма в BSQ dao.wallet.send.btcAmount=Сумма в ВТС (исключая BSQ) dao.wallet.send.setAmount=Установленная сумма для снятия (мин. сумма равна {0}) @@ -1500,21 +1505,21 @@ dao.wallet.send.setDestinationAddress=Заполните ваш адрес на dao.wallet.send.send=Отправить BSQ средства dao.wallet.send.sendBtc=Отправить BTC средства dao.wallet.send.sendFunds.headline=Подтвердите запрос снять средства -dao.wallet.send.sendFunds.details=Отправка: {0}\nНа принимающий адрес: {1}.\nНеобходимая комиссия за транзакцию: {2} ({3} satoshis/byte)\nРазмер транзакции: {4} Кб\n\nПолучатель получит: {5}\n\nВы уверены, что желаете снять эту сумму? -dao.wallet.chainHeightSynced=Синхронизация до блока: {0} (Последний блок: {1}) -dao.wallet.chainHeightSyncing=Синхронизирующий блок: {0} (Последний блок: {1}) +dao.wallet.send.sendFunds.details=Отправка: {0}\nНа принимающий адрес: {1}.\nТребуемая комиссия за транзакцию: {2} ({3} сатоши/байт)\nРазмер транзакции: {4} Кб\n\nПолучатель получит: {5}\n\nВы уверены, что желаете снять эту сумму? +dao.wallet.chainHeightSynced=Новейший проверенный блок: {0} +dao.wallet.chainHeightSyncing=Ожидание блоков... Проверено {0} блоков из {1} dao.wallet.tx.type=Тип # suppress inspection "UnusedProperty" dao.tx.type.enum.UNDEFINED_TX_TYPE=Не признано # suppress inspection "UnusedProperty" -dao.tx.type.enum.UNVERIFIED=Неверная транзакция BSQ +dao.tx.type.enum.UNVERIFIED=Непроверенная транзакция BSQ # suppress inspection "UnusedProperty" dao.tx.type.enum.INVALID=Недействительная транзакция BSQ # suppress inspection "UnusedProperty" -dao.tx.type.enum.GENESIS=Genesis транзакция +dao.tx.type.enum.GENESIS=Исходная транзакция # suppress inspection "UnusedProperty" -dao.tx.type.enum.TRANSFER_BSQ=Передача BSQ +dao.tx.type.enum.TRANSFER_BSQ=Перевести BSQ # suppress inspection "UnusedProperty" dao.tx.type.enum.received.TRANSFER_BSQ=Полученный BSQ # suppress inspection "UnusedProperty" @@ -1564,7 +1569,7 @@ displayAlertMessageWindow.headline=Важная информация! displayAlertMessageWindow.update.headline=Информация о важном обновлении! displayAlertMessageWindow.update.download=Загрузить: displayUpdateDownloadWindow.downloadedFiles=Файлы: -displayUpdateDownloadWindow.downloadingFile=Загрузить: {0} +displayUpdateDownloadWindow.downloadingFile=Загрузka: {0} displayUpdateDownloadWindow.verifiedSigs=Подпись, подтвержденная ключами: displayUpdateDownloadWindow.status.downloading=Файлы загружаются... displayUpdateDownloadWindow.status.verifying=Проверка подписи... @@ -1579,18 +1584,18 @@ displayUpdateDownloadWindow.verify.failed=Проверка не удалась.\ displayUpdateDownloadWindow.success=Новая версия успешно скачалась и подпись проверена.\n\nПожалуйста, откройте директорию загрузки, закройте приложение и установите новую версию. displayUpdateDownloadWindow.download.openDir=Открыть директорию для загрузки -disputeSummaryWindow.title=Сводка +disputeСводкаWindow.title=Сводка disputeSummaryWindow.openDate=Дата открытия билета поддержки disputeSummaryWindow.role=Роль трейдера disputeSummaryWindow.evidence=Доказательство disputeSummaryWindow.evidence.tamperProof=Подтверждение доказательств -disputeSummaryWindow.evidence.id=проверка идентификации +disputeSummaryWindow.evidence.id=Проверка идентификации disputeSummaryWindow.evidence.video=Видео/Экранная демонстрация disputeSummaryWindow.payout=Выплата суммы сделки disputeSummaryWindow.payout.getsTradeAmount=BTC {0} получение выплаты суммы сделки disputeSummaryWindow.payout.getsAll=BTC {0} Получить всё disputeSummaryWindow.payout.custom=Пользовательская выплата -disputeSummaryWindow.payout.adjustAmount=Введенная сумма превышает доступный размер {0}. \nМы вводим максимально возможное значение. +disputeSummaryWindow.payout.adjustAmount=Введенная сумма превышает доступное количество {0}. \nМы введём максимально возможное значение. disputeSummaryWindow.payoutAmount.buyer=Сумма выплаты покупателю disputeSummaryWindow.payoutAmount.seller=Сумма выплаты продавцу disputeSummaryWindow.payoutAmount.invert=Проигравший публикует @@ -1615,8 +1620,8 @@ emptyWalletWindow.bsq.btcBalance=Баланс в сатоши исключая B emptyWalletWindow.address=Ваш адрес назначения emptyWalletWindow.button=Отправить все средства -emptyWalletWindow.openOffers.warn=У Вас открыты предложения, которые будут удалены, если вы опустошите кошелёк.\nУверены ли вы, что хотите очистить свой кошелёк? -emptyWalletWindow.openOffers.yes=Да, я уверен +emptyWalletWindow.openOffers.warn=У Вас есть открытые предложения, которые будут удалены если вы опустошите кошелёк.\nУверены ли Вы, что хотите опустошить свой кошелёк? +emptyWalletWindow.openOffers.yes=Да, я уверен(а) emptyWalletWindow.sent.success=Баланс вашего кошелька был успешно передан. enterPrivKeyWindow.headline=Регистрация открыта только для приглашенных арбитров @@ -1653,7 +1658,7 @@ offerDetailsWindow.creationDate=Дата создания offerDetailsWindow.makersOnion=Onion-адрес (Tor) создателя qRCodeWindow.headline=QR-код -qRCodeWindow.msg=Используйте этот QR-код для пополнения своего кошелька Bisq из внешнего кошелька. +qRCodeWindow.msg=Используйте этот QR-код для пополнения Вашего кошелька Bisq из внешнего кошелька. qRCodeWindow.request=Запрос платежа:\n{0} selectDepositTxWindow.headline=Выберите транзакцию ввода средств для включения в спор @@ -1741,7 +1746,7 @@ popup.headline.error=Ошибка popup.doNotShowAgain=Не показывать снова popup.reportError.log=Открыть файл журнала popup.reportError.gitHub=Сообщить проблему на Github в раздел 'issues' -popup.reportError={0}\n\nчтобы помочь нам улучшить приложение, просьба сообщить о неисправности на нашем баг-трекере на github (https://github.com/bisq-network/bisq-desktop/issues).\nСообщение о неисправности будет скопировано в буфер обмена при нажатии кнопки ниже.\nНам облегчит отладку, если Вы прикрепите также bisq.log файл. +popup.reportError={0}\n\nчтобы помочь нам улучшить приложение, просьба сообщить о неисправности на нашем баг-трекере на GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nСообщение о неисправности будет скопировано в буфер обмена при нажатии кнопки ниже.\nНам облегчит отладку, если Вы прикрепите также bisq.log файл. popup.error.tryRestart=Пожалуйста, попробуйте перезагрузить ваше приложение и проверьте подключение к сети, чтобы узнать, можете ли вы решить проблему. popup.error.takeOfferRequestFailed=Произошёл сбой, когда контрагент попытался принять одно из Ваших предложений:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=Один из узлов {0} был запрещен/з popup.warning.priceRelay=ретранслятор курса popup.warning.seed=кодовые слова -popup.info.securityDepositInfo=Чтобы гарантировать следование торговому протоколу трейдерами, необходим залоговый взнос.\n\nОн поступит на Ваш счёт и останется в Вашем местном кошельке до тех пор, пока предложение не будет принято другим трейдером.\nЗалог будет возвращен Вам после успешного завершения сделки.\n\nУчтите, что для принятия Ваших текущих предложений другими трейдерами, и выполнения протокола сделки, Ваше приложение должно быть подключено к сети.\nУбедитесь, что Вы отключили режим ожидания. Иначе, это отключит сеть. (Режим ожидания монитора не является проблемой.) +popup.info.securityDepositInfo=Чтобы гарантировать следование торговому протоколу трейдерами, необходим залоговый депозит.\n\nОн поступит на Ваш счёт и останется в Вашем торговом кошельке до успешного завершения сделки, и затем будет возвращен Вам.\n\nУчтите, что если Вы создаёте новое предложение, Bisq должно быть подключено к сети для принятия предложения другими трейдерами. Чтобы Ваши предложения были доступны в сети, компьютер и Bisq должны быть включёны и подключены к сети. (т. е. убедитесь, что компьютер не впал в режим ожидания...монитор в режиме ожидания не проблема). popup.info.cashDepositInfo=Просьба убедиться, что в Вашем районе существует отделение банка, где возможно внести депозит наличными.\nИдентификатор (BIC/SWIFT) банка продавца: {0}. popup.info.cashDepositInfo.confirm=Я подтверждаю, что могу внести депозит @@ -2127,7 +2132,7 @@ MONEY_GRAM_SHORT=MoneyGram # suppress inspection "UnusedProperty" WESTERN_UNION_SHORT=Western Union # suppress inspection "UnusedProperty" -F2F_SHORT=F2F +F2F_SHORT=Лицом к лицу # Do not translate brand names # suppress inspection "UnusedProperty" @@ -2267,10 +2272,10 @@ validation.iban.checkSumInvalid=Контрольная сумма IBAN неде validation.iban.invalidLength=Номер должен быть от 15 до 34 символов. validation.interacETransfer.invalidAreaCode=Код не Канадского региона validation.interacETransfer.invalidPhone=Неверный формат номера телефона или адрес электронной почты -validation.interacETransfer.invalidQuestion=Должно содержать только буквы, цифры, пробелы и символы ' _ , . ? - +validation.interacETransfer.invalidQuestion=Должно содержать только буквы, цифры, пробелы и/или символы ' _ , . ? - validation.interacETransfer.invalidAnswer=Необходимо одно слово, содержащее только буквы, цифры и символ - validation.inputTooLarge=Данные должны быть не более {0} -validation.inputTooSmall=Данные должны быть не более {0} +validation.inputTooSmall=Данные должны быть более {0} validation.amountBelowDust=Сумма ниже предела ("пыли") {0} не допускается. validation.length=Длина должна быть между {0} и {1} validation.pattern=Данные должны быть в формате: {0} diff --git a/core/src/main/resources/i18n/displayStrings_sr.properties b/core/src/main/resources/i18n/displayStrings_sr.properties index 8af6daf987..10374ef9db 100644 --- a/core/src/main/resources/i18n/displayStrings_sr.properties +++ b/core/src/main/resources/i18n/displayStrings_sr.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=Da, započeo sam uplatu portfolio.pending.step2_seller.waitPayment.headline=Sačekajte uplatu portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=The deposit transaction has at least one blockchain confirmation.\nYou need to wait until the BTC buyer starts the {0} payment. -portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until he starts the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=The BTC buyer has not started his payment!\nThe max. allowed period for the trade has elapsed.\nPlease contact the arbitrator for opening a dispute. # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=Nema dostupnih transakcija funds.tx.revert=Vrati funds.tx.txSent=Transakcija uspešno poslata na novu adresu u lokalnom Bisq novčaniku funds.tx.direction.self=Transakcija unutar novčanika -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=Zahtev za nadoknadu @@ -762,9 +765,9 @@ support.buyerOfferer=BTC kupac/Tvorac support.sellerOfferer=BTC prodavac/Tvorac support.buyerTaker=BTC kupac/Uzimalac support.sellerTaker=BTC prodavac/Tvorac -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo="Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrators requests in between 2 days.\n2. The maximum period for the dispute is 14 days.\n3. You need to fulfill what the arbitrator is requesting from you to deliver evidence for your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more in detail about the dispute process in our wiki:\nhttps://github.com/bitsquare/bitsquare/wiki/Dispute-process +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Poruka sistema: {0} support.youOpenedTicket=Otvorili ste zahtev za podršku. support.youOpenedDispute=You opened a request for a dispute.\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=Use custom Bitcoin Core nodes settings.net.warn.usePublicNodes=If you use the public Bitcoin network you are exposed to a severe privacy problem caused by the broken bloom filter design and implementation which is used for SPV wallets like BitcoinJ (used in Bisq). Any full node you are connected to could find out that all your wallet addresses belong to one entity.\n\nPlease read more about the details at: https://bisq.network/blog/privacy-in-bitsquare.\n\nAre you sure you want to use the public nodes? settings.net.warn.usePublicNodes.useProvided=No, use provided nodes settings.net.warn.usePublicNodes.usePublic=Yes, use public network -settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which are not following the Bitcoin Core consensus rules could screw up your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any damage created by that. Disputes caused by that would be decided in favor of the other peer. No technical support will be given to users who ignore our warning and protection mechanisms! -settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you get connected exclusively to that.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=Onion adresa settings.net.creationDateColumn=Utvrđen @@ -857,17 +860,17 @@ settings.net.inbound=dolazeći settings.net.outbound=koji odlazi settings.net.reSyncSPVChainLabel=Resinkuj SPV lanac settings.net.reSyncSPVChainButton=Izbriši SPV fajl i resinhronizuj -settings.net.reSyncSPVSuccess=The SPV chain file has been deleted. You need to restart your application now.\n\nAfter the restart it can take a while for resyncing with the network and you will only see all transactions once the resync is completed.\n\nPlease make another restart after the resync has completed because there are sometimes inconsistencies leading to incorrect balance display. -settings.net.reSyncSPVAfterRestart=SPV lanac fajl je izbrisan. Molimo imajte strpljenja, može potrajati prilikom resinhronizovanja sa mrežom. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Resink je sada završen. Molimo ponovo pokrenite aplikaciju. settings.net.reSyncSPVFailed=Nije uspelo brisanje SPV lanac fajla. setting.about.aboutBisq=O Bisq -setting.about.about=Bisq je projekat otvorenog koda i decentralizovana mreža korisnika koji žele da razmenjuju Bitkoin sa nacionalnim valutama ili alternativnim kripto valutama na način koji štiti privatnost. Naučite više o bisq na veb stranici našeg projetka. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq veb stranica setting.about.code=Izvorni kod setting.about.agpl=AGPL Licenca setting.about.support=Podrži Bisq -setting.about.def=Bisq nije kompanija nego zajednički projekt i otvoren za učestvovanje. Ako želite da učestvujete ili da podržite Bisq molimo pratite linkove ispod. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Doprinesi setting.about.donate=Doniraj setting.about.providers=Provajderi podataka @@ -889,7 +892,7 @@ setting.about.subsystems.val=Verzija mreže: {0}; Verzija P2P poruka: {1}; Verzi account.tab.arbitratorRegistration=Registracija arbitra account.tab.account=Nalog account.info.headline=Dobrodošli na vaš Bisq Nalog -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Nalozi nacionalne valute account.menu.altCoinsAccountView=Altkoin nalozi @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=Registrujte arbitra account.arbitratorRegistration.revoke=Opozovite registraciju -account.arbitratorRegistration.info.msg=Imajte na umu da je potrebno da budete dostupni 15 dana nakon opozivanja, jer možda postoje trgovine koje koriste vas kao arbitra. Maks. dozvoljen period trgovine je 8 dana i proces rasprave može da traje do 7 dana. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=You need to set at least 1 language.\nWe added the default language for you. account.arbitratorRegistration.removedSuccess=Uspešno ste uklonili vašeg arbitra sa P2P mreže. account.arbitratorRegistration.removedFailed=Uklanjanje arbitra nije uspelo.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=Možete izabrati samo arbitre koji govore bar account.arbitratorSelection.minOne=Potrebno je da imate bar jednog arbitra izabranog. account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where you don''t have your keys under your control or using a not compatible wallet software can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Razumem i potvrđujem da znam koji novčanik trebam da koristim. account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=Ukloni lozinku account.password.removePw.headline=Ukloni zaštitu lozinkom za novčanik account.password.setPw.button=Podesi lozinku account.password.setPw.headline=Podesi zaštitu lozinkom za novčanik -account.password.info=Sa zaštitom lozinkom potrebno je da unesete lozinku kada podižete bitkoin iz vašeg novčanika ili ako želite da vidite ili da povratite novčanik iz sid reči kao i pri pokretanju aplikacije. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Napravi rezervu sid reči vašeg novčanika -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=You have not setup a wallet password which would protect the display of the seed words.\n\nDo you want to display the seed words? account.seed.warn.noPw.yes=Da, ne pitaj me ponovo account.seed.enterPw=Unesite lozinku da bi videli sid reči -account.seed.restore.info=Please note that you cannot import a wallet from an old Bitsquare version (any version before 0.5.0), because the wallet format has changed!\n\nIf you want to move the funds from the old version to the new Bisq application send it with a Bitcoin transaction.\n\nAlso be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, I understand and want to restore @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=Proposal type dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=Ukloni dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=Pošalji BSQ sredstva dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=Potvrdi zahtev za podizanje dao.wallet.send.sendFunds.details=Sending: {0}\nTo receiving address: {1}.\nRequired transaction fee is: {2} ({3} Satoshis/byte)\nTransaction size: {4} Kb\n\nThe recipient will receive: {5}\n\nAre you sure you want to withdraw that amount? -dao.wallet.chainHeightSynced=Synchronized up to block:{0} (latest block: {1}) -dao.wallet.chainHeightSyncing=Synchronizing block: {0} (latest block: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=Tip # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=Verification failed.\nPlease download displayUpdateDownloadWindow.success=The new version has been successfully downloaded and the signature(s) verified.\n\nPlease open the download directory, shut down the application and install the new version. displayUpdateDownloadWindow.download.openDir=Open download directory -disputeSummaryWindow.title=Rezime +disputeRezimeWindow.title=Rezime disputeSummaryWindow.openDate=Ticket opening date disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence @@ -1741,7 +1746,7 @@ popup.headline.error=Greška popup.doNotShowAgain=Ne prikazuj opet popup.reportError.log=Open log file popup.reportError.gitHub=Prijavi Github pratiocu problema -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Molimo pokušajte da ponovo pokrenete vašu aplikaciju i proverite vašu mrežnu konekciju da vidite da li možete da rešite problem. popup.error.takeOfferRequestFailed=An error occurred when someone tried to take one of your offers:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=One of the {0} nodes got banned. Please restart your ap popup.warning.priceRelay=price relay popup.warning.seed=seed -popup.info.securityDepositInfo=To ensure that both traders follow the trade protocol they need to pay a security deposit.\n\nThe deposit will stay in your local trading wallet until the offer gets accepted by another trader.\nIt will be refunded to you after the trade has successfully completed.\n\nPlease note that you need to keep your application running if you have an open offer. When another trader wants to take your offer it requires that your application is online for executing the trade protocol.\nBe sure that you have standby mode deactivated as that would disconnect the network (standby of the monitor is not a problem). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=I confirm that I can make the deposit diff --git a/core/src/main/resources/i18n/displayStrings_th.properties b/core/src/main/resources/i18n/displayStrings_th.properties index 523c0bf9e4..9e4facc43d 100644 --- a/core/src/main/resources/i18n/displayStrings_th.properties +++ b/core/src/main/resources/i18n/displayStrings_th.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=ผู้ซื้อ +shared.sellerUpperCase=ผู้ขาย #################################################################### # UI views @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=ไม่มีธุรกรรมใด ๆ funds.tx.revert=กลับสู่สภาพเดิม funds.tx.txSent=ธุรกรรมถูกส่งสำเร็จไปยังที่อยู่ใหม่ใน Bisq wallet ท้องถิ่นแล้ว funds.tx.direction.self=ส่งถึงตัวคุณเอง -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=คำขอค่าสินไหมทดแทน @@ -889,7 +892,7 @@ setting.about.subsystems.val=เวอร์ชั่นของเครือ account.tab.arbitratorRegistration=การลงทะเบียนผู้ไกล่เกลี่ย account.tab.account=บัญชี account.info.headline=ยินดีต้อนรับสู่บัญชี Bisq ของคุณ -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=ที่นี่คุณสามารถตั้งค่าบัญชีการซื้อขายสกุลเงินประจำชาติและ altcoins (เหรียญทางเลือก) และเลือกผู้ไกล่เกลี่ย และสำรองข้อมูล wallet และบัญชีของคุณได้\n\nกระเป๋าสตางค์ Bitcoin ที่ว่างเปล่าถูกสร้างขึ้นในครั้งแรก ณ. ตอนที่คุณเริ่มต้นใช้งาน Bisq\nเราขอแนะนำให้คุณป้อนรหัสโค้ดการแบล็กอัพข้อมูลของ กระเป๋าสตางค์ Bitcoin (ดูปุ่มด้านซ้าย) และเพิ่มรหัสผ่านก่อนการป้อนเงิน การฝากและถอนเงินของ Bitcoin จะอยู่ในส่วนของ \ "เงิน \"\n\nความเป็นส่วนตัวและความปลอดภัย: \nBisq คือการแลกเปลี่ยนแบบกระจายอำนาจซึ่งหมายความว่าข้อมูลทั้งหมดของคุณจะถูกเก็บไว้ในคอมพิวเตอร์ของคุณไม่มีเซิร์ฟเวอร์และเราไม่มีสิทธิ์เข้าถึงข้อมูลส่วนบุคคล เงินทุนหรือแม้กระทั่งที่อยู่ IP ของคุณ และข้อมูล เช่น หมายเลขบัญชีธนาคาร altcoin (เหรียญทางเลือก) และที่อยู่ Bitcoin ฯลฯ ข้อมูลนั้นจะใช้ร่วมกับคู่ค้าของคุณเพื่อตอบสนองธุรกิจการซื้อขายที่คุณดำเนินการเท่านั้น (ในกรณีที่มีข้อพิพาทผู้ไกล่เกลี่ยจะเห็นข้อมูลเช่นเดียวกับ ผู้ค้าของคุณ) account.menu.paymentAccount=บัญชีสกุลเงินของประเทศ account.menu.altCoinsAccountView=บัญชี Altcoin (เหรียญทางเลือก) @@ -949,14 +952,14 @@ account.password.removePw.button=ลบรหัสผ่าน account.password.removePw.headline=ลบรหัสผ่านการป้องกันสำหรับ wallet account.password.setPw.button=ตั้งรหัสผ่าน account.password.setPw.headline=ตั้งรหัสผ่านการป้องกันสำหรับ wallet -account.password.info=ด้วยการป้องกันด้วยรหัสผ่าน คุณต้องป้อนรหัสผ่านเมื่อถอนเงินออกจากกระเป๋าสตางค์ของคุณหรือถ้าคุณต้องการดูหรือเรียกคืนกระเป๋าสตางค์การสำรองข้อมูลโค้ดเป็นเช่นเดียวกับเมื่อเริ่มต้นใช้งาน +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=สำรองข้อมูล wallet โค้ดของคุณ -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=โปรดเขียนรหัสสำรองข้อมูล wallet และวันที่! คุณสามารถกู้ข้อมูล wallet ของคุณได้ทุกเมื่อด้วย รหัสสำรองข้อมูล wallet และวันที่\nรหัสสำรองข้อมูล ใช้ทั้ง BTC และ BSQ wallet\n\nคุณควรเขียนรหัสสำรองข้อมูล wallet ลงบนแผ่นกระดาษและไม่บันทึกไว้ในคอมพิวเตอร์ของคุณ\n\nโปรดทราบว่า รหัสสำรองข้อมูล wallet ไม่ได้แทนการสำรองข้อมูล\nคุณจำเป็นต้องสำรองข้อมูลสารบบแอ็พพลิเคชั่นทั้งหมดที่หน้าจอ \"บัญชี / การสำรองข้อมูล \" เพื่อกู้คืนสถานะแอ็พพลิเคชั่นและข้อมูลที่ถูกต้อง\nการนำเข้ารหัสสำรองข้อมูล wallet เป็นคำแนะนำเฉพาะสำหรับกรณีฉุกเฉินเท่านั้น แอพพลิเคชั่นจะไม่สามารถใช้งานได้หากไม่มีไฟล์สำรองฐานข้อมูลและคีย์ที่ถูกต้อง! account.seed.warn.noPw.msg=คุณยังไม่ได้ตั้งรหัสผ่าน wallet ซึ่งจะช่วยป้องกันการแสดงผลของรหัสสำรองข้อมูล wallet \n\nคุณต้องการแสดงรหัสสำรองข้อมูล wallet หรือไม่ account.seed.warn.noPw.yes=ใช่ และไม่ต้องถามฉันอีก account.seed.enterPw=ป้อนรหัสผ่านเพื่อดูรหัสสำรองข้อมูล wallet -account.seed.restore.info=โปรดทราบว่าคุณไม่สามารถนำเข้า wallet จาก Bisq รุ่นเก่า (เวอร์ชันก่อนหน้า 0.5.0) เนื่องจากรูปแบบ wallet มีการเปลี่ยนแปลง! \n\nถ้าคุณต้องการจะย้ายเงินจากรุ่นเก่าไปยังแอ็พพลิเคชั่น Bisq ใหม่ให้ส่งด้วยการทำธุรกรรม bitcoin \n\nโปรดทราบว่าการเรียกคืน wallet เป็นกรณีฉุกเฉินเท่านั้นและอาจทำให้เกิดปัญหากับฐานข้อมูล wallet ภายใน\nนี่ไม่ใช่วิธีการสำรองข้อมูล! โปรดใช้ข้อมูลสำรองจากสารบบข้อมูลแอ็พพลิเคชั่นสำหรับการกู้คืนสถานะแอ็พพลิเคชั่นก่อนหน้านี้ +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=ตกลง ฉันเข้าใจและต้องการกู้คืนข้อมูล @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=ประเภทข้อเสนอ dao.proposal.table.header.link=ลิงค์ +dao.proposal.table.header.myVote=การลงคะแนนของฉัน +dao.proposal.table.header.remove=ลบออก dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=ส่งเงิน BSQ dao.wallet.send.sendBtc=ส่งเงินทุน BTC dao.wallet.send.sendFunds.headline=ยืนยันคำขอถอนเงิน dao.wallet.send.sendFunds.details=กำลังส่ง: {0} \nไปยังที่อยู่ที่ได้รับ: {1} .\nค่าธรรมเนียมการทำธุรกรรมคือ: {2} ({3} satoshis / byte) \nขนาดการทำรายการ: {4} Kb\n\nผู้รับจะได้รับ: {5} \n\nคุณแน่ใจหรือไม่ว่าคุณต้องการถอนจำนวนเงินดังกล่าว -dao.wallet.chainHeightSynced=ซิงโครไนซ์ไปยังบล็อก:{0} (บล็อกครั้งล่าสุด: {1}) -dao.wallet.chainHeightSyncing=ซิงโครไนซ์บล็อก:{0} (บล็อกครั้งล่าสุด: {1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=หมวด # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=การยืนยันล้ม displayUpdateDownloadWindow.success=ดาวน์โหลดเวอร์ชั่นใหม่เรียบร้อยแล้วและได้รับการยืนยันลายเซ็นแล้ว\n\nโปรดเปิดสารบบดาวน์โหลด หลังจากนั้นปิดโปรแกรมและติดตั้งเวอร์ชั่นใหม่ displayUpdateDownloadWindow.download.openDir=เปิดสารบบดาวน์โหลด -disputeSummaryWindow.title=สรุป +disputeสรุปWindow.title=สรุป disputeSummaryWindow.openDate=วันที่ยื่นการเปิดคำขอและความช่วยเหลือ disputeSummaryWindow.role=บทบาทของผู้ค้า disputeSummaryWindow.evidence=หลักฐาน @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=หนึ่งใน {0} โหนดถูกแบ popup.warning.priceRelay=ราคาผลัดเปลี่ยน popup.warning.seed=รหัสลับเพื่อกู้ข้อมูล -popup.info.securityDepositInfo=เพื่อให้แน่ใจว่าทั้งคู่ค้าทำตามโปรโตคอลทางการค้า พวกเขาต้องจ่ายเงินประกัน\n\nเงินฝากจะอยู่ใน wallet ในประเทศของคุณจนกว่าข้อเสนอจะได้รับการยอมรับจากผู้ค้ารายอื่น\nคุณจะได้รับเงินคืนให้หลังจากการซื้อขายเสร็จสมบูรณ์แล้ว\n\nโปรดทราบว่าคุณต้องทำให้แอ็พพลิเคชั่นของคุณทำงานต่อไปถ้าคุณมีข้อเสนอแบบเปิด เมื่อผู้ค้าอื่นต้องการรับข้อเสนอของคุณ แอ็พพลิเคชั่นจำเป็นต้องออนไลน์เพื่อใช้โปรโตคอลการค้า\nตรวจสอบให้แน่ใจว่าคุณมีโหมดสแตนด์บายปิดการใช้งานอยู่เนื่องจากจะทำให้ระบบเครือข่ายหยุดชะงัก (สแตนด์บายของจอภาพไม่เป็นปัญหา) +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=โปรดตรวจสอบว่าคุณมีสาขาธนาคารในพื้นที่ของคุณเพื่อสามารถฝากเงินได้\nรหัสธนาคาร (BIC / SWIFT) ของธนาคารผู้ขายคือ: {0} popup.info.cashDepositInfo.confirm=ฉันยืนยันว่าฉันสามารถฝากเงินได้ diff --git a/core/src/main/resources/i18n/displayStrings_vi.properties b/core/src/main/resources/i18n/displayStrings_vi.properties index 9c4f0879ab..fed9e470db 100644 --- a/core/src/main/resources/i18n/displayStrings_vi.properties +++ b/core/src/main/resources/i18n/displayStrings_vi.properties @@ -137,7 +137,7 @@ shared.saveNewAccount=Lưu tài khoản mới shared.selectedAccount=Tài khoản được chọn shared.deleteAccount=Xóa tài khoản shared.errorMessageInline=\nThông báo lỗi: {0} -shared.errorMessage=Error message +shared.errorMessage=Thông báo lỗi shared.information=Thông tin shared.name=Tên shared.id=ID @@ -152,19 +152,19 @@ shared.seller=người bán shared.buyer=người mua shared.allEuroCountries=Tất cả các nước Châu ÂU shared.acceptedTakerCountries=Các quốc gia tiếp nhận được chấp nhận -shared.arbitrator=Selected arbitrator +shared.arbitrator=Trọng tài được chọn shared.tradePrice=Giá giao dịch shared.tradeAmount=Khoản tiền giao dịch shared.tradeVolume=Khối lượng giao dịch shared.invalidKey=Mã khóa bạn vừa nhập không đúng. -shared.enterPrivKey=Enter private key to unlock -shared.makerFeeTxId=Maker fee transaction ID -shared.takerFeeTxId=Taker fee transaction ID -shared.payoutTxId=Payout transaction ID -shared.contractAsJson=Contract in JSON format +shared.enterPrivKey=Nhập Private key để mở khóa +shared.makerFeeTxId=ID giao dịch thu phí của người tạo +shared.takerFeeTxId=ID giao dịch thu phí của người nhận +shared.payoutTxId=ID giao dịch chi trả +shared.contractAsJson=Hợp đồng định dạng JSON shared.viewContractAsJson=Xem hợp đồng định dạng JSON shared.contract.title=Hợp đồng giao dịch có ID: {0} -shared.paymentDetails=BTC {0} payment details +shared.paymentDetails=Thông tin thanh toán BTC {0} shared.securityDeposit=Tiền đặt cọc shared.yourSecurityDeposit=Tiền đặt cọc của bạn shared.contract=Hợp đồng @@ -172,27 +172,30 @@ shared.messageArrived=Tin nhắn đến. shared.messageStoredInMailbox=Tin nhắn lưu trong hộp thư. shared.messageSendingFailed=Tin nhắn chưa gửi được. Lỗi: {0} shared.unlock=Mở khóa -shared.toReceive=to receive -shared.toSpend=to spend +shared.toReceive=nhận +shared.toSpend=chi shared.btcAmount=Số lượng BTC -shared.yourLanguage=Your languages +shared.yourLanguage=Ngôn ngữ của bạn shared.addLanguage=Thêm ngôn ngữ shared.total=Tổng -shared.totalsNeeded=Funds needed -shared.tradeWalletAddress=Trade wallet address -shared.tradeWalletBalance=Trade wallet balance +shared.totalsNeeded=Số tiền cần +shared.tradeWalletAddress=Địa chỉ ví giao dịch +shared.tradeWalletBalance=Số dư ví giao dịch shared.makerTxFee=Người tạo: {0} shared.takerTxFee=Người nhận: {0} shared.securityDepositBox.description=Tiền đặt cọc cho BTC {0} shared.iConfirm=Tôi xác nhận shared.tradingFeeInBsqInfo=tương đương với {0} sử dụng như phí đào shared.openURL=Mở {0} -shared.fiat=Fiat -shared.crypto=Crypto -shared.all=All -shared.edit=Edit -shared.advancedOptions=Advanced options -shared.interval=Interval +shared.fiat=Tiền pháp định +shared.crypto=Tiền mã hóa +shared.all=Tất cả +shared.edit=Chỉnh sửa +shared.advancedOptions=Tùy chọn nâng cao +shared.interval=Khoảng thời gian +shared.actions=Hoạt động +shared.buyerUpperCase=Người mua +shared.sellerUpperCase=Người bán #################################################################### # UI views @@ -212,9 +215,9 @@ mainView.menu.settings=Cài đặt mainView.menu.account=Tài khoản mainView.menu.dao=DAO -mainView.marketPrice.provider=Price by -mainView.marketPrice.label=Market price -mainView.marketPriceWithProvider.label=Market price by {0} +mainView.marketPrice.provider=Giá theo +mainView.marketPrice.label=Giá thị trường +mainView.marketPriceWithProvider.label=Giá thị trường theo {0} mainView.marketPrice.bisqInternalPrice=Giá giao dịch Bisq gần nhất mainView.marketPrice.tooltip.bisqInternalPrice=Không có giá thị trường từ nhà cung cấp bên ngoài.\nGiá hiển thị là giá giao dịch Bisq gần nhất với đồng tiền này. mainView.marketPrice.tooltip=Giá thị trường được cung cấp bởi {0}{1}\nCập nhật mới nhất: {2}\nURL nút nhà cung cấp: {3} @@ -222,8 +225,8 @@ mainView.marketPrice.tooltip.altcoinExtra=Nếu altcoin không có trên Polonie mainView.balance.available=Số dư hiện có mainView.balance.reserved=Phần được bảo lưu trong báo giá mainView.balance.locked=Khóa trong giao dịch -mainView.balance.reserved.short=Reserved -mainView.balance.locked.short=Locked +mainView.balance.reserved.short=Bảo lưu +mainView.balance.locked.short=Bị khóa mainView.footer.usingTor=(sử dụng Tor) mainView.footer.localhostBitcoinNode=(Máy chủ nội bộ) @@ -303,7 +306,7 @@ offerbook.offerersBankSeat=Quốc gia có ngân hàng của người tạo: {0} offerbook.offerersAcceptedBankSeatsEuro=Các quốc gia có ngân hàng được chấp thuận (người nhận): Tất cả các nước Châu Âu offerbook.offerersAcceptedBankSeats=Các quốc gia có ngân hàng được chấp thuận (người nhận):\n {0} offerbook.availableOffers=Các chào giá hiện có -offerbook.filterByCurrency=Filter by currency +offerbook.filterByCurrency=Lọc theo tiền tệ offerbook.filterByPaymentMethod=Lọc theo phương thức thanh toán offerbook.nrOffers=Số chào giá: {0} @@ -360,7 +363,7 @@ createOffer.amountPriceBox.minAmountDescription=Số tiền BTC nhỏ nhất createOffer.securityDeposit.prompt=Tiền đặt cọc bằng BTC createOffer.fundsBox.title=Nộp tiền cho chào giá của bạn createOffer.fundsBox.offerFee=Phí giao dịch -createOffer.fundsBox.networkFee=Mining fee +createOffer.fundsBox.networkFee=Phí đào createOffer.fundsBox.placeOfferSpinnerInfo=Báo giá đang được công bố createOffer.fundsBox.paymentLabel=giao dịch Bisq với ID {0} createOffer.fundsBox.fundsStructure=({0} tiền đặt cọc, {1} phí giao dịch, {2} phí đào) @@ -373,8 +376,8 @@ createOffer.info.buyBelowMarketPrice=Bạn sẽ luôn trả {0}% thấp hơn so createOffer.warning.sellBelowMarketPrice=Bạn sẽ luôn nhận {0}% thấp hơn so với giá thị trường hiện tại vì báo giá của bạn sẽ luôn được cập nhật. createOffer.warning.buyAboveMarketPrice=Bạn sẽ luôn trả {0}% cao hơn so với giá thị trường hiện tại vì báo giá của bạn sẽ luôn được cập nhật. createOffer.tradeFee.descriptionBTCOnly=Phí giao dịch -createOffer.tradeFee.descriptionBSQEnabled=Select trade fee currency -createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} of trade amount +createOffer.tradeFee.descriptionBSQEnabled=Chọn loại tiền trả phí giao dịch +createOffer.tradeFee.fiatAndPercent=≈ {0} / {1} giá trị giao dịch # new entries createOffer.placeOfferButton=Kiểm tra:: Đặt báo giá cho {0} bitcoin @@ -417,9 +420,9 @@ takeOffer.validation.amountLargerThanOfferAmount=Số tiền nhập không đư takeOffer.validation.amountLargerThanOfferAmountMinusFee=Giá trị nhập này sẽ làm thay đổi đối với người bán BTC. takeOffer.fundsBox.title=Nộp tiền cho giao dịch của bạn takeOffer.fundsBox.isOfferAvailable=Kiểm tra xem có chào giá không ... -takeOffer.fundsBox.tradeAmount=Amount to sell +takeOffer.fundsBox.tradeAmount=Số tiền để bán takeOffer.fundsBox.offerFee=Phí giao dịch -takeOffer.fundsBox.networkFee=Total mining fees +takeOffer.fundsBox.networkFee=Tổng phí đào takeOffer.fundsBox.takeOfferSpinnerInfo=Đang nhận chào giá ... takeOffer.fundsBox.paymentLabel=giao dịch Bisq có ID {0} takeOffer.fundsBox.fundsStructure=({0} tiền gửi đại lý, {1} phí giao dịch, {2} phí đào) @@ -511,9 +514,9 @@ portfolio.pending.step2_buyer.postal=Hãy gửi {0} bằng \"Phiếu chuyển ti portfolio.pending.step2_buyer.bank=Hãy truy cập trang web ngân hàng và thanh toán {0} cho người bán BTC.\n\n portfolio.pending.step2_buyer.f2f=Vui lòng liên hệ người bán BTC và cung cấp số liên hệ và sắp xếp cuộc hẹn để thanh toán {0}.\n\n portfolio.pending.step2_buyer.startPaymentUsing=Thanh toán bắt đầu sử dụng {0} -portfolio.pending.step2_buyer.amountToTransfer=Amount to transfer -portfolio.pending.step2_buyer.sellersAddress=Seller''s {0} address -portfolio.pending.step2_buyer.buyerAccount=Your payment account to be used +portfolio.pending.step2_buyer.amountToTransfer=Số tiền chuyển +portfolio.pending.step2_buyer.sellersAddress=Địa chỉ của người bán {0} +portfolio.pending.step2_buyer.buyerAccount=Tài khoản thanh toán sẽ sử dụng portfolio.pending.step2_buyer.paymentStarted=Bắt đầu thanh toán portfolio.pending.step2_buyer.warn=Bạn vẫn chưa thanh toán {0}!\nHãy lưu ý rằng giao dịch phải được hoàn thành trước {1} nếu không giao dịch sẽ bị điều tra bởi trọng tài. portfolio.pending.step2_buyer.openForDispute=Bạn vẫn chưa thanh toán xong!\nThời gian tối đa cho giao dịch đã hết.\n\nHãy liên hệ trọng tài để mở tranh chấp. @@ -525,15 +528,15 @@ portfolio.pending.step2_buyer.westernUnionMTCNInfo.headline=Gửi MTCN và biên portfolio.pending.step2_buyer.westernUnionMTCNInfo.msg=Bạn cần phải gửi MTCN (số theo dõi) và ảnh chụp giấy biên nhận bằng email cho người bán BTC.\nGiấy biên nhận phải nêu rõ họ tên, thành phố, quốc gia của người bán và số tiền. Địa chỉ email của người bán là: {0}.\n\nBạn đã gửi MTCN và hợp đồng cho người bán chưa? portfolio.pending.step2_buyer.halCashInfo.headline=Gửi mã HalCash portfolio.pending.step2_buyer.halCashInfo.msg=Bạn cần nhắn tin mã HalCash và mã giao dịch ({0}) tới người bán BTC. \nSố điện thoại của người bán là {1}.\n\nBạn đã gửi mã tới người bán chưa? -portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Some banks might require the receiver's name. The UK sort code and account number is sufficient for a Faster Payment transfer and the receivers name is not verified by any of the banks. +portfolio.pending.step2_buyer.fasterPaymentsHolderNameInfo=Một số ngân hàng có thể yêu cầu tên người nhận. Mã phân loại của Vương Quốc Anh và số tài khoản là đủ cho một giao dịch Chuyển Tiền Nhanh và tên người nhận không được ngân hàng nào xác minh. portfolio.pending.step2_buyer.confirmStart.headline=Xác nhận rằng bạn đã bắt đầu thanh toán portfolio.pending.step2_buyer.confirmStart.msg=Bạn đã kích hoạt thanh toán {0} cho Đối tác giao dịch của bạn chưa? portfolio.pending.step2_buyer.confirmStart.yes=Có, tôi đã bắt đầu thanh toán portfolio.pending.step2_seller.waitPayment.headline=Đợi thanh toán -portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information +portfolio.pending.step2_seller.f2fInfo.headline=Thông tin liên lạc của người mua portfolio.pending.step2_seller.waitPayment.msg=Giao dịch đặt cọc có ít nhất một xác nhận blockchain.\nBạn cần phải đợi cho đến khi người mua BTC bắt đầu thanh toán {0}. -portfolio.pending.step2_seller.warn=Người mua BTC vẫn chưa thanh toán {0}.\nBạn cần phải đợi cho đến khi người mua bắt đầu thanh toán.\nNếu giao dịch không được hoàn thành vào {1} trọng tài sẽ điều tra. +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=Người mua BTC chưa bắt đầu thanh toán!\nThời gian cho phép tối đa cho giao dịch đã hết.\nBạn có thể đợi lâu hơn và cho Đối tác giao dịch thêm thời gian hoặc liên hệ trọng tài để mở khiếu nại. # suppress inspection "UnusedProperty" @@ -551,19 +554,19 @@ message.state.FAILED=Gửi tin nhắn không thành công portfolio.pending.step3_buyer.wait.headline=Đợi người bán BTC xác nhận thanh toán portfolio.pending.step3_buyer.wait.info=Đợi người bán BTC xác nhận đã nhận thanh toán {0}. -portfolio.pending.step3_buyer.wait.msgStateInfo.label=Payment started message status +portfolio.pending.step3_buyer.wait.msgStateInfo.label=Thông báo trạng thái thanh toán đã bắt đầu portfolio.pending.step3_buyer.warn.part1a=trên blockchain {0} portfolio.pending.step3_buyer.warn.part1b=tại nhà cung cấp thanh toán của bạn (VD: ngân hàng) portfolio.pending.step3_buyer.warn.part2=Người bán BTC vẫn chưa xác nhận thanh toán của bạn!\nHãy kiểm tra xem {0} việc gửi thanh toán đi đã thành công chưa.\nNếu người bán BTC không xác nhận là đã nhận thanh toán của bạn trước {1} giao dịch sẽ bị điều tra bởi trọng tài. portfolio.pending.step3_buyer.openForDispute=Người bán BTC vẫn chưa xác nhận thanh toán của bạn!\nThời gian tối đa cho giao dịch đã hết.\nBạn có thể đợi lâu hơn và cho đối tác giao dịch thêm thời gian hoặc liên hệ trọng tài để mở khiếu nại. # suppress inspection "TrailingSpacesInProperty" portfolio.pending.step3_seller.part=Đối tác giao dịch của bạn đã xác nhận rằng đã kích hoạt thanh toán {0}.\n\n -portfolio.pending.step3_seller.altcoin.explorer=on your favorite {0} blockchain explorer -portfolio.pending.step3_seller.altcoin.wallet=at your {0} wallet -portfolio.pending.step3_seller.altcoin={0}Please check {1} if the transaction to your receiving address\n{2}\nhas already sufficient blockchain confirmations.\nThe payment amount has to be {3}\n\nYou can copy & paste your {4} address from the main screen after closing that popup. +portfolio.pending.step3_seller.altcoin.explorer=Trên trình duyệt blockchain explorer {0} ưa thích của bạn +portfolio.pending.step3_seller.altcoin.wallet=Trên ví {0} của bạn +portfolio.pending.step3_seller.altcoin={0}Vui lòng kiểm tra {1} xem giao dịch tới địa chỉ nhận của bạn \n{2}\nđã nhận được đủ xác nhận blockchain hay chưa.\nSố tiền thanh toán phải là {3}\n\nBạn có thể copy & paste địa chỉ {4} của bạn từ màn hình chính sau khi đóng cửa sổ này. portfolio.pending.step3_seller.postal={0}Hãy kiểm tra xem bạn đã nhận được {1} \"Thư chuyển tiền US\" từ người mua BTC chưa.\n\nID giao dịch (nội dung \"lý do thanh toán\") của giao dịch là: \"{2}\" portfolio.pending.step3_seller.bank=Đối tác giao dịch của bạn đã xác nhận rằng đã kích hoạt thanh toán {0}.\n\nHãy truy cập trang web ngân hàng online và kiểm tra xem bạn đã nhận được {1} từ người mua BTC chưa.\n\nID giao dịch (\"lý do thanh toán\" text) của giao dịch là: \"{2}\" -portfolio.pending.step3_seller.cash=Because the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\nTo avoid chargeback risk, only confirm if you received the email and if you are sure the paper receipt is valid.\nIf you are not sure, {0} +portfolio.pending.step3_seller.cash=Vì thanh toán được thực hiện qua Tiền gửi tiền mặt nên người mua BTC phải viết rõ \"KHÔNG HOÀN LẠI\" trên giấy biên nhận, xé làm 2 phần và gửi ảnh cho bạn qua email.\n\nĐể tránh bị đòi tiền lại, chỉ xác nhận bạn đã nhận được email và bạn chắc chắn giấy biên nhận là có hiệu lực.\nNếu bạn không chắc chắn, {0} portfolio.pending.step3_seller.moneyGram=Người mua phải gửi mã số xác nhận và ảnh chụp của hoá đơn qua email.\nHoá đơn cần ghi rõ họ tên đầy đủ, quốc gia, tiêu bang và số lượng. Vui lòng kiểm tra email nếu bạn nhận được số xác thực.\n\nSau khi popup đóng, bạn sẽ thấy tên người mua BTC và địa chỉ để nhận tiền từ MoneyGram.\n\nChỉ xác nhận hoá đơn sau khi bạn hoàn thành việc nhận tiền. portfolio.pending.step3_seller.westernUnion=Người mua phải gửi cho bạn MTCN (số theo dõi) và ảnh giấy biên nhận qua email.\nGiấy biên nhận phải ghi rõ họ tên của bạn, thành phố, quốc gia và số tiền. Hãy kiểm tra email xem bạn đã nhận được MTCN chưa.\n\nSau khi đóng cửa sổ này, bạn sẽ thấy tên và địa chỉ của người mua BTC để nhận tiền từ Western Union.\n\nChỉ xác nhận giấy biên nhận sau khi bạn đã nhận tiền thành công! portfolio.pending.step3_seller.halCash=Người mua phải gửi mã HalCash cho bạn bằng tin nhắn. Ngoài ra, bạn sẽ nhận được một tin nhắn từ HalCash với thông tin cần thiết để rút EUR từ một máy ATM có hỗ trợ HalCash. \n\nSau khi nhận được tiền từ ATM vui lòng xác nhận lại biên lai thanh toán tại đây! @@ -571,11 +574,11 @@ portfolio.pending.step3_seller.halCash=Người mua phải gửi mã HalCash cho portfolio.pending.step3_seller.bankCheck=\n\nVui lòng kiểm tra tên người gửi trong sao kê của ngân hàng có trùng với tên trong Hợp đồng giao dịch không:\nTên người gửi: {0}\n\nNếu tên không trùng với tên hiển thị ở đây, {1} portfolio.pending.step3_seller.openDispute=vui lòng không xác nhận mà mở khiếu nại bằng cách nhập \"alt + o\" hoặc \"option + o\". portfolio.pending.step3_seller.confirmPaymentReceipt=Xác nhận đã nhận được thanh toán -portfolio.pending.step3_seller.amountToReceive=Amount to receive -portfolio.pending.step3_seller.yourAddress=Your {0} address -portfolio.pending.step3_seller.buyersAddress=Buyers {0} address -portfolio.pending.step3_seller.yourAccount=Your trading account -portfolio.pending.step3_seller.buyersAccount=Buyers trading account +portfolio.pending.step3_seller.amountToReceive=Số tiền nhận được +portfolio.pending.step3_seller.yourAddress=Địa chỉ {0} của bạn +portfolio.pending.step3_seller.buyersAddress=Địa chỉ {0} của người mua +portfolio.pending.step3_seller.yourAccount=tài khoản giao dịch của bạn +portfolio.pending.step3_seller.buyersAccount=tài khoản giao dịch của người mua portfolio.pending.step3_seller.confirmReceipt=Xác nhận đã nhận được thanh toán portfolio.pending.step3_seller.buyerStartedPayment=Người mua BTC đã bắt đầu thanh toán {0}.\n{1} portfolio.pending.step3_seller.buyerStartedPayment.altcoin=Kiểm tra xác nhận blockchain ở ví altcoin của bạn hoặc block explorer và xác nhận thanh toán nếu bạn nhận được đủ xác nhận blockchain. @@ -596,12 +599,12 @@ portfolio.pending.step3_seller.onPaymentReceived.confirm.yes=Vâng, tôi đã nh portfolio.pending.step5_buyer.groupTitle=Tóm tắt giao dịch đã hoàn thành portfolio.pending.step5_buyer.tradeFee=Phí giao dịch -portfolio.pending.step5_buyer.makersMiningFee=Mining fee -portfolio.pending.step5_buyer.takersMiningFee=Total mining fees -portfolio.pending.step5_buyer.refunded=Refunded security deposit +portfolio.pending.step5_buyer.makersMiningFee=Phí đào +portfolio.pending.step5_buyer.takersMiningFee=Tổng phí đào +portfolio.pending.step5_buyer.refunded=tiền gửi đặt cọc được hoàn lại portfolio.pending.step5_buyer.withdrawBTC=Rút bitcoin của bạn -portfolio.pending.step5_buyer.amount=Amount to withdraw -portfolio.pending.step5_buyer.withdrawToAddress=Withdraw to address +portfolio.pending.step5_buyer.amount=Số tiền được rút +portfolio.pending.step5_buyer.withdrawToAddress=rút tới địa chỉ portfolio.pending.step5_buyer.moveToBisqWallet=Chuyển tiền tới ví Bisq portfolio.pending.step5_buyer.withdrawExternal=rút tới ví ngoài portfolio.pending.step5_buyer.alreadyWithdrawn=Số tiền của bạn đã được rút.\nVui lòng kiểm tra lịch sử giao dịch. @@ -609,11 +612,11 @@ portfolio.pending.step5_buyer.confirmWithdrawal=Xác nhận yêu cầu rút portfolio.pending.step5_buyer.amountTooLow=Số tiền chuyển nhỏ hơn phí giao dịch và giá trị tx tối thiểu (dust). portfolio.pending.step5_buyer.withdrawalCompleted.headline=Rút hoàn tất portfolio.pending.step5_buyer.withdrawalCompleted.msg=Các giao dịch đã hoàn thành của bạn được lưu trong \"Portfolio/Lịch sử\".\nBạn có thể xem lại tất cả giao dịch bitcoin của bạn tại \"Vốn/Giao dịch\" -portfolio.pending.step5_buyer.bought=You have bought -portfolio.pending.step5_buyer.paid=You have paid +portfolio.pending.step5_buyer.bought=Bạn đã mua +portfolio.pending.step5_buyer.paid=Bạn đã thanh toán -portfolio.pending.step5_seller.sold=You have sold -portfolio.pending.step5_seller.received=You have received +portfolio.pending.step5_seller.sold=Bạn đã bán +portfolio.pending.step5_seller.received=Bạn đã nhận tradeFeedbackWindow.title=Chúc mừng giao dịch của bạn được hoàn thành. tradeFeedbackWindow.msg.part1=Chúng tôi rất vui lòng được nghe phản hồi của bạn. Điều đó sẽ giúp chúng tôi cải thiện phần mềm và hoàn thiện trải nghiệm người dùng. Nếu bạn muốn cung cấp phản hồi, vui lòng điền vào cuộc khảo sát ngắn dưới đây (không yêu cầu đăng nhập) ở: @@ -667,8 +670,8 @@ funds.deposit.usedInTx=Sử dụng trong {0} giao dịch funds.deposit.fundBisqWallet=Nộp tiền ví Bisq funds.deposit.noAddresses=Chưa có địa chỉ nộp tiền được tạo funds.deposit.fundWallet=Nộp tiền cho ví của bạn -funds.deposit.withdrawFromWallet=Send funds from wallet -funds.deposit.amount=Amount in BTC (optional) +funds.deposit.withdrawFromWallet=Chuyển tiền từ ví +funds.deposit.amount=Số tiền bằng BTC (tùy chọn) funds.deposit.generateAddress=Tạo địa chỉ mới funds.deposit.selectUnused=Vui lòng chọn địa chỉ chưa sử dụng từ bảng trên hơn là tạo một địa chỉ mới. @@ -680,8 +683,8 @@ funds.withdrawal.receiverAmount=Số tiền của người nhận funds.withdrawal.senderAmount=Số tiền của người gửi funds.withdrawal.feeExcluded=Số tiền không bao gồm phí đào funds.withdrawal.feeIncluded=Số tiền bao gồm phí đào -funds.withdrawal.fromLabel=Withdraw from address -funds.withdrawal.toLabel=Withdraw to address +funds.withdrawal.fromLabel=Rút từ địa chỉ +funds.withdrawal.toLabel=rút tới địa chỉ funds.withdrawal.withdrawButton=Rút được chọn funds.withdrawal.noFundsAvailable=Không còn tiền để rút funds.withdrawal.confirmWithdrawalRequest=Xác nhận yêu cầu rút @@ -703,7 +706,7 @@ funds.locked.locked=Khóa trong multisig để giao dịch với ID: {0} funds.tx.direction.sentTo=Gửi đến: funds.tx.direction.receivedWith=Nhận với: funds.tx.direction.genesisTx=Từ giao dịch gốc: -funds.tx.txFeePaymentForBsqTx=Miner fee for BSQ tx +funds.tx.txFeePaymentForBsqTx=Phí đào cho giao dịch BSQ funds.tx.createOfferFee=Người tạo và phí tx: {0} funds.tx.takeOfferFee=Người nhận và phí tx: {0} funds.tx.multiSigDeposit=Tiền gửi Multisig: {0} @@ -718,8 +721,8 @@ funds.tx.noTxAvailable=Không có giao dịch nào funds.tx.revert=Khôi phục funds.tx.txSent=GIao dịch đã gửi thành công tới địa chỉ mới trong ví Bisq nội bộ. funds.tx.direction.self=Gửi cho chính bạn -funds.tx.proposalTxFee=Miner fee for proposal -funds.tx.reimbursementRequestTxFee=Reimbursement request +funds.tx.daoTxFee=Phí đào cho giao dịch DAO +funds.tx.reimbursementRequestTxFee=Yêu cầu bồi hoàn funds.tx.compensationRequestTxFee=Yêu cầu bồi thường @@ -730,7 +733,7 @@ funds.tx.compensationRequestTxFee=Yêu cầu bồi thường support.tab.support=Đơn hỗ trợ support.tab.ArbitratorsSupportTickets=Đơn hỗ trợ của trọng tài support.tab.TradersSupportTickets=Đơn hỗ trợ của Thương gia -support.filter=Filter list +support.filter=Danh sách lọc support.noTickets=Không có đơn hỗ trợ được mở support.sendingMessage=Đang gửi tin nhắn... support.receiverNotOnline=Người nhận không online. Tin nhắn sẽ được lưu trong hộp thư của người nhận. @@ -762,9 +765,9 @@ support.buyerOfferer=Người mua BTC/Người tạo support.sellerOfferer=Người bán BTC/Người tạo support.buyerTaker=Người mua BTC/Người nhận support.sellerTaker=Người bán BTC/Người nhận -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=Lư ý các nguyên tắc cơ bản của quá trình khiếu nại:\n1. Bạn cần phải phản hồi các yêu cầu của trọng tài trong vòng 2 ngày.\n2. Thời gian khiếu nại tối đa là 14 ngày.\n3. Bạn cần phải đáp ứng các yêu cầu của trọng tài để thu thập bằng chứng cho vụ việc của bạn.\n4. Bạn chấp nhận các nguyên tắc liệt kê trong wiki trong thỏa thuận người sử dụng khi bạn bắt đầu sử dụng ứng dụng.\n\nPlease read more in detail about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=Tin nhắn hệ thống: {0} support.youOpenedTicket=Bạn đã mở yêu cầu hỗ trợ. support.youOpenedDispute=Bạn đã mở yêu cầu khiếu nại.\n\n{0} @@ -780,66 +783,66 @@ settings.tab.network=Thông tin mạng settings.tab.about=Về setting.preferences.general=Tham khảo chung -setting.preferences.explorer=Bitcoin block explorer -setting.preferences.deviation=Max. deviation from market price -setting.preferences.avoidStandbyMode=Avoid standby mode +setting.preferences.explorer=Trình duyệt Bitcoin block explorer +setting.preferences.deviation=Sai lệch tối đa so với giá thị trường +setting.preferences.avoidStandbyMode=Tránh để chế độ chờ setting.preferences.deviationToLarge=Giá trị không được phép lớn hơn {0}%. -setting.preferences.txFee=Withdrawal transaction fee (satoshis/byte) +setting.preferences.txFee=phí giao dịch rút (satoshis/byte) setting.preferences.useCustomValue=Sử dụng giá trị thông dụng setting.preferences.txFeeMin=phí giao dịch phải tối thiểu là {0} satoshis/byte setting.preferences.txFeeTooLarge=Giá trị nhập của bạn cao hơn giá trị hợp lý (>5000 satoshis/byte). phí giao dịch thường nằm trong phạm vi 50-400 satoshis/byte. -setting.preferences.ignorePeers=Ignore peers with onion address (comma sep.) -setting.preferences.refererId=Referral ID +setting.preferences.ignorePeers=Bỏ qua đối tác có địa chỉ onion (cách nhau bằng dấu phẩy) +setting.preferences.refererId=ID giới thiệu setting.preferences.refererId.prompt=tuỳ chọn ID giới thiệu setting.preferences.currenciesInList=Tiền tệ trong danh sách cung cấp giá thị trường -setting.preferences.prefCurrency=Preferred currency -setting.preferences.displayFiat=Display national currencies +setting.preferences.prefCurrency=Tiền tệ ưu tiên +setting.preferences.displayFiat=Hiển thị tiền tệ các nước setting.preferences.noFiat=Không có tiền tệ nước nào được chọn setting.preferences.cannotRemovePrefCurrency=Bạn không thể gỡ bỏ tiền tệ ưu tiên được chọn -setting.preferences.displayAltcoins=Display altcoins +setting.preferences.displayAltcoins=Hiển thị altcoin setting.preferences.noAltcoins=Không có altcoin nào được chọn setting.preferences.addFiat=Bổ sung tiền tệ các nước setting.preferences.addAltcoin=Bổ sung altcoin setting.preferences.displayOptions=Hiển thị các phương án -setting.preferences.showOwnOffers=Show my own offers in offer book -setting.preferences.useAnimations=Use animations -setting.preferences.sortWithNumOffers=Sort market lists with no. of offers/trades -setting.preferences.resetAllFlags=Reset all \"Don't show again\" flags +setting.preferences.showOwnOffers=Hiển thị Báo giá của tôi trong danh mục Báo giá +setting.preferences.useAnimations=Sử dụng hoạt ảnh +setting.preferences.sortWithNumOffers=Sắp xếp danh sách thị trường với số chào giá/giao dịch +setting.preferences.resetAllFlags=Cài đặt lại tất cả nhãn \"Không hiển thị lại\" setting.preferences.reset=Cài đặt lại settings.preferences.languageChange=Áp dụng thay đổi ngôn ngữ cho tất cả màn hình yêu cầu khởi động lại. settings.preferences.arbitrationLanguageWarning=Trong trường hợp có tranh chấp, xin lưu ý rằng việc xử lý tranh chấp sẽ được thực hiện bằng tiếng{0}. -settings.preferences.selectCurrencyNetwork=Select network -setting.preferences.daoOptions=DAO options -setting.preferences.dao.resync.label=Rebuild DAO state from genesis tx -setting.preferences.dao.resync.button=Resync -setting.preferences.dao.resync.popup=After an application restart the BSQ consensus state will be rebuilt from the genesis transaction. -setting.preferences.dao.isDaoFullNode=Run Bisq as DAO full node -setting.preferences.dao.rpcUser=RPC username -setting.preferences.dao.rpcPw=RPC password -setting.preferences.dao.fullNodeInfo=For running Bisq as DAO full node you need to have Bitcoin Core locally running and configured with RPC and other requirements which are documented in ''{0}''. -setting.preferences.dao.fullNodeInfo.ok=Open docs page -setting.preferences.dao.fullNodeInfo.cancel=No, I stick with lite node mode +settings.preferences.selectCurrencyNetwork=Chọn mạng +setting.preferences.daoOptions=Tùy chọn DAO +setting.preferences.dao.resync.label=Tái dựng trạng thái DAO từ giao dịch genesis +setting.preferences.dao.resync.button=Đồng bộ lại +setting.preferences.dao.resync.popup=Sau khi khởi động lại ứng dụng, trạng thái đồng bộ của BSQ sẽ được thành lập lại từ giao dịch genesis +setting.preferences.dao.isDaoFullNode=Chạy ứng dụng Bisq như một full node DAO +setting.preferences.dao.rpcUser=Tên người dùng RPC +setting.preferences.dao.rpcPw=Mật khẩu RPC +setting.preferences.dao.fullNodeInfo=Để chạy DAO full node trên Bisq, bạn cần phải chạy Bitcoin Core trên máy tính của mình và thiết lập cấu hình với RPC và các yêu cầu khác được nêu rõ tại ''{0}''. +setting.preferences.dao.fullNodeInfo.ok=Mở trang docs +setting.preferences.dao.fullNodeInfo.cancel=Không, tôi sẽ tiếp tục dùng chế độ lite node settings.net.btcHeader=Mạng Bitcoin settings.net.p2pHeader=Mạng P2P -settings.net.onionAddressLabel=My onion address +settings.net.onionAddressLabel=Địa chỉ onion của tôi settings.net.btcNodesLabel=Sử dụng nút Bitcoin Core thông dụng -settings.net.bitcoinPeersLabel=Connected peers -settings.net.useTorForBtcJLabel=Use Tor for Bitcoin network -settings.net.bitcoinNodesLabel=Bitcoin Core nodes to connect to +settings.net.bitcoinPeersLabel=Các đối tác được kết nối +settings.net.useTorForBtcJLabel=Sử dụng Tor cho mạng Bitcoin +settings.net.bitcoinNodesLabel=nút Bitcoin Core để kết nối settings.net.useProvidedNodesRadio=Sử dụng các nút Bitcoin Core đã cung cấp settings.net.usePublicNodesRadio=Sử dụng mạng Bitcoin công cộng settings.net.useCustomNodesRadio=Sử dụng nút Bitcoin Core thông dụng settings.net.warn.usePublicNodes=Nếu bạn sử dụng mạng Bitcoin công cộng, bạn có thể gặp vấn đề về quyền riêng tư do thiết kế bộ lọc bloom bị hư hỏng và quá trình thực hiện áp dụng cho ví SPV như BitcoinJ (sử dụng trong Bisq). Bất cứ nút nào mà bạn kết nối cũng có thể thấy địa chỉ ví của bạn thuộc về một tổ chức.\n\nVui lòng đọc thêm thông tin chi tiết tại: https://bisq.network/blog/privacy-in-bitsquare.\n\nBạn có chắc muốn sử dụng nút công cộng? settings.net.warn.usePublicNodes.useProvided=Không, sử dụng nút được cung cấp settings.net.warn.usePublicNodes.usePublic=Vâng, sử dụng nút công cộng -settings.net.warn.useCustomNodes.B2XWarning=Vui lòng chắc chắn rằng nút Bitcoin của bạn là nút Bitcoin Core đáng tin cậy!\n\nKết nối với nút không tuân thủ nguyên tắc đồng thuận Bitcoin Core có thể khóa ví của bạn và gây ra các vấn đề trong Quá trình giao dịch.\n\nNgười dùng kết nối với nút vi phạm nguyên tắc đồng thuận chịu trách nhiệm đối với các hư hỏng gây ra. Các khiếu nại do điều này gây ra sẽ được quyết định có lợi cho đối tác bên kia. Sẽ không có hỗ trợ về mặt kỹ thuật nào cho người dùng không tuân thủ cơ chế cảnh báo và bảo vệ của chúng tôi! -settings.net.localhostBtcNodeInfo=(Thông tin cơ sở: Nếu bạn đang chạy nút Bitcoin nội bộ (máy chủ nội bộ) bạn được kết nối độc quyền với nút này.) -settings.net.p2PPeersLabel=Connected peers +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) +settings.net.p2PPeersLabel=Các đối tác được kết nối settings.net.onionAddressColumn=Địa chỉ onion settings.net.creationDateColumn=Đã thiết lập settings.net.connectionTypeColumn=Vào/Ra -settings.net.totalTrafficLabel=Total traffic +settings.net.totalTrafficLabel=Tổng lưu lượng settings.net.roundTripTimeColumn=Khứ hồi settings.net.sentBytesColumn=Đã gửi settings.net.receivedBytesColumn=Đã nhận @@ -857,28 +860,28 @@ settings.net.inbound=chuyến về settings.net.outbound=chuyến đi settings.net.reSyncSPVChainLabel=Đồng bộ hóa lại SPV chain settings.net.reSyncSPVChainButton=Xóa file SPV và đồng bộ hóa lại -settings.net.reSyncSPVSuccess=SPV chain file sẽ được xóa ở lần khởi động sau. Bạn cần khởi động lại ứng dụng bây giờ.\n\nSau khi khởi động lại có thể mất một lúc để đồng bộ hóa với mạng và bạn chỉ xem được tất cả giao dịch khi đồng bộ hóa xong.\n\nVui lòng khởi động lại sau khi đã đồng bộ hóa xong vì đôi khi sẽ không nhất quán dẫn tới hiển thị số dư không đúng. -settings.net.reSyncSPVAfterRestart=SPV chain file Đã được xóa. Vui lòng bình tĩnh, có thể mất một lúc để đồng bộ hóa với mạng. +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=Đồng bộ hóa đã xong. Vui lòng khởi động lại ứng dụng. settings.net.reSyncSPVFailed=Không thể xóa SPV chain file.\nLỗi: {0} setting.about.aboutBisq=Về Bisq -setting.about.about=Bisq là một dự án nguồn mở và mạng lưới phân quyền của người dùng muốn trao đổi bitcoin với tiền tệ quốc gia hoặc tiền tệ mật mã thay thế theo phương thức bảo vệ quyền riêng tư. Vui lòng tìm hiểu thêm về Bisq trên trang web dự án của chúng tôi. +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Trang web Bisq setting.about.code=Mã nguồn setting.about.agpl=Giấy phép AGPL setting.about.support=Hỗ trợ Bisq -setting.about.def=Bisq không phải là một công ty mà là một dự án cộng đồng và mở tự do tham gia. Nếu bạn muốn tham gia hoặc hỗ trợ Bisq, vui lòng truy cập link dưới đây. +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=Góp vốn setting.about.donate=Tặng setting.about.providers=Nhà cung cấp dữ liệu setting.about.apisWithFee=Bisq sử dụng API bên thứ 3 để ước tính giá thị trường Fiat và Altcoin cũng như phí đào. setting.about.apis=Bisq sử dụng API bên thứ 3 để ước tính giá thị trường Fiat và Altcoin. -setting.about.pricesProvided=Market prices provided by +setting.about.pricesProvided=Giá thị trường cung cấp bởi setting.about.pricesProviders={0}, {1} và {2} -setting.about.feeEstimation.label=Mining fee estimation provided by +setting.about.feeEstimation.label=Ước tính phí đào cung cấp bởi setting.about.versionDetails=Thông tin về phiên bản -setting.about.version=Application version -setting.about.subsystems.label=Versions of subsystems +setting.about.version=Phiên bản ứng dụng +setting.about.subsystems.label=Các phiên bản của hệ thống con setting.about.subsystems.val=Phiên bản mạng: {0}; Phiên bản tin nhắn P2P: {1}; Phiên bản DB nội bộ: {2}; Phiên bản giao thức giao dịch: {3} @@ -889,7 +892,7 @@ setting.about.subsystems.val=Phiên bản mạng: {0}; Phiên bản tin nhắn P account.tab.arbitratorRegistration=Đăng ký trọng tài account.tab.account=Tài khoản account.info.headline=Chào mừng đến với tài khoản Bisq của bạn -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=Tài khoản tiền tệ quốc gia account.menu.altCoinsAccountView=Tài khoản Altcoin @@ -898,11 +901,11 @@ account.menu.seedWords=Mã sao lưu dự phòng ví account.menu.backup=Dự phòng account.menu.notifications=Thông báo -account.arbitratorRegistration.pubKey=Public key +account.arbitratorRegistration.pubKey=Public key (địa chỉ ví) account.arbitratorRegistration.register=Đăng ký trọng tài account.arbitratorRegistration.revoke=Hủy bỏ đăng ký -account.arbitratorRegistration.info.msg=Lưu ý rằng bạn cần phải luôn sẵn sàng trong 15 ngày sau khi hủy vì có thể có giao dịch mà bạn đóng vai trò là trọng tài. Thời gian cho phép tối đa cho giao dịch là 8 ngày và quá trình khiếu nại có thể mất 7 ngày. +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=Bạn cần cài đặt ít nhất 1 ngôn ngữ.\nChúng tôi thêm ngôn ngữ mặc định cho bạn. account.arbitratorRegistration.removedSuccess=Bạn đã gỡ bỏ thành công trọng tài của bạn ra khỏi mạng P2P. account.arbitratorRegistration.removedFailed=Không thể gỡ bỏ trọng tài.{0} @@ -920,22 +923,22 @@ account.arbitratorSelection.noMatchingLang=Ngôn ngữ không phù hợp. account.arbitratorSelection.noLang=Bạn chỉ có thể chọn trọng tài nói ít nhất 1 ngôn ngữ chung. account.arbitratorSelection.minOne=Bạn cần có ít nhất một trọng tài được chọn. -account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=Hãy chắc chắn bạn tuân thủ các yêu cầu để sử dụng ví {0} như quy định tại trang web {1}.\nSử dụng ví từ tổng đài giao dịch phân quyền nơi bạn không được kiểm soát khóa của bạn hoặc sử dụng phần mềm ví không tương thích có thể dẫn đến mất vốn đã giao dịch!\nTrọng tài không phải là một chuyên gia {2} và không thể giúp bạn trong trường hợp này. +account.altcoin.yourAltcoinAccounts=Tài khoản altcoin của bạn +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=Tôi hiểu và xác nhận rằng tôi đã biết loại ví mình cần sử dụng. -account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. -account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). +account.altcoin.popup.xmr.msg=Nếu bạn muốn giao dịch XMR trên Bisq, hãy chắc chắn bạn hiểu và tuân thủ các yêu cầu sau:\n\nĐể gửi XMR, bạn cần sử dụng hoặc là ví Monero GUI chính thức hoặc ví Monero CLI với nhãn luu-thongtin-tx được kích hoạt (mặc định trong phiên bản mới). Chắc chắn rằng bạn có thể truy cập khóa tx vì điều này là cần thiết trong trường hợp khiếu nại.\nví-monero-cli (dùng lệnh get_tx_key) \nví-monero-gui (đi đến tab lịch sử và nhấp vào nút (P) để lấy bằng chứng thanh toán)\n\nNgoài công cụ kiểm tra giao dịch XMR (https://xmr.llcoins.net/checktx.html) việc xác minh cũng có thể được thực hiện ngay trên ví.\nví-monero-cli: dùng lệnh (check_tx_key).\nví-monero-gui: ở trên Nâng cao>trang Chứng minh/Kiểm tra.\nVới những block explorer thông thường, chuyển khoản không thể xác minh được.\n\nBạn cần cung cấp cho trọng tài các dữ liệu sau trong trường hợp khiếu nại:\n- Khóa tx riêng\n- Hash của giao dịch\n- Địa chỉ công cộng của người nhận\n\nNếu bạn không thể cung cấp các dữ liệu trên hoặc nếu bạn sử dụng ví không thích hợp sẽ dẫn tới thua trong vụ khiếu nại. Người gửi XMR chịu trách nhiệm xác minh chuyển khoản XMR cho trọng tài trong trường hợp khiếu nại.\n\nKhông có ID thanh toán cầu thiết, chỉ là địa chỉ công cộng thông thường.\nNếu bạn không chắc chắn về quá trình, truy cập (https://www.getmonero.org/resources/user-guides/prove-payment.html) hoặc diễn đàn Monero (https://forum.getmonero.org) để tìm thêm thông tin. +account.altcoin.popup.blur.msg=Nếu bạn muốn giao dịch BLUR trên Bisq, hãy chắc chắn bạn hiểu và tuân thủ các yêu cầu sau:\n\nĐể gửi BLUR, bạn cần sử dụng ví CLI hoặc GUI của mạng BLUR. \n\nNếu bạn sử dụng ví CLI, sau khi chuyển tiền, ví sẽ hiển thị một mã giao dịch (tx ID). Bạn phải lưu thông tin này lại. Ngay sau khi chuyển tiền, bạn phải dùng lệnh 'get_tx_key' để lấy khóa riêng của giao dịch. Nếu bạn không thực hiện bước này, rất có thể sau này bạn sẽ không lấy được khóa giao dịch nữa. \n\nNếu bạn sử dụng ví GUI của mạng BLUR, khóa riêng giao dịch và tx ID sẽ được hiển thị ngay trên tab "Lịch sử". Ngay sau khi chuyển tiền, xác định vị trí của giao dịch mà bạn quan tâm. Nhấp chuột vào biểu tượng "?" ở góc phải bên dưới của hộp chứa giao dịch. Bạn cần phải lưu thông tin này lại. \n\nTrường hợp tranh chấp, bạn phải đưa ra cho trọng tài những thông tin sau:1.) mã giao dịch, 2.) khóa riêng của giao dịch, 3.) địa chỉ ví của người nhận. Trọng tài lúc đó sẽ sử dụng Blur Transaction Viewer (https://blur.cash/#tx-viewer) để xác minh giao dịch chuyển BLUR .\n\nNếu bạn không thể cung cấp các thông tin yêu cầu, bạn sẽ thua trong lần tranh chấp này. Trong tất cả mọi trường hợp tranh chấp, người chuyển BLUR chịu 100% trách nhiệm xác minh giao dịch với trọng tài.\n\nNếu bạn vẫn chưa hiểu rõ về những yêu cầu này, vui lòng vào Discord của BLUR (https://discord.gg/dMWaqVW) để được hỗ trợ. account.altcoin.popup.ccx.msg=Nếu bạn muốn giao dịch CCX trên Bisq, hãy chắc chắn bạn hiểu các yêu cầu sau:\n\nĐể gửi CCX, bạn cần phải sử dụng ví chính thức của Conceal, ví CLI hay GUI đều được. Sau khi chuyển tiền, ví \nsẽ hiển thị khóa bí mật của giao dịch. Bạn phải lưu khóa bí mật này lại cùng với mã giao dịch (tx ID) và địa chỉ ví công khai \ncủa người nhận phòng khi có tranh chấp. Trường hợp có tranh chấp, bạn phải cung cấp cả ba thông tin này cho trọng tài , sau đó trọng tài sẽ dùng Conceal Transaction Viewer \n(https://explorer.conceal.network/txviewer).\nVì Conceal là một đồng coin riêng tư, nên các trang dò khối sẽ không thể xác minh giao dịch chuyển tiền.\n\nNếu bạn không thể cung cấp các thông tin yêu cầu cho trọng tài, bạn sẽ thua trong lần tranh chấp này.\nNếu bạn không lưu lại khóa giao dịch bí mật ngay sau khi thực hiện chuyển CCX, sau này bạn sẽ không lấy lại được nữa.\nNếu bạn vẫn chưa hiểu rõ về những yêu cầu này, vui lòng vào Discord của Conceal (http://discord.conceal.network) để được hỗ trợ. -account.altcoin.popup.drgl.msg=Trading Dragonglass on Bisq requires that you understand and fulfill the following requirements:\n\nBecause of the privacy Dragonglass provides a transaction is not verifyable on the public blockchain. If required you can prove your payment thru use of your TXN-Private-Key.\nThe TXN-Private Key is a one-time key automatically generated for every transaction that can only be accessed from within your DRGL wallet.\nEither by DRGL-wallet GUI (inside transaction details dialog) or by the Dragonglass CLI simplewallet (using command "get_tx_key").\n\nDRGL version 'Oathkeeper' and higher are REQUIRED for both.\n\nIn case of a dispute, you must provide the arbitrator the following data:\n- The TXN-Private key\n- The transaction hash\n- The recipient's public address\n\nVerification of payment can be made using the above data as inputs at \ (http://drgl.info/#check_txn).\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the arbitrator in case of a dispute. Use of PaymentID is not required.\n\nIf you are unsure about any part of this process, visit Dragonglass on Discord (http://discord.drgl.info) for help. +account.altcoin.popup.drgl.msg=Để giao dịch Dragonglass trên Bisq, bạn cần phải hiểu và tuân thủ các yêu cầu sau:\n\nĐể đảm bảo tính riêng tư, những giao dịch do Dragonglass cung cấp không thể xác minh bằng blockchain công cộng. Nếu được yêu cầu, bạn có thể chứng minh giao dịch thanh toán của bạn bằng cách sử dụng khóa-riêng-TXN.\nKhóa riêng-TXN là khóa dùng một lần được tạo tự động cho mỗi giao dịch và chỉ có thể truy cập thông qua ví DRGL của bạn. \nDù là giao dịch được thực hiện trên ví DRGL GUI (trong hội thoại chi tiết giao dịch) hay bằng ví giản đơn Dragonglass CLI (dùng lệnh "get_tx_key"), thì đều cần phải có phiên bản Dragonglass 'Oathkeeper' hoặc cao hơn.\n\nTrường hợp tranh chấp, bạn cần phải cung cấp cho trọng tài những dữ liệu sau:\n- Khóa riêng-TXN\n- Mã giao dịch\n- Địa chỉ công cộng của người nhận\n\nViệc xác minh có thể được thực hiện bằng cách sử dụng những thông tin ở trên làm dữ liệu nhập tại \(http://drgl.info/#check_txn).\n\nNếu bạn không cung cấp được các thông tin trên, hoặc nếu bạn sử dụng một ví không hợp lệ, điều này có thể khiến bạn thua trong lần tranh chấp này. Người gửi Dragonglass chịu trách nhiệm xác minh giao dịch chuyển DRGL cho trọng tài trong trường hợp có tranh chấp. Việc sử dụng PaymentID không được yêu cầu. \n\nNếu như bạn vẫn chưa chắc chắn về bất cứ phần nào trong quá trình này,liên hệ Dragonglass trên Discord (http://discord.drgl.info) để được hỗ trợ. account.altcoin.popup.ZEC.msg=Khi sử dụng {0} bạn chỉ có thể sử dụng địa chỉ rõ ràng (bắt đầu bằng t) không phải địa chỉ z (riêng tư), vì trọng tài sẽ không thể xác minh giao dịch với địa chỉ z. account.altcoin.popup.XZC.msg=Khi sử dụng {0} bạn chỉ có thể sử dụng địa chỉ rõ ràng (có thể theo dõi) chứ không phải địa chỉ không thể theo dõi, vì trọng tài không thể xác minh giao dịch với địa chỉ không thể theo dõi tại một block explorer. account.altcoin.popup.bch=Bitcoin Cash và Bitcoin Clashic được bảo vệ không chào lại. Nếu bạn sử dụng các coin này, phải chắc chắn bạn đã thực hiện đủ biện pháp phòng ngừa và hiểu rõ tất cả nội dung. Bạn có thể bị mất khi gửi một coin và vô tình gửi coin như vậy cho block chain khác. Do các "airdrop coins" này có cùng lịch sử với Bitcoin blockchain do đó có một số nguy cơ mất an toàn và quyền riêng tư.\n\nVui lòng đọc tại diễn đàn Bisq để biết thêm về chủ đề này: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc account.altcoin.popup.btg=Do Bitcoin Gold có cùng lịch sử với Bitcoin blockchain nên có nguy cơ mất bảo mật và quyền riêng tư. Nếu bạn sử dụng Bitcoin Gold chắc chắn bạn đã thực hiện đủ biện pháp phòng ngừa và hiểu rõ tất cả nội dung.\n\nVui lòng đọc tại Diễn đàn Bisq để biết thêm về chủ đề này: https://forum.bisq.io/t/airdrop-coins-information-thread-bch-btg-bchc -account.fiat.yourFiatAccounts=Your national currency accounts +account.fiat.yourFiatAccounts=Các tài khoản tiền tệ quốc gia của bạn account.backup.title=Ví dự phòng -account.backup.location=Backup location +account.backup.location=Vị trí sao lưu account.backup.selectLocation=Chọn vị trí dự phòng account.backup.backupNow=Dự phòng bây giờ (dự phòng không được mã hóa!) account.backup.appDir=Thư mục dữ liệu ứng dụng @@ -949,14 +952,14 @@ account.password.removePw.button=Gỡ bỏ mật khẩu account.password.removePw.headline=Gỡ bỏ bảo vệ mật khẩu cho ví account.password.setPw.button=Cài đặt mật khẩu account.password.setPw.headline=Cài đặt bảo vệ mật khẩu cho ví -account.password.info=Bằng cách bảo vệ với mật khẩu, bạn cần nhập mật khẩu khi rút bitcoin ra khỏi ví hoặc nếu bạn muốn xem hoặc khôi phục ví từ các từ khởi tạo cũng như khi khởi động ứng dụng. +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=Sao lưu dự phòng từ khởi tạo ví của bạn -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=Bạn đã tạo mật khẩu ví để bảo vệ tránh hiển thị Seed words.\n\nBạn có muốn hiển thị Seed words? account.seed.warn.noPw.yes=Có và không hỏi lại account.seed.enterPw=Nhập mật khẩu để xem seed words -account.seed.restore.info=Lưu ý rằng bạn có thể nhập ví từ phiên bản Bisq cũ (bất cứ phiên bản nào trước 0.5.0), vì định dạng ví đã thay đổi!\n\nNếu bạn muốn chuyển vốn từ phiên bản cũ đến ứng dụng Bisq, gửi cùng với giao dịch bitcoin.\n\nPhải hiểu rằng chỉ khôi phục ví trong trường hợp khẩn cấp và có thể gây sự cố với cơ sở dữ liệu ví bên trong.\nĐây không phải là một cách sao lưu dự phòng! Vui lòng sử dụng sao lưu dự phòng từ thư mục dữ liệu của ứng dụng để khôi phục trạng thái ban đầu của ứng dụng. +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=Ok, tôi hiểu và muốn khôi phục @@ -972,17 +975,17 @@ account.notifications.webCamWindow.headline=Quét mã QR từ điện thoại account.notifications.webcam.label=Dùng webcam account.notifications.webcam.button=Quét mã QR account.notifications.noWebcam.button=Tôi không có webcam -account.notifications.testMsg.label=Send test notification +account.notifications.testMsg.label=Gửi thông báo kiểm tra account.notifications.testMsg.title=Kiểm tra -account.notifications.erase.label=Clear notifications on phone +account.notifications.erase.label=xóa thông báo trên điện thoại account.notifications.erase.title=Xóa thông báo -account.notifications.email.label=Pairing token +account.notifications.email.label=Mã tài sản đảm bảo account.notifications.email.prompt=Nhập mã tài sản đảm bảo bạn nhận được từ email account.notifications.settings.title=Cài đặt -account.notifications.useSound.label=Play notification sound on phone -account.notifications.trade.label=Receive trade messages -account.notifications.market.label=Receive offer alerts -account.notifications.price.label=Receive price alerts +account.notifications.useSound.label=Bật âm thanh thông báo trên điện thoại +account.notifications.trade.label=Nhận tin nhắn giao dịch +account.notifications.market.label=Nhận thông báo chào hàng +account.notifications.price.label=Nhận thông báo về giá account.notifications.priceAlert.title=Thông báo về giá account.notifications.priceAlert.high.label=Thông báo nếu giá BTC cao hơn account.notifications.priceAlert.low.label=Thông báo nếu giá BTC thấp hơn @@ -1033,13 +1036,13 @@ account.notifications.priceAlert.warning.lowerPriceTooHigh=Giá thấp hơn ph dao.tab.bsqWallet=Ví BSQ dao.tab.proposals=Đề xuất dao.tab.bonding=Tài sản đảm bảo -dao.tab.proofOfBurn=Asset listing fee/Proof of burn +dao.tab.proofOfBurn=Phí niêm yết tài sản/ Bằng chứng đốt dao.paidWithBsq=thanh toán bằng BSQ -dao.availableBsqBalance=Available -dao.availableNonBsqBalance=Available non-BSQ balance (BTC) -dao.unverifiedBsqBalance=Unverified (awaiting block confirmation) -dao.lockedForVoteBalance=Used for voting +dao.availableBsqBalance=Hiện có +dao.availableNonBsqBalance=Số dư không phải BSQ có sẵn (tính bằng BTC) +dao.unverifiedBsqBalance=Chưa xác minh(đang đợi xác nhận blockchain) +dao.lockedForVoteBalance=Dùng để bỏ phiếu dao.lockedInBonds=Bị khóa trong hợp đồng dao.totalBsqBalance=Tổng số dư BSQ @@ -1050,13 +1053,13 @@ dao.proposal.menuItem.vote=Bỏ phiếu chọn đề xuất dao.proposal.menuItem.result=Kết quả bỏ phiếu dao.cycle.headline=Vòng bỏ phiếu dao.cycle.overview.headline=Tổng quan vòng bỏ phiếu -dao.cycle.currentPhase=Current phase -dao.cycle.currentBlockHeight=Current block height +dao.cycle.currentPhase=Giai đoạn hiện tại +dao.cycle.currentBlockHeight=Chiều cao khối hiện tại dao.cycle.proposal=Giai đoạn đề xuất dao.cycle.blindVote=Mở để bỏ phiếu dao.cycle.voteReveal=Mở để công khai khóa bỏ phiếu dao.cycle.voteResult=Kết quả bỏ phiếu -dao.cycle.phaseDuration={0} blocks (≈{1}); Block {2} - {3} (≈{4} - ≈{5}) +dao.cycle.phaseDuration={0} khối(≈{1}); Khối{2} - {3} (≈{4} - ≈{5}) dao.results.cycles.header=Các vòng dao.results.cycles.table.header.cycle=Vòng @@ -1079,77 +1082,77 @@ dao.results.proposals.voting.detail.header=Kết quả của đề xuất đư dao.param.UNDEFINED=Không xác định # suppress inspection "UnusedProperty" -dao.param.DEFAULT_MAKER_FEE_BSQ=BSQ maker fee +dao.param.DEFAULT_MAKER_FEE_BSQ=Phí maker BSQ # suppress inspection "UnusedProperty" -dao.param.DEFAULT_TAKER_FEE_BSQ=BSQ taker fee +dao.param.DEFAULT_TAKER_FEE_BSQ=Phí taker BSQ # suppress inspection "UnusedProperty" -dao.param.MIN_MAKER_FEE_BSQ=Min. BSQ maker fee +dao.param.MIN_MAKER_FEE_BSQ=Phí maker BSQ tối thiểu # suppress inspection "UnusedProperty" -dao.param.MIN_TAKER_FEE_BSQ=Min. BSQ taker fee +dao.param.MIN_TAKER_FEE_BSQ=Phí taker BSQ tối thiểu # suppress inspection "UnusedProperty" -dao.param.DEFAULT_MAKER_FEE_BTC=BTC maker fee +dao.param.DEFAULT_MAKER_FEE_BTC=Phí maker BTC # suppress inspection "UnusedProperty" -dao.param.DEFAULT_TAKER_FEE_BTC=BTC taker fee +dao.param.DEFAULT_TAKER_FEE_BTC=Phí taker BTC # suppress inspection "UnusedProperty" # suppress inspection "UnusedProperty" -dao.param.MIN_MAKER_FEE_BTC=Min. BTC maker fee +dao.param.MIN_MAKER_FEE_BTC=Phí maker BTC tối thiểu # suppress inspection "UnusedProperty" -dao.param.MIN_TAKER_FEE_BTC=Min. BTC taker fee +dao.param.MIN_TAKER_FEE_BTC=Phí taker BTC tối thiểu # suppress inspection "UnusedProperty" # suppress inspection "UnusedProperty" -dao.param.PROPOSAL_FEE=Proposal fee in BSQ +dao.param.PROPOSAL_FEE=Phí đề xuất tính bằng BSQ # suppress inspection "UnusedProperty" -dao.param.BLIND_VOTE_FEE=Voting fee in BSQ +dao.param.BLIND_VOTE_FEE=Phí bỏ phiếu tính bằng BSQ # suppress inspection "UnusedProperty" -dao.param.COMPENSATION_REQUEST_MIN_AMOUNT=Compensation request min. BSQ amount +dao.param.COMPENSATION_REQUEST_MIN_AMOUNT=Lượng BSQ yêu cầu bồi thường tối thiểu # suppress inspection "UnusedProperty" -dao.param.COMPENSATION_REQUEST_MAX_AMOUNT=Compensation request max. BSQ amount +dao.param.COMPENSATION_REQUEST_MAX_AMOUNT=Lượng BSQ yêu cầu bồi thường tối đa # suppress inspection "UnusedProperty" -dao.param.REIMBURSEMENT_MIN_AMOUNT=Reimbursement request min. BSQ amount +dao.param.REIMBURSEMENT_MIN_AMOUNT=Lượng BSQ yêu cầu bồi hoàn tối thiểu # suppress inspection "UnusedProperty" -dao.param.REIMBURSEMENT_MAX_AMOUNT=Reimbursement request max. BSQ amount +dao.param.REIMBURSEMENT_MAX_AMOUNT=Lượng BSQ yêu cầu bồi hoàn tối đa # suppress inspection "UnusedProperty" -dao.param.QUORUM_GENERIC=Required quorum in BSQ for generic proposal +dao.param.QUORUM_GENERIC=Số đại biểu tính theo BSQ cần cho một đề xuất chung # suppress inspection "UnusedProperty" -dao.param.QUORUM_COMP_REQUEST=Required quorum in BSQ for compensation request +dao.param.QUORUM_COMP_REQUEST=Số đại biểu tính theo BSQ cần cho một yêu cầu bồi thường # suppress inspection "UnusedProperty" -dao.param.QUORUM_REIMBURSEMENT=Required quorum in BSQ for reimbursement request +dao.param.QUORUM_REIMBURSEMENT=Số đại biểu tính theo BSQ cần cho một yêu cầu bồi hoàn # suppress inspection "UnusedProperty" -dao.param.QUORUM_CHANGE_PARAM=Required quorum in BSQ for changing a parameter +dao.param.QUORUM_CHANGE_PARAM=Số đại biểu tính theo BSQ cần để thay đổi một thông số # suppress inspection "UnusedProperty" -dao.param.QUORUM_REMOVE_ASSET=Required quorum in BSQ for removing an asset +dao.param.QUORUM_REMOVE_ASSET=Số đại biểu tính theo BSQ cần để gỡ bỏ một tài sản # suppress inspection "UnusedProperty" -dao.param.QUORUM_CONFISCATION=Required quorum in BSQ for a confiscation request +dao.param.QUORUM_CONFISCATION=Số đại biểu tính theo BSQ cần cho một yêu cầu tịch thu # suppress inspection "UnusedProperty" -dao.param.QUORUM_ROLE=Required quorum in BSQ for bonded role requests +dao.param.QUORUM_ROLE=Số đại biểu tính theo BSQ cần cho những yêu cầu về vai trò đảm bảo # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_GENERIC=Required threshold in % for generic proposal +dao.param.THRESHOLD_GENERIC=Ngưỡng cần thiết tính theo % cho một yêu cầu chung # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_COMP_REQUEST=Required threshold in % for compensation request +dao.param.THRESHOLD_COMP_REQUEST=Ngưỡng cần thiết tính theo % cho một yêu cầu bồi thường # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_REIMBURSEMENT=Required threshold in % for reimbursement request +dao.param.THRESHOLD_REIMBURSEMENT=Ngưỡng cần thiết tính theo % cho một yêu cầu bồi hoàn # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_CHANGE_PARAM=Required threshold in % for changing a parameter +dao.param.THRESHOLD_CHANGE_PARAM=Ngưỡng cần thiết tính theo % để thay đổi một thông số # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_REMOVE_ASSET=Required threshold in % for removing an asset +dao.param.THRESHOLD_REMOVE_ASSET=Ngưỡng cần thiết tính theo % để gỡ bỏ một tài sản # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_CONFISCATION=Required threshold in % for a confiscation request +dao.param.THRESHOLD_CONFISCATION=Ngưỡng cần thiết tính theo % cho một yêu cầu tịch thu # suppress inspection "UnusedProperty" -dao.param.THRESHOLD_ROLE=Required threshold in % for bonded role requests +dao.param.THRESHOLD_ROLE=Ngưỡng cần thiết tính theo % cho các yêu cầu về vai trò đảm bảo # suppress inspection "UnusedProperty" -dao.param.RECIPIENT_BTC_ADDRESS=Recipient BTC address +dao.param.RECIPIENT_BTC_ADDRESS=Địa chỉ BTC của người nhận # suppress inspection "UnusedProperty" -dao.param.ASSET_LISTING_FEE_PER_DAY=Asset listing fee per day +dao.param.ASSET_LISTING_FEE_PER_DAY=Phí niêm yết tài sản/ ngày # suppress inspection "UnusedProperty" -dao.param.ASSET_MIN_VOLUME=Min. trade volume +dao.param.ASSET_MIN_VOLUME=Khối lượng giao dịch tối thiểu -dao.param.currentValue=Current value: {0} +dao.param.currentValue=Giá trị hiện tại: {0} dao.param.blocks={0} khối # suppress inspection "UnusedProperty" @@ -1185,16 +1188,16 @@ dao.results.votes.table.header.vote=Bỏ phiếu dao.bond.menuItem.bondedRoles=Vai trò được đảm bảo dao.bond.menuItem.reputation=Danh tiếng tài sản đảm bảo -dao.bond.menuItem.bonds=Bonds +dao.bond.menuItem.bonds=Tài sản đảm bảo dao.bond.dashboard.bondsHeadline=Tài sản đảm bảo BSQ -dao.bond.dashboard.lockupAmount=Lockup funds -dao.bond.dashboard.unlockingAmount=Unlocking funds (wait until lock time is over) +dao.bond.dashboard.lockupAmount=Quỹ khóa +dao.bond.dashboard.unlockingAmount=Quỹ đang mở khóa (chờ tới hết thời gian khóa) -dao.bond.reputation.header=Lockup a bond for reputation -dao.bond.reputation.table.header=My reputation bonds -dao.bond.reputation.amount=Amount of BSQ to lockup +dao.bond.reputation.header=Khóa tài sản để tạo danh tiếng +dao.bond.reputation.table.header=Tài sản đảm bảo danh tiếng của tôi +dao.bond.reputation.amount=Lượng BSQ để khóa dao.bond.reputation.time=Thời gian mở khóa tính bằng khối dao.bond.reputation.salt=Salt dao.bond.reputation.hash=Hash @@ -1204,9 +1207,9 @@ dao.bond.reputation.lockup.details=Số lượng khóa: {0}\nThời gian khóa: dao.bond.reputation.unlock.headline=Xác nhận giao dịch mở khóa dao.bond.reputation.unlock.details=Số lượng mở khóa: {0}\nThời gian mở khóa: {1} khối\n\nBạn có thực sự muốn tiếp tục? -dao.bond.allBonds.header=All bonds +dao.bond.allBonds.header=Tất cả cách tài sản đảm bảo -dao.bond.bondedReputation=Bonded Reputation +dao.bond.bondedReputation=Danh tiếng được đảm bảo bằng tài sản dao.bond.bondedRoles=Vai trò được đảm bảo dao.bond.details.header=Chi tiết về vai trò @@ -1219,12 +1222,12 @@ dao.bond.details.blocks={0} khối dao.bond.table.column.name=Tên dao.bond.table.column.link=đường dẫn -dao.bond.table.column.bondType=Bond type +dao.bond.table.column.bondType=Loại tài sản đảm bảo dao.bond.table.column.details=Thông tin chi tiết dao.bond.table.column.lockupTxId=Mã giao dịch khóa dao.bond.table.column.bondState=Trạng thái tài sản đảm bảo dao.bond.table.column.lockTime=Thời gian khóa -dao.bond.table.column.lockupDate=Lockup date +dao.bond.table.column.lockupDate=Ngày khóa dao.bond.table.button.lockup=Khóa dao.bond.table.button.unlock=Mở khóa @@ -1233,19 +1236,19 @@ dao.bond.table.button.revoke=Hủy # suppress inspection "UnusedProperty" dao.bond.bondState.READY_FOR_LOCKUP=Chưa có tài sản đảm bảo # suppress inspection "UnusedProperty" -dao.bond.bondState.LOCKUP_TX_PENDING=Lockup pending +dao.bond.bondState.LOCKUP_TX_PENDING=Chờ khóa # suppress inspection "UnusedProperty" dao.bond.bondState.LOCKUP_TX_CONFIRMED=Tài sản đảm bảo đã khóa # suppress inspection "UnusedProperty" -dao.bond.bondState.UNLOCK_TX_PENDING=Unlock pending +dao.bond.bondState.UNLOCK_TX_PENDING=Chờ mở khóa # suppress inspection "UnusedProperty" -dao.bond.bondState.UNLOCK_TX_CONFIRMED=Unlock tx confirmed +dao.bond.bondState.UNLOCK_TX_CONFIRMED=Giao dịch mở khóa đã xác nhận # suppress inspection "UnusedProperty" dao.bond.bondState.UNLOCKING=Tài sản đảm bảo đang mở khóa # suppress inspection "UnusedProperty" dao.bond.bondState.UNLOCKED=Tài sản đảm bảo đã mở khóa # suppress inspection "UnusedProperty" -dao.bond.bondState.CONFISCATED=Bond confiscated +dao.bond.bondState.CONFISCATED=Tài sản đảm bảo đã bị tịch thu # suppress inspection "UnusedProperty" dao.bond.lockupReason.BONDED_ROLE=Vai trò đảm bảo @@ -1253,89 +1256,89 @@ dao.bond.lockupReason.BONDED_ROLE=Vai trò đảm bảo dao.bond.lockupReason.REPUTATION=Danh tiếng tài sản đảm bảo # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.GITHUB_ADMIN=Github admin +dao.bond.bondedRoleType.GITHUB_ADMIN=Quản trị Github # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.FORUM_ADMIN=Forum admin +dao.bond.bondedRoleType.FORUM_ADMIN=Quản trị diễn đàn # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.TWITTER_ADMIN=Twitter admin +dao.bond.bondedRoleType.TWITTER_ADMIN=Quản trị Twitter # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.ROCKET_CHAT_ADMIN=Rocket chat admin +dao.bond.bondedRoleType.ROCKET_CHAT_ADMIN=Quản trị Rocket chat # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.YOUTUBE_ADMIN=Youtube admin +dao.bond.bondedRoleType.YOUTUBE_ADMIN=Quản trị Youtube # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.BISQ_MAINTAINER=Bisq maintainer +dao.bond.bondedRoleType.BISQ_MAINTAINER=Nhân viên bảo trì Bisq # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.WEBSITE_OPERATOR=Website operator +dao.bond.bondedRoleType.WEBSITE_OPERATOR=Điều hành website # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.FORUM_OPERATOR=Forum operator +dao.bond.bondedRoleType.FORUM_OPERATOR=Điều hành diễn đàn # suppress inspection "UnusedProperty" dao.bond.bondedRoleType.SEED_NODE_OPERATOR=Người chạy seed node # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.PRICE_NODE_OPERATOR=Price node operator +dao.bond.bondedRoleType.PRICE_NODE_OPERATOR=Điều hành giá node # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.BTC_NODE_OPERATOR=Btc node operator +dao.bond.bondedRoleType.BTC_NODE_OPERATOR=Điều hành node btc # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.MARKETS_OPERATOR=Markets operator +dao.bond.bondedRoleType.MARKETS_OPERATOR=Điều hành thị trường # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.BSQ_EXPLORER_OPERATOR=BSQ explorer operator +dao.bond.bondedRoleType.BSQ_EXPLORER_OPERATOR=Điều hành QSQ explorer # suppress inspection "UnusedProperty" dao.bond.bondedRoleType.DOMAIN_NAME_HOLDER=Người giữ tên miền # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.DNS_ADMIN=DNS admin +dao.bond.bondedRoleType.DNS_ADMIN=Quản trị DNS # suppress inspection "UnusedProperty" -dao.bond.bondedRoleType.MEDIATOR=Mediator +dao.bond.bondedRoleType.MEDIATOR=Người hòa giải # suppress inspection "UnusedProperty" dao.bond.bondedRoleType.ARBITRATOR=Trọng tài -dao.burnBsq.assetFee=Asset listing fee -dao.burnBsq.menuItem.assetFee=Asset listing fee -dao.burnBsq.menuItem.proofOfBurn=Proof of burn -dao.burnBsq.header=Fee for asset listing -dao.burnBsq.selectAsset=Select Asset -dao.burnBsq.fee=Fee -dao.burnBsq.trialPeriod=Trial period -dao.burnBsq.payFee=Pay fee -dao.burnBsq.allAssets=All assets -dao.burnBsq.assets.nameAndCode=Asset name +dao.burnBsq.assetFee=Phí niêm yết tài sản +dao.burnBsq.menuItem.assetFee=Phí niêm yết tài sản +dao.burnBsq.menuItem.proofOfBurn=Bằng chứng đốt +dao.burnBsq.header=Phí để niêm yết tài sản +dao.burnBsq.selectAsset=Chọn tài sản +dao.burnBsq.fee=Phí +dao.burnBsq.trialPeriod=Giai đoạn dùng thử +dao.burnBsq.payFee=Trả phí +dao.burnBsq.allAssets=Tất cả tài sản +dao.burnBsq.assets.nameAndCode=Tên tài sản dao.burnBsq.assets.state=Trạng thái dao.burnBsq.assets.tradeVolume=Khối lượng giao dịch -dao.burnBsq.assets.lookBackPeriod=Verification period -dao.burnBsq.assets.trialFee=Fee for trial period -dao.burnBsq.assets.totalFee=Total fees paid -dao.burnBsq.assets.days={0} days -dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial perios is {0}. +dao.burnBsq.assets.lookBackPeriod=Giai đoạn xác minh +dao.burnBsq.assets.trialFee=Phí cho giai đoạn dùng thử +dao.burnBsq.assets.totalFee=Tổng số phí đã trả +dao.burnBsq.assets.days={0} ngày +dao.burnBsq.assets.toFewDays=Phí tài sản quá thấp. Số ngày tối thiểu cho giai đoạn dùng thử là {0}. # suppress inspection "UnusedProperty" dao.assetState.UNDEFINED=Không xác định # suppress inspection "UnusedProperty" -dao.assetState.IN_TRIAL_PERIOD=In trial period +dao.assetState.IN_TRIAL_PERIOD=Đang trong giai đoạn dùng thử # suppress inspection "UnusedProperty" -dao.assetState.ACTIVELY_TRADED=Actively traded +dao.assetState.ACTIVELY_TRADED=Đang được giao dịch tích cực # suppress inspection "UnusedProperty" -dao.assetState.DE_LISTED=De-listed due to inactivity +dao.assetState.DE_LISTED=Bị gỡ bỏ vì ít hoạt động # suppress inspection "UnusedProperty" -dao.assetState.REMOVED_BY_VOTING=Removed by voting +dao.assetState.REMOVED_BY_VOTING=Bị gỡ bỏ thông qua bỏ phiếu -dao.proofOfBurn.header=Proof of burn +dao.proofOfBurn.header=Bằng chứng đốt dao.proofOfBurn.amount=Số tiền dao.proofOfBurn.preImage=Pre-image -dao.proofOfBurn.burn=Burn -dao.proofOfBurn.allTxs=All proof of burn transactions -dao.proofOfBurn.myItems=My proof of burn transactions +dao.proofOfĐốt.burn=Đốt +dao.proofOfBurn.allTxs=Tất cả bằng chứng của các giao dịch đốt +dao.proofOfBurn.myItems=Bằng chứng giao dịch đốt của tôi dao.proofOfBurn.date=Ngày dao.proofOfBurn.hash=Hash dao.proofOfBurn.txs=Giao dịch dao.proofOfBurn.pubKey=Pubkey -dao.proofOfBurn.signature.window.title=Sign a message with key from proof or burn transaction -dao.proofOfBurn.verify.window.title=Verify a message with key from proof or burn transaction -dao.proofOfBurn.copySig=Copy signature to clipboard -dao.proofOfBurn.sign=Sign -dao.proofOfBurn.message=Message -dao.proofOfBurn.sig=Signature -dao.proofOfBurn.verify=Verify -dao.proofOfBurn.verify.header=Verify message with key from proof or burn transaction -dao.proofOfBurn.verificationResult.ok=Verification succeeded -dao.proofOfBurn.verificationResult.failed=Verification failed +dao.proofOfBurn.signature.window.title=Ký một tin nhắn dùng chìa khóa từ bằng chứng của giao dịch dốt +dao.proofOfBurn.verify.window.title=Xác minh một tin nhắn dùng chìa khóa từ bằng chứng của giao dịch dốt +dao.proofOfBurn.copySig=Sao chép chữ ký tới clipboard +dao.proofOfBurn.sign=Ký +dao.proofOfBurn.message=Tin nhắn +dao.proofOfBurn.sig=Chữ ký +dao.proofOfBurn.verify=Xác minh +dao.proofOfBurn.verify.header=Xác minh tin nhắn dùng chìa khóa từ bằng chứng của giao dịch dốt +dao.proofOfBurn.verificationResult.ok=Xác minh thành công +dao.proofOfBurn.verificationResult.failed=Xác minh thất bại # suppress inspection "UnusedProperty" dao.phase.UNDEFINED=Không xác định @@ -1366,11 +1369,11 @@ dao.phase.separatedPhaseBar.RESULT=Kết quả bỏ phiếu # suppress inspection "UnusedProperty" dao.proposal.type.COMPENSATION_REQUEST=Yêu cầu bồi thường # suppress inspection "UnusedProperty" -dao.proposal.type.REIMBURSEMENT_REQUEST=Reimbursement request +dao.proposal.type.REIMBURSEMENT_REQUEST=Yêu cầu bồi hoàn # suppress inspection "UnusedProperty" dao.proposal.type.BONDED_ROLE=Đề xuất một vai trò đảm bảo # suppress inspection "UnusedProperty" -dao.proposal.type.REMOVE_ASSET=Proposal for removing an asset +dao.proposal.type.REMOVE_ASSET=Đề xuất gỡ bỏ một tài sản # suppress inspection "UnusedProperty" dao.proposal.type.CHANGE_PARAM=Đề xuất thay đổi một thông số # suppress inspection "UnusedProperty" @@ -1381,7 +1384,7 @@ dao.proposal.type.CONFISCATE_BOND=Đề xuất tịch thu tài sản đảm bả # suppress inspection "UnusedProperty" dao.proposal.type.short.COMPENSATION_REQUEST=Yêu cầu bồi thường # suppress inspection "UnusedProperty" -dao.proposal.type.short.REIMBURSEMENT_REQUEST=Reimbursement request +dao.proposal.type.short.REIMBURSEMENT_REQUEST=Yêu cầu bồi hoàn # suppress inspection "UnusedProperty" dao.proposal.type.short.BONDED_ROLE=Vai trò đảm bảo # suppress inspection "UnusedProperty" @@ -1397,8 +1400,8 @@ dao.proposal.type.short.CONFISCATE_BOND=Tịch thu tài sản đảm bảo dao.proposal.details=Thông tin về đề xuất dao.proposal.selectedProposal=Đề xuất được chọn dao.proposal.active.header=Các đề xuất có hiệu lực -dao.proposal.active.remove.confirm=Are you sure you want to remove that proposal?\nThe already paid proposal fee will be lost. -dao.proposal.active.remove.doRemove=Yes, remove my proposal +dao.proposal.active.remove.confirm=Bạn có chắc bạn muốn gỡ bỏ đề xuất này?\nPhí đề xuất đã trả sẽ bị mất. +dao.proposal.active.remove.doRemove=Vâng, xin hãy gở đề xuất của tôi dao.proposal.active.remove.failed=Không thể gỡ bỏ đề xuất. dao.proposal.myVote.accept=Chấp nhận đề xuất dao.proposal.myVote.reject=Từ chối đề xuất @@ -1407,7 +1410,7 @@ dao.proposal.myVote.merit=Trọng lượng phiếu bầu từ BSQ kiếm đượ dao.proposal.myVote.stake=Tiền đầu tư BSQ để bỏ phiếu dao.proposal.myVote.blindVoteTxId=Mã giao dịch bỏ phiếu mù dao.proposal.myVote.revealTxId=Mã giao dịch công khai phiếu bầu -dao.proposal.myVote.stake.prompt=Max. available balance for voting: {0} +dao.proposal.myVote.stake.prompt=Số dư còn lại tối đa để bỏ phiếu: {0} dao.proposal.votes.header=Các phiếu bầu dao.proposal.votes.header.voted=Phiếu bầu của tôi dao.proposal.myVote.button=Bỏ phiếu trên tất cả đề xuất @@ -1417,24 +1420,26 @@ dao.proposal.create.createNew=Tạo đề xuất mới dao.proposal.create.create.button=Tạo đề xuất dao.proposal=đề xuất dao.proposal.display.type=Kiểu đề xuất -dao.proposal.display.name=Name/nickname -dao.proposal.display.link=Link to detail info -dao.proposal.display.link.prompt=Link to Github issue -dao.proposal.display.requestedBsq=Requested amount in BSQ -dao.proposal.display.bsqAddress=BSQ address -dao.proposal.display.txId=Proposal transaction ID +dao.proposal.display.name=Tên/nickname +dao.proposal.display.link=Link đến thông tin chi tiết +dao.proposal.display.link.prompt=Link đến vấn đề Github +dao.proposal.display.requestedBsq=Số lượng yêu cầu tính theo BSQ +dao.proposal.display.bsqAddress=Địa chỉ BSQ +dao.proposal.display.txId=ID giao dịch đề xuất dao.proposal.display.proposalFee=Phí đề xuất dao.proposal.display.myVote=Phiếu bầu của tôi -dao.proposal.display.voteResult=Vote result summary -dao.proposal.display.bondedRoleComboBox.label=Bonded role type -dao.proposal.display.requiredBondForRole.label=Required bond for role -dao.proposal.display.tickerSymbol.label=Ticker Symbol -dao.proposal.display.option=Option +dao.proposal.display.voteResult=Tóm tắt kết quả bỏ phiếu +dao.proposal.display.bondedRoleComboBox.label=Loại vi trò được đảm bảo +dao.proposal.display.requiredBondForRole.label=Tài sản đảm bảo BSQ yêu cầu cho vai trò +dao.proposal.display.tickerSymbol.label=Biểu tượng tên rút gọn +dao.proposal.display.option=Tùy chọn dao.proposal.table.header.proposalType=Kiểu đề xuất dao.proposal.table.header.link=đường dẫn -dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal -dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' +dao.proposal.table.header.myVote=Phiếu bầu của tôi +dao.proposal.table.header.remove=Xoá +dao.proposal.table.icon.tooltip.removeProposal=Gỡ bỏ đề xuất của tôi +dao.proposal.table.icon.tooltip.changeVote=phiếu bầu hiện tại: ''{0}''. Thay đổi phiếu bầu tới: ''{1}'' dao.proposal.display.myVote.accepted=Chấp nhận dao.proposal.display.myVote.rejected=Từ chối @@ -1445,11 +1450,11 @@ dao.proposal.voteResult.success=Chấp nhận dao.proposal.voteResult.failed=Từ chối dao.proposal.voteResult.summary=Kết quả: {0}; Ngưỡng: {1} (yêu cầu > {2}); Đại biểu: {3} (yêu cầu > {4}) -dao.proposal.display.paramComboBox.label=Select parameter to change -dao.proposal.display.paramValue=Parameter value +dao.proposal.display.paramComboBox.label=Hãy chọn thông số cần thay đổi +dao.proposal.display.paramValue=Giá trị thông số dao.proposal.display.confiscateBondComboBox.label=Chọn tài sản đảm bảo -dao.proposal.display.assetComboBox.label=Asset to remove +dao.proposal.display.assetComboBox.label=Tài sản cần gỡ bỏ dao.blindVote=bỏ phiếu mù @@ -1460,49 +1465,49 @@ dao.wallet.menuItem.send=Gửi dao.wallet.menuItem.receive=Nhận dao.wallet.menuItem.transactions=Giao dịch -dao.wallet.dashboard.myBalance=My wallet balance -dao.wallet.dashboard.distribution=Distribution of all BSQ -dao.wallet.dashboard.locked=Global state of locked BSQ -dao.wallet.dashboard.market=Market data +dao.wallet.dashboard.myBalance=Số dư trong ví của tôi +dao.wallet.dashboard.distribution=Sự phân phối của tất cả BSQ +dao.wallet.dashboard.locked=Trạng thái toàn cầu của BSQ đã khóa +dao.wallet.dashboard.market=Dữ liệu thị trường dao.wallet.dashboard.genesis=Giao dịch chung -dao.wallet.dashboard.txDetails=BSQ transactions statistics -dao.wallet.dashboard.genesisBlockHeight=Genesis block height -dao.wallet.dashboard.genesisTxId=Genesis transaction ID -dao.wallet.dashboard.genesisIssueAmount=BSQ issued at genesis transaction -dao.wallet.dashboard.compRequestIssueAmount=BSQ issued for compensation requests -dao.wallet.dashboard.reimbursementAmount=BSQ issued for reimbursement requests -dao.wallet.dashboard.availableAmount=Total available BSQ -dao.wallet.dashboard.burntAmount=Burned BSQ (fees) -dao.wallet.dashboard.totalLockedUpAmount=Locked up in bonds -dao.wallet.dashboard.totalUnlockingAmount=Unlocking BSQ from bonds -dao.wallet.dashboard.totalUnlockedAmount=Unlocked BSQ from bonds -dao.wallet.dashboard.totalConfiscatedAmount=Confiscated BSQ from bonds -dao.wallet.dashboard.allTx=No. of all BSQ transactions -dao.wallet.dashboard.utxo=No. of all unspent transaction outputs -dao.wallet.dashboard.compensationIssuanceTx=No. of all compensation request issuance transactions -dao.wallet.dashboard.reimbursementIssuanceTx=No. of all reimbursement request issuance transactions -dao.wallet.dashboard.burntTx=No. of all fee payments transactions -dao.wallet.dashboard.price=Latest BSQ/BTC trade price (in Bisq) -dao.wallet.dashboard.marketCap=Market capitalisation (based on trade price) +dao.wallet.dashboard.txDetails=Thống kê giao dịch BSQ +dao.wallet.dashboard.genesisBlockHeight=Chiều cao khối Genesis +dao.wallet.dashboard.genesisTxId=ID giao dịch Genesis +dao.wallet.dashboard.genesisIssueAmount=Lượng BSQ phát hành tại giao dịch Genesis +dao.wallet.dashboard.compRequestIssueAmount=Lượng BSQ phát hành dành cho yêu cầu bồi thường +dao.wallet.dashboard.reimbursementAmount=Lượng BSQ phát hành dành cho yêu cầu bồi hoàn +dao.wallet.dashboard.availableAmount=Tổng lượng BSQ hiện có +dao.wallet.dashboard.burntAmount=Lượng BSQ đã đốt (các loại phí) +dao.wallet.dashboard.totalLockedUpAmount=Bị khóa làm tải sản đảm bảo +dao.wallet.dashboard.totalUnlockingAmount=Đang mở khóa BSQ từ tài sản đảm bảo +dao.wallet.dashboard.totalUnlockedAmount=BSQ đã được mở khóa từ tài sản đảm bảo +dao.wallet.dashboard.totalConfiscatedAmount=Lượng BSQ đã tịch thu từ tài sản đảm bảo +dao.wallet.dashboard.allTx=Tổng số giao dịch BSQ +dao.wallet.dashboard.utxo=Tổng đầu ra giao dịch chưa sử dụng +dao.wallet.dashboard.compensationIssuanceTx=Tổng số lượng giao dịch phát hành yêu cầu bồi thường +dao.wallet.dashboard.reimbursementIssuanceTx=Tổng số lượng giao dịch phát hành yêu cầu bồi hoàn +dao.wallet.dashboard.burntTx=Tổng số lượng giao dịch thanh toán phí +dao.wallet.dashboard.price=Giá giao dịch BSQ/BTC gần nhất (tính bằng BSQ) +dao.wallet.dashboard.marketCap=Vốn hóa thị trường (dựa trên giá giao dịch) dao.wallet.receive.fundYourWallet=Nộp tiền ví BSQ của bạn -dao.wallet.receive.bsqAddress=BSQ wallet address +dao.wallet.receive.bsqAddress=Địa chỉ ví BSQ dao.wallet.send.sendFunds=Gửi vốn -dao.wallet.send.sendBtcFunds=Send non-BSQ funds (BTC) -dao.wallet.send.amount=Amount in BSQ -dao.wallet.send.btcAmount=Amount in BTC (non-BSQ funds) +dao.wallet.send.sendBtcFunds=Gửi các loại tiền không phải BSQ (BTC) +dao.wallet.send.amount=Số tiền tính bằng BQS +dao.wallet.send.btcAmount=Số tiền tính bằng BTC (các loại tiền không phải BSQ) dao.wallet.send.setAmount=Cài đặt số tiền được rút (số tiền tối thiểu là {0}) -dao.wallet.send.setBtcAmount=Set amount in BTC to withdraw (min. amount is {0}) -dao.wallet.send.receiverAddress=Receiver's BSQ address -dao.wallet.send.receiverBtcAddress=Receiver's BTC address +dao.wallet.send.setBtcAmount=Cài đặt số tiền tính bằng BTC được rút (số tiền tối thiểu là {0}) +dao.wallet.send.receiverAddress=Địa chỉ BSQ của người nhận +dao.wallet.send.receiverBtcAddress=Địa chỉ BTC của người nhận dao.wallet.send.setDestinationAddress=Điền địa chỉ đến của bạn dao.wallet.send.send=Gửi vốn BSQ dao.wallet.send.sendBtc=Gửi vốn BTC dao.wallet.send.sendFunds.headline=Xác nhận yêu cầu rút dao.wallet.send.sendFunds.details=Đang gửi: {0}\nĐến địa chỉ nhận: {1}.\nphí giao dịch cần thiết: {2} ({3} satoshis/byte)\nQuy mô giao dịch: {4} Kb\n\nNgười nhận sẽ nhận: {5}\n\nBạn có chắc bạn muốn rút số tiền này? -dao.wallet.chainHeightSynced=Đồng bộ hóa với block:{0} (block mới nhất: {1}) -dao.wallet.chainHeightSyncing=Đang đồng bộ hóa block: {0} (block mới nhất: {1}) +dao.wallet.chainHeightSynced=Khối đã xác minh mới nhất: {0} +dao.wallet.chainHeightSyncing=Đang chờ khối mới... Đã xác nhận{0} / {1} khối dao.wallet.tx.type=Loại # suppress inspection "UnusedProperty" @@ -1524,7 +1529,7 @@ dao.tx.type.enum.PAY_TRADE_FEE=Phí giao dịch # suppress inspection "UnusedProperty" dao.tx.type.enum.COMPENSATION_REQUEST=Phí yêu cầu bồi thường # suppress inspection "UnusedProperty" -dao.tx.type.enum.REIMBURSEMENT_REQUEST=Fee for reimbursement request +dao.tx.type.enum.REIMBURSEMENT_REQUEST=Phí trả cho yêu cầu bồi hoàn # suppress inspection "UnusedProperty" dao.tx.type.enum.PROPOSAL=Phí đề xuất # suppress inspection "UnusedProperty" @@ -1536,14 +1541,14 @@ dao.tx.type.enum.LOCKUP=Tài sản khóa # suppress inspection "UnusedProperty" dao.tx.type.enum.UNLOCK=Tài sản mở khóa # suppress inspection "UnusedProperty" -dao.tx.type.enum.ASSET_LISTING_FEE=Asset listing fee +dao.tx.type.enum.ASSET_LISTING_FEE=Phí niêm yết tài sản # suppress inspection "UnusedProperty" -dao.tx.type.enum.PROOF_OF_BURN=Proof of burn +dao.tx.type.enum.PROOF_OF_BURN=Bằng chứng đốt dao.tx.issuanceFromCompReq=Yêu cầu bồi thường/ban hành dao.tx.issuanceFromCompReq.tooltip=Yêu cầu bồi thường dẫn đến ban hành BSQ mới.\nNgày ban hành: {0} -dao.tx.issuanceFromReimbursement=Reimbursement request/issuance -dao.tx.issuanceFromReimbursement.tooltip=Reimbursement request which led to an issuance of new BSQ.\nIssuance date: {0} +dao.tx.issuanceFromReimbursement=Yêu cầu/ Phát hành bồi hoàn +dao.tx.issuanceFromReimbursement.tooltip=Yêu cầu bồi hoàn dẫn đến ban hành BSQ mới.\nNgày ban hành: {0} dao.proposal.create.missingFunds=Bạn không có đủ tiền để tạo đề xuất.\nThiếu: {0} dao.feeTx.confirm=Xác nhận {0} giao dịch dao.feeTx.confirm.details={0} phí: {1}\nPhí đào: {2} ({3} Satoshis/byte)\nKích thước giao dịch: {4} Kb\n\nBạn có chắc là muốn công bố giao dịch {5}? @@ -1554,11 +1559,11 @@ dao.feeTx.confirm.details={0} phí: {1}\nPhí đào: {2} ({3} Satoshis/byte)\nK #################################################################### contractWindow.title=Thông tin khiếu nại -contractWindow.dates=Offer date / Trade date -contractWindow.btcAddresses=Bitcoin address BTC buyer / BTC seller -contractWindow.onions=Network address BTC buyer / BTC seller -contractWindow.numDisputes=No. of disputes BTC buyer / BTC seller -contractWindow.contractHash=Contract hash +contractWindow.dates=Ngày chào giá / Ngày giao dịch +contractWindow.btcAddresses=Địa chỉ Bitcoin người mua BTC / người bán BTC +contractWindow.onions=Địa chỉ mạng người mua BTC / người bán BTC +contractWindow.numDisputes=Số khiếu nại người mua BTC / người bán BTC +contractWindow.contractHash=Hash của hợp đồng displayAlertMessageWindow.headline=Thông tin quan trọng! displayAlertMessageWindow.update.headline=Thông tin cập nhật quan trọng! @@ -1580,21 +1585,21 @@ displayUpdateDownloadWindow.success=Phiên bản mới đã được download th displayUpdateDownloadWindow.download.openDir=Mở thư mục download disputeSummaryWindow.title=Tóm tắt -disputeSummaryWindow.openDate=Ticket opening date -disputeSummaryWindow.role=Trader's role -disputeSummaryWindow.evidence=Evidence +disputeSummaryWindow.openDate=Ngày mở đơn +disputeSummaryWindow.role=Vai trò của người giao dịch +disputeSummaryWindow.evidence=Bằng chứng disputeSummaryWindow.evidence.tamperProof=Bằng chứng chống giả mạo disputeSummaryWindow.evidence.id=Xác minh ID disputeSummaryWindow.evidence.video=Video/Phản chiếu hình ảnh -disputeSummaryWindow.payout=Trade amount payout +disputeSummaryWindow.payout=Khoản tiền giao dịch hoàn lại disputeSummaryWindow.payout.getsTradeAmount=BTC {0} nhận được khoản tiền giao dịch hoàn lại disputeSummaryWindow.payout.getsAll=BTC {0} nhận tất cả disputeSummaryWindow.payout.custom=Thuế hoàn lại disputeSummaryWindow.payout.adjustAmount=Số tiền nhập vượt quá số tiền hiện có {0}.\nChúng tôi điều chỉnh trường nhập này đến giá trị có thể lớn nhất. -disputeSummaryWindow.payoutAmount.buyer=Buyer's payout amount -disputeSummaryWindow.payoutAmount.seller=Seller's payout amount -disputeSummaryWindow.payoutAmount.invert=Use loser as publisher -disputeSummaryWindow.reason=Reason of dispute +disputeSummaryWindow.payoutAmount.buyer=Khoản tiền hoàn lại của người mua +disputeSummaryWindow.payoutAmount.seller=Khoản tiền hoàn lại của người bán +disputeSummaryWindow.payoutAmount.invert=Sử dụng người thua như người công bố +disputeSummaryWindow.reason=Lý do khiếu nại disputeSummaryWindow.reason.bug=Sự cố disputeSummaryWindow.reason.usability=Khả năng sử dụng disputeSummaryWindow.reason.protocolViolation=Vi phạm giao thức @@ -1602,7 +1607,7 @@ disputeSummaryWindow.reason.noReply=Không có phản hồi disputeSummaryWindow.reason.scam=Scam disputeSummaryWindow.reason.other=Khác disputeSummaryWindow.reason.bank=Ngân hàng -disputeSummaryWindow.summaryNotes=Summary notes +disputeSummaryWindow.summaryNotes=Lưu ý tóm tắt disputeSummaryWindow.addSummaryNotes=Thêm lưu ý tóm tắt disputeSummaryWindow.close.button=Đóng đơn disputeSummaryWindow.close.msg=Vé đã đóng trên {0}\n\nTóm tắt:\n{1} bằng chứng chống làm giả đã được chuyển: {2}\n{3} xác minh ID: {4}\n{5} phản chiếu hình ảnh hoặc video: {6}\nSố tiền hoàn trả cho người mua BTC: {7}\nSố tiền hoàn trả cho người bán BTC: {8}\n\nChú ý tóm tắt:\n{9} @@ -1610,10 +1615,10 @@ disputeSummaryWindow.close.closePeer=Bạn cũng cần phải đóng Đơn Đố emptyWalletWindow.headline=Công cụ ví khẩn cấp emptyWalletWindow.info=Vui lòng chỉ sử dụng trong trường hợp khẩn cấp nếu bạn không thể truy cập vốn của bạn từ UI.\n\nLưu ý rằng tất cả Báo giá mở sẽ được tự động đóng khi sử dụng công cụ này.\n\nTrước khi sử dụng công cụ này, vui lòng sao lưu dự phòng thư mục dữ liệu của bạn. Bạn có thể sao lưu tại \"Tài khoản/Sao lưu dự phòng\".\n\nVui lòng báo với chúng tôi vấn đề của bạn và lập báo cáo sự cố trên GitHub hoặc diễn đàn Bisq để chúng tôi có thể điều tra điều gì gây nên vấn đề đó. -emptyWalletWindow.balance=Your available wallet balance -emptyWalletWindow.bsq.btcBalance=Balance of non-BSQ Satoshis +emptyWalletWindow.balance=Số dư ví hiện tại của bạn +emptyWalletWindow.bsq.btcBalance=Số dư tính bằng Satoshi của tài sản không phải là BSQ -emptyWalletWindow.address=Your destination address +emptyWalletWindow.address=Địa chỉ đến của bạn emptyWalletWindow.button=Gửi tất cả vốn emptyWalletWindow.openOffers.warn=Bạn có chào giá mở sẽ được gỡ bỏ khi bạn rút hết trong ví.\nBạn có chắc chắn muốn rút hết ví của bạn? emptyWalletWindow.openOffers.yes=Vâng, tôi chắc chắn @@ -1622,39 +1627,39 @@ emptyWalletWindow.sent.success=Số dư trong ví của bạn đã được chuy enterPrivKeyWindow.headline=Đăng ký chỉ mở cho các trọng tài được mời filterWindow.headline=Chỉnh sửa danh sách lọc -filterWindow.offers=Filtered offers (comma sep.) -filterWindow.onions=Filtered onion addresses (comma sep.) +filterWindow.offers=Chào giá đã lọc (cách nhau bằng dấu phẩy) +filterWindow.onions=Địa chỉ onion đã lọc (cách nhau bằng dấu phẩy) filterWindow.accounts=Dữ liệu tài khoản giao dịch đã lọc:\nĐịnh dạng: cách nhau bằng dấu phẩy danh sách [ID phương thức thanh toán | trường dữ liệu | giá trị] -filterWindow.bannedCurrencies=Filtered currency codes (comma sep.) -filterWindow.bannedPaymentMethods=Filtered payment method IDs (comma sep.) -filterWindow.arbitrators=Filtered arbitrators (comma sep. onion addresses) -filterWindow.seedNode=Filtered seed nodes (comma sep. onion addresses) -filterWindow.priceRelayNode=Filtered price relay nodes (comma sep. onion addresses) -filterWindow.btcNode=Filtered Bitcoin nodes (comma sep. addresses + port) -filterWindow.preventPublicBtcNetwork=Prevent usage of public Bitcoin network +filterWindow.bannedCurrencies=Mã tiền tệ đã lọc (cách nhau bằng dấu phẩy) +filterWindow.bannedPaymentMethods=ID phương thức thanh toán đã lọc (cách nhau bằng dấu phẩy) +filterWindow.arbitrators=Các trọng tài đã lọc (địa chỉ onion cách nhau bằng dấu phẩy) +filterWindow.seedNode=Node cung cấp thông tin đã lọc (địa chỉ onion cách nhau bằng dấu phẩy) +filterWindow.priceRelayNode=nút rơle giá đã lọc (địa chỉ onion cách nhau bằng dấu phẩy) +filterWindow.btcNode=nút Bitcoin đã lọc (địa chỉ cách nhau bằng dấu phẩy + cửa) +filterWindow.preventPublicBtcNetwork=Ngăn sử dụng mạng Bitcoin công cộng filterWindow.add=Thêm bộ lọc filterWindow.remove=Gỡ bỏ bộ lọc -offerDetailsWindow.minBtcAmount=Min. BTC amount +offerDetailsWindow.minBtcAmount=Giá trị BTC tối thiểu offerDetailsWindow.min=(min. {0}) offerDetailsWindow.distance=(chênh lệch so với giá thị trường: {0}) -offerDetailsWindow.myTradingAccount=My trading account -offerDetailsWindow.offererBankId=(maker's bank ID/BIC/SWIFT) +offerDetailsWindow.myTradingAccount=itài khoản giao dịch của tôi +offerDetailsWindow.offererBankId=(ID/BIC/SWIFT ngân hàng của người tạo) offerDetailsWindow.offerersBankName=(tên ngân hàng của người tạo) -offerDetailsWindow.bankId=Bank ID (e.g. BIC or SWIFT) -offerDetailsWindow.countryBank=Maker's country of bank -offerDetailsWindow.acceptedArbitrators=Accepted arbitrators +offerDetailsWindow.bankId=ID ngân hàng (VD: BIC hoặc SWIFT) +offerDetailsWindow.countryBank=Quốc gia ngân hàng của người tạo +offerDetailsWindow.acceptedArbitrators=Các trọng tài được chấp nhận offerDetailsWindow.commitment=Cam kết offerDetailsWindow.agree=Tôi đồng ý -offerDetailsWindow.tac=Terms and conditions +offerDetailsWindow.tac=Điều khoản và điều kiện offerDetailsWindow.confirm.maker=Xác nhận: Đặt chào giá cho {0} bitcoin offerDetailsWindow.confirm.taker=Xác nhận: Nhận chào giáo cho {0} bitcoin -offerDetailsWindow.creationDate=Creation date -offerDetailsWindow.makersOnion=Maker's onion address +offerDetailsWindow.creationDate=Ngày tạo +offerDetailsWindow.makersOnion=Địa chỉ onion của người tạo qRCodeWindow.headline=Mã QR qRCodeWindow.msg=Vui lòng sử dụng mã QR để nộp tiền và ví Bisq của bạn từ ví bên ngoài. -qRCodeWindow.request=Payment request:\n{0} +qRCodeWindow.request=Yêu cầu thanh toán:\n{0} selectDepositTxWindow.headline=Chọn giao dịch tiền gửi để khiếu nại selectDepositTxWindow.msg=Giao dịch tiền gửi không được lưu trong danh mục giao dịch.\nVui lòng chọn một trong các giao dịch multisig hiện có từ ví của bạn là giao dịch tiền gửi sử dụng trong danh mục giao dịch không thành công.\n\nBạn có thể tìm đúng giao dịch bằng cách mở cửa sổ thông tin giao dịch (nhấp vào ID giao dịch trong danh sách) và tuân thủ yêu cầu thanh toán phí giao dịch cho giao dịch tiếp theo khi bạn thấy giao dịch tiền gửi multisig (địa chỉ bắt đầu bằng số 3). ID giao dịch sẽ thấy trong danh sách tại đây. Khi bạn thấy đúng giao dịch, chọn giao dịch đó và tiếp tục.\n\nXin lỗi vì sự bất tiện này nhưng thỉnh thoảng sẽ có lỗi xảy ra và trong tương lai chúng tôi sẽ tìm cách tốt hơn để xử lý vấn đề này. @@ -1665,20 +1670,20 @@ selectBaseCurrencyWindow.msg=Thị trường mặc định được chọn là { selectBaseCurrencyWindow.select=Chọn tiền tệ cơ sở sendAlertMessageWindow.headline=Gửi thông báo toàn cầu -sendAlertMessageWindow.alertMsg=Alert message +sendAlertMessageWindow.alertMsg=Tin nhắn cảnh báo sendAlertMessageWindow.enterMsg=Nhận tin nhắn -sendAlertMessageWindow.isUpdate=Is update notification -sendAlertMessageWindow.version=New version no. +sendAlertMessageWindow.isUpdate=Thông báo cập nhật +sendAlertMessageWindow.version=Phiên bản mới số sendAlertMessageWindow.send=Gửi thông báo sendAlertMessageWindow.remove=Gỡ bỏ thông báo sendPrivateNotificationWindow.headline=Gửi tin nhắn riêng tư -sendPrivateNotificationWindow.privateNotification=Private notification +sendPrivateNotificationWindow.privateNotification=Thông báo riêng tư sendPrivateNotificationWindow.enterNotification=Nhập thông báo sendPrivateNotificationWindow.send=Gửi thông báo riêng tư showWalletDataWindow.walletData=Dữ liệu ví -showWalletDataWindow.includePrivKeys=Include private keys +showWalletDataWindow.includePrivKeys=Bao gồm khóa cá nhân # We do not translate the tac because of the legal nature. We would need translations checked by lawyers # in each language which is too expensive atm. @@ -1690,9 +1695,9 @@ tacWindow.arbitrationSystem=Hệ thống trọng tài tradeDetailsWindow.headline=giao dịch tradeDetailsWindow.disputedPayoutTxId=ID giao dịch hoàn tiền khiếu nại: tradeDetailsWindow.tradeDate=Ngày giao dịch -tradeDetailsWindow.txFee=Mining fee +tradeDetailsWindow.txFee=Phí đào tradeDetailsWindow.tradingPeersOnion=Địa chỉ onion Đối tác giao dịch -tradeDetailsWindow.tradeState=Trade state +tradeDetailsWindow.tradeState=Trạng thái giao dịch walletPasswordWindow.headline=Nhập mật khẩu để mở khóa @@ -1700,12 +1705,12 @@ torNetworkSettingWindow.header=Cài đặt mạng Tor torNetworkSettingWindow.noBridges=Không sử dụng cầu nối torNetworkSettingWindow.providedBridges=Nối với cầu nối được cung cấp torNetworkSettingWindow.customBridges=Nhập cầu nối thông dụng -torNetworkSettingWindow.transportType=Transport type +torNetworkSettingWindow.transportType=Loại hình vận chuyển torNetworkSettingWindow.obfs3=obfs3 torNetworkSettingWindow.obfs4=obfs4 (khuyến cáo) torNetworkSettingWindow.meekAmazon=meek-amazon torNetworkSettingWindow.meekAzure=meek-azure -torNetworkSettingWindow.enterBridge=Enter one or more bridge relays (one per line) +torNetworkSettingWindow.enterBridge=Nhập một hoặc nhiều chuyển tiếp cầu (một trên một dòng) torNetworkSettingWindow.enterBridgePrompt=địa chỉ loại:cổng torNetworkSettingWindow.restartInfo=Bạn cần phải khởi động lại để thay đổi torNetworkSettingWindow.openTorWebPage=Mở trang web dự án Tor @@ -1741,7 +1746,7 @@ popup.headline.error=Lỗi popup.doNotShowAgain=Không hiển thị lại popup.reportError.log=Mở log file popup.reportError.gitHub=Báo cáo cho người theo dõi vấn đề GitHub -popup.reportError={0}\n\nĐể giúp chúng tôi cải thiện phần mềm vui lòng báo cáo lỗi ở phần theo dõi lỗi ở GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nTin nhắn thông báo lỗi sẽ được sao chép đến clipboard khi bạn nhấp vào nút bên dưới.\nHãy đính kèm file bisq.log file để dễ dàng kiểm tra lỗi. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=Hãy khởi động lại ứng dụng và kiểm tra kết nối mạng để xem bạn có thể xử lý vấn đề này hay không. popup.error.takeOfferRequestFailed=Có lỗi xảy ra khi ai đó cố gắng để nhận một trong các chào giá của bạn:\n{0} @@ -1758,7 +1763,7 @@ popup.warning.tradePeriod.halfReached=giao dịch của bạn với ID {0} đã popup.warning.tradePeriod.ended=giao dịch của bạn với ID {0} đã qua một nửa thời gian giao dịch cho phép tối đa và vẫn chưa hoàn thành.\n\nThời gian giao dịch đã kết thúc vào {1}\n\nVui lòng kiểm tra giao dịch của bạn tại \"Portfolio/Các giao dịch mở\" để liên hệ với trọng tài. popup.warning.noTradingAccountSetup.headline=Bạn chưa thiết lập tài khoản giao dịch popup.warning.noTradingAccountSetup.msg=Bạn cần thiết lập tiền tệ quốc gia hoặc tài khoản altcoin trước khi tạo Báo giá.\nDBạn có muốn thiết lập tài khoản? -popup.warning.noArbitratorsAvailable=There are no arbitrators available. +popup.warning.noArbitratorsAvailable=Hiện không có trọng tài nào popup.warning.notFullyConnected=Bạn cần phải đợi cho đến khi kết nối hoàn toàn với mạng.\nĐiều này mất khoảng 2 phút khi khởi động. popup.warning.notSufficientConnectionsToBtcNetwork=Bạn cần phải đợi cho đến khi bạn có ít nhất {0} kết nối với mạng Bitcoin. popup.warning.downloadNotComplete=Bạn cần phải đợi cho đến khi download xong các block Bitcoin còn thiếu. @@ -1769,8 +1774,8 @@ popup.warning.noPriceFeedAvailable=Không có giá cung cấp cho tiền tệ n popup.warning.sendMsgFailed=Gửi tin nhắn Đối tác giao dịch không thành công.\nVui lòng thử lại và nếu tiếp tục không thành công thì báo cáo sự cố. popup.warning.insufficientBtcFundsForBsqTx=Bạn không có đủ vốn BTC để thanh toán phí đào cho giao dịch BSQ này.\nVui lòng nộp tiền vào ví BTC của bạn để có thể chuyển giao BSQ.\nSố tiền còn thiếu: {0} -popup.warning.insufficientBsqFundsForBtcFeePayment=You don''t have sufficient BSQ funds for paying the trade fee in BSQ. You can pay the fee in BTC or you need to fund your BSQ wallet. You can buy BSQ in Bisq.\n\nMissing BSQ funds: {0} -popup.warning.noBsqFundsForBtcFeePayment=Your BSQ wallet does not have sufficient funds for paying the trade fee in BSQ. +popup.warning.insufficientBsqFundsForBtcFeePayment=Bạn không đủ BSQ để thanh toán phí giao dịch bằng BSQ. Bạn có thể thanh toán phí bằng BTC hoặc nạp tiền vào ví BSQ của bạn. Bạn có thể mua BSQ tại Bisq.\nSố BSQ còn thiếu: {0} +popup.warning.noBsqFundsForBtcFeePayment=Ví BSQ của bạn không đủ tiền để trả phí giao dịch bằng BSQ. popup.warning.messageTooLong=Tin nhắn của bạn vượt quá kích cỡ tối đa cho phép. Vui lòng gửi thành nhiều lần hoặc tải lên mạng như https://pastebin.com. popup.warning.lockedUpFunds=Bạn đã khóa vốn của giao dịch không thành công.\nSố dư bị khóa: {0} \nĐịa chỉ tx tiền gửi: {1}\nID giao dịch: {2}.\n\nVui lòng mở vé hỗ trợ bằng cách mở giao dịch trong màn hình các giao dịch chưa xử lý và nhấn \"alt + o\" hoặc \"option + o\"." @@ -1778,11 +1783,11 @@ popup.warning.nodeBanned=Một trong {0} Node đã bị chấm. Vui lòng khởi popup.warning.priceRelay=rơle giá popup.warning.seed=seed -popup.info.securityDepositInfo=Để chắc chắn hai Thương gia tuân thủ giao thức giao dịch, Thương gia cần phải thanh toán tiền gửi đại lý.\n\nTiền gửi sẽ nằm trong ví giao dịch nội bộ của bạn cho đến khi chào giá được Thương gia khác chấp nhận.\nTiền này sẽ được hoàn trả cho bạn sau khi giao dịch đã thành công.\n\nLưu ý rằng bạn phải giữ ứng dụng chạy nếu bạn có chào giá mở. Khi Thương gia khác muốn nhận chào giá của bạn thì ứng dụng của bạn phải đang online để thực hiện giao thức giao dịch.\nChắc chắn rằng bạn đã dừng chế độ standby vì mạng sẽ bị ngắt kết nối (màn hình standby thì không vấn đề gì). +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Chắc chắn rằng khu vực của bạn có chi nhánh ngân hàng có thể gửi tiền mặt.\nID (BIC/SWIFT) ngân hàng của bên bán là: {0}. popup.info.cashDepositInfo.confirm=Tôi xác nhận tôi đã gửi tiền -popup.info.shutDownWithOpenOffers=Bisq is being shut down, but there are open offers. \n\nThese offers won't be available on the P2P network while Bisq is shut down, but they will be re-published to the P2P network the next time you start Bisq.\n\nTo keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't go into standby mode...monitor standby is not a problem). +popup.info.shutDownWithOpenOffers=Bisq đang đóng, nhưng vẫn có các chào giá đang mở. \n\nNhững chào giá này sẽ không có tại mạng P2P khi Bisq đang đóng, nhưng chúng sẽ được công bố lại trên mạng P2P vào lần tiếp theo bạn khởi động Bisq.\nĐể giữ các chào giá luôn trực tuyến, vui lòng để Bisq chạy và đảm bảo là máy tính của bạn cũng đang trực tuyến(có nghĩa là đảm bảo là máy tính của bạn không chuyển về chế độ chờ...nếu màn hình về chế độ chờ thì không sao). popup.privateNotification.headline=Thông báo riêng tư quan trọng! @@ -1884,10 +1889,10 @@ confidence.confirmed=Xác nhận tại {0} block confidence.invalid=Giao dịch không có hiệu lực peerInfo.title=Thông tin đối tác -peerInfo.nrOfTrades=Number of completed trades +peerInfo.nrOfTrades=Số giao dịch đã hoàn thành peerInfo.notTradedYet=Bạn chưa từng giao dịch với người dùng này. -peerInfo.setTag=Set tag for that peer -peerInfo.age=Payment account age +peerInfo.setTag=Đặt nhãn cho đối tác này +peerInfo.age=Tuổi tài khoản thanh toán peerInfo.unknownAge=Tuổi chưa biết addressTextField.openWallet=Mở ví Bitcoin mặc định của bạn @@ -1975,8 +1980,8 @@ time.minutes=phút time.seconds=giây -password.enterPassword=Enter password -password.confirmPassword=Confirm password +password.enterPassword=Nhập mật khẩu +password.confirmPassword=Xác nhận mật khẩu password.tooLong=Mật khẩu phải ít hơn 500 ký tự. password.deriveKey=Lấy khóa từ mật khẩu password.walletDecrypted=Ví đã giải mã thành công và bảo vệ bằng mật khẩu bị gỡ bỏ. @@ -1988,12 +1993,12 @@ password.forgotPassword=Quên mật khẩu? password.backupReminder=Lưu ý rằng khi cài đặt mật khẩu ví, tất cả dữ liệu sao lưu dự phòng tự đồng tạo từ ví mã hóa sẽ bị xóa.\n\nKhuyến cáo nên sao lưu dự phòng thư mục của ứng dụng và viết từ khởi tạo ra giấy trước khi cài đặt mật khẩu! password.backupWasDone=Tôi đã sao lưu dự phòng -seed.seedWords=Wallet seed words -seed.enterSeedWords=Enter wallet seed words -seed.date=Wallet date +seed.seedWords=Seed words ví +seed.enterSeedWords=Nhập seed words ví +seed.date=Ngày ví seed.restore.title=Khôi phục vú từ Seed words seed.restore=Khôi phục ví -seed.creationDate=Creation date +seed.creationDate=Ngày tạo seed.warn.walletNotEmpty.msg=Ví Bitcoin của bạn không trống.\n\nBạn phải làm trống ví trước khi khôi phục ví cũ, vì nhiều ví lẫn với nhau có thể dẫn tới sao lưu dự phòng vô hiệu.\n\nHãy hoàn thành giao dịch của bạn, đóng tất cả Báo giá mở và truy cập mục Vốn để rút bitcoin của bạn.\nNếu bạn không thể truy cập bitcoin của bạn, bạn có thể sử dụng công cụ khẩn cấp để làm trống ví.\nĐể mở công cụ khẩn cấp, ấn \"alt + e\" hoặc \"option + e\" . seed.warn.walletNotEmpty.restore=Tôi muốn khôi phục seed.warn.walletNotEmpty.emptyWallet=Tôi sẽ làm trống ví trước @@ -2007,13 +2012,13 @@ seed.restore.error=Có lỗi xảy ra khi khôi phục ví với Seed words.{0} #################################################################### payment.account=Tài khoản -payment.account.no=Account no. -payment.account.name=Account name +payment.account.no=Tài khoản số +payment.account.name=Tên tài khoản payment.account.owner=Họ tên chủ tài khoản payment.account.fullName=Họ tên (họ, tên lót, tên) -payment.account.state=State/Province/Region -payment.account.city=City -payment.bank.country=Country of bank +payment.account.state=Bang/Tỉnh/Vùng +payment.account.city=Thành phố +payment.bank.country=Quốc gia của ngân hàng payment.account.name.email=Họ tên / email của chủ tài khoản payment.account.name.emailAndHolderId=Họ tên / email / {0} của chủ tài khoản payment.bank.name=Tên ngân hàng @@ -2025,65 +2030,65 @@ payment.foreign.currency=Bạn có muốn còn tiền tệ khác tiền tệ m payment.restore.default=Không, khôi phục tiền tệ mặc định payment.email=Email payment.country=Quốc gia -payment.extras=Extra requirements -payment.email.mobile=Email or mobile no. -payment.altcoin.address=Altcoin address +payment.extras=Yêu cầu thêm +payment.email.mobile=Email hoặc số điện thoại +payment.altcoin.address=Địa chỉ Altcoin payment.altcoin=Altcoin payment.select.altcoin=Chọn hoặc tìm altcoin -payment.secret=Secret question -payment.answer=Answer -payment.wallet=Wallet ID -payment.uphold.accountId=Username or email or phone no. +payment.secret=Câu hỏi bí mật +payment.answer=Trả lời +payment.wallet=ID ví +payment.uphold.accountId=Tên người dùng hoặc email hoặc số điện thoại payment.cashApp.cashTag=$Cashtag -payment.moneyBeam.accountId=Email or phone no. -payment.venmo.venmoUserName=Venmo username -payment.popmoney.accountId=Email or phone no. -payment.revolut.accountId=Email or phone no. -payment.promptPay.promptPayId=Citizen ID/Tax ID or phone no. -payment.supportedCurrencies=Supported currencies -payment.limitations=Limitations -payment.salt=Salt for account age verification +payment.moneyBeam.accountId=Email hoặc số điện thoại +payment.venmo.venmoUserName=Tên người dùng Venmo +payment.popmoney.accountId=Email hoặc số điện thoại +payment.revolut.accountId=Email hoặc số điện thoại +payment.promptPay.promptPayId=ID công dân/ ID thuế hoặc số điện thoại +payment.supportedCurrencies=Tiền tệ hỗ trợ +payment.limitations=Hạn chế +payment.salt=Salt để xác minh tuổi tài khoản payment.error.noHexSalt=Salt cần phải có định dạng HEX.\nKhuyến cáo chỉ chỉnh sửa trường salt nếu bạn muốn chuyển salt từ tài khoản cũ để giữ nguyên tuổi tài khoản. Tuổi tài khoản được xác minh bằng cách sử dụng salt tài khoản và dữ liệu nhận dạng tài khoản (VD: IBAN). -payment.accept.euro=Accept trades from these Euro countries -payment.accept.nonEuro=Accept trades from these non-Euro countries -payment.accepted.countries=Accepted countries -payment.accepted.banks=Accepted banks (ID) -payment.mobile=Mobile no. -payment.postal.address=Postal address -payment.national.account.id.AR=CBU number +payment.accept.euro=Chấp nhận giao dịch từ các nước Châu Âu này +payment.accept.nonEuro=Chấp nhận giao dịch từ các nước không thuộc Châu Âu này +payment.accepted.countries=Các nước được chấp nhận +payment.accepted.banks=Các ngân hàng được chấp nhận (ID) +payment.mobile=Số điện thoại +payment.postal.address=Địa chỉ bưu điện +payment.national.account.id.AR=Số CBU #new -payment.altcoin.address.dyn={0} address -payment.altcoin.receiver.address=Receiver's altcoin address -payment.accountNr=Account number -payment.emailOrMobile=Email or mobile nr +payment.altcoin.address.dyn=Địa chỉ {0}  +payment.altcoin.receiver.address=Địa chỉ altcoin của người nhận +payment.accountNr=Số tài khoản +payment.emailOrMobile=Email hoặc số điện thoại payment.useCustomAccountName=Sử dụng tên tài khoản thông dụng -payment.maxPeriod=Max. allowed trade period +payment.maxPeriod=Thời gian giao dịch cho phép tối đa payment.maxPeriodAndLimit=Thời gian giao dịch tối đa: {0} / Giới hạn giao dịch tối đa: {1} / Tuổi tài khoản: {2} -payment.maxPeriodAndLimitCrypto=Max. trade duration: {0} / Max. trade limit: {1} +payment.maxPeriodAndLimitCrypto=Thời gian giao dịch tối đa: {0} / Giới hạn giao dịch tối đa: {1} payment.currencyWithSymbol=Tiền tệ: {0} payment.nameOfAcceptedBank=Tên NH được chấp nhận payment.addAcceptedBank=Thêm NH được chấp nhận payment.clearAcceptedBanks=Xóa NH được chấp nhận -payment.bank.nameOptional=Bank name (optional) -payment.bankCode=Bank code +payment.bank.nameOptional=Tên ngân hàng (không bắt buộc) +payment.bankCode=Mã ngân hàng payment.bankId=ID (BIC/SWIFT) ngân hàng -payment.bankIdOptional=Bank ID (BIC/SWIFT) (optional) -payment.branchNr=Branch no. -payment.branchNrOptional=Branch no. (optional) -payment.accountNrLabel=Account no. (IBAN) -payment.accountType=Account type +payment.bankIdOptional=ID ngân hàng (BIC/SWIFT) (không bắt buộc) +payment.branchNr=Chi nhánh số +payment.branchNrOptional=Chi nhánh số (không bắt buộc) +payment.accountNrLabel=Tài khoản số (IBAN) +payment.accountType=Loại tài khoản payment.checking=Đang kiểm tra payment.savings=Tiết kiệm -payment.personalId=Personal ID -payment.clearXchange.info=Please be sure that you fulfill the requirements for the usage of Zelle (ClearXchange).\n\n1. You need to have your Zelle (ClearXchange) account verified on their platform before starting a trade or creating an offer.\n\n2. You need to have a bank account at one of the following member banks:\n\t● Bank of America\n\t● Capital One P2P Payments\n\t● Chase QuickPay\n\t● FirstBank Person to Person Transfers\n\t● Frost Send Money\n\t● U.S. Bank Send Money\n\t● TD Bank\n\t● Citibank\n\t● Wells Fargo SurePay\n\n3. You need to be sure to not exceed the daily or monthly Zelle (ClearXchange) transfer limits.\n\nPlease use Zelle (ClearXchange) only if you fulfill all those requirements, otherwise it is very likely that the Zelle (ClearXchange) transfer fails and the trade ends up in a dispute.\nIf you have not fulfilled the above requirements you will lose your security deposit.\n\nPlease also be aware of a higher chargeback risk when using Zelle (ClearXchange).\nFor the {0} seller it is highly recommended to get in contact with the {1} buyer by using the provided email address or mobile number to verify that he or she is really the owner of the Zelle (ClearXchange) account. +payment.personalId=ID cá nhân +payment.clearXchange.info=Chắc chắc bạn đáp ứng các yêu cầu khi sử dụng Zelle (ClearXchange).\n\n1. Bạn cần có tài khoản Zelle (ClearXchange) được xác minh trên hệ thống trước khi bắt đầu một giao dịch hoặc tạo báo giá.\n\n2. Bạn cần có tài khoản NH tại một trong các NH thành viên sau:\n\t● NH America\n\t● Capital One P2P Payments\n\t● Chase QuickPay\n\t● FirstBank Person to Person Transfers\n\t● Frost Send Money\n\t● U.S. Bank Send Money\n\t● TD Bank\n \t● Citi Bank\n\t● Wells Fargo SurePay\n\n3. Bạn cần chắc chắn không vượt quá giới hạn chuyển Zelle (ClearXchange) hàng ngày/hàng tháng.\n\nVui lòng sử dụng Zelle (ClearXchange) chỉ khi bạn đáp ứng các yêu cầu trên, nếu không có thể giao dịch chuyển Zelle (ClearXchange) không thành công và giao dịch kết thúc bằng khiếu nại.\nNếu bạn không đáp ứng các yêu cầu trên, bạn sẽ mất tiền cọc.\n\nVui lòng nắm rõ rủi ro cao bị đòi tiền lại khi sử dụng Zelle (ClearXchange).\nĐối với người bán {0}, bạn nên liên lạc với người mua {1} bằng email hoặc số điện thoại đã cung cấp để xác minh xem có thực sự là chủ tài khoản Zelle (ClearXchange) không. payment.moneyGram.info=Khi dùng MoneyGram người mua BTC phải gửi số xác nhận và ảnh chụp hoá đơn đến emailnguoiwf bán. Hoá đơn phải chỉ rõ tên đầy đủ, quốc gia, tiểu bang và số lượng. Người mua sẽ trình email của người bán ra trong quá trình giao dịch payment.westernUnion.info=Khi sử dụng Western Union, người mua BTC phải gửi MTCN (số theo dõi) và ảnh giấy biên nhận bằng email cho người bán BTC. Giấy biên nhận phải nêu rõ họ tên, thành phố, quốc gia của người bán và số tiền. Người mua sẽ được hiển thị email người bán trong quá trình giao dịch. payment.halCash.info=Khi sử dụng HalCash người mua BTC cần phải gửi cho người bán BTC mã HalCash bằng tin nhắn điện thoại.\n\nVui lòng đảm bảo là lượng tiền này không vượt quá số lượng tối đa mà ngân hàng của bạn cho phép gửi khi dùng HalCash. Số lượng rút tối thiểu là 10 EUR và tối đa là 600 EUR. Nếu rút nhiều lần thì giới hạn sẽ là 3000 EUR/ người nhận/ ngày và 6000 EUR/người nhận/tháng. Vui lòng kiểm tra chéo những giới hạn này với ngân hàng của bạn để chắc chắn là họ cũng dùng những giới hạn như ghi ở đây.\n\nSố tiền rút phải là bội số của 10 EUR vì bạn không thể rút các mệnh giá khác từ ATM. Giao diện người dùng ở phần 'tạo chào giá' và 'chấp nhận chào giá' sẽ điều chỉnh lượng btc sao cho lượng EUR tương ứng sẽ chính xác. Bạn không thể dùng giá thị trường vì lượng EUR có thể sẽ thay đổi khi giá thay đổi.\n\nTrường hợp tranh chấp, người mua BTC cần phải cung cấp bằng chứng chứng minh mình đã gửi EUR. payment.limits.info=Hãy hiểu rằng tất cả giao dịch chuyển khoản ngân hàng đều có thể có rủi ro bị đòi tiền lại.\n\nĐể hạn chế rủi ro này, Bisq đã đặt giới hạn trên mỗi giao dịch dựa trên hai yếu tố:\n\n1. Mức rủi ro đòi tiền lại ước tính cho mỗi phương thức thanh toán áp dụng\n2. Tuổi tài khoản của bạn đối với phương thức thanh toán\n\nTài khoản bạn đang tạo là mới và tuổi bằng không. Sau khi tài khoản của bạn được hai tháng tuổi, giới hạn trên mỗi giao dịch của bạn sẽ tăng lên theo:\n\n● Trong tháng đầu tiên, giới hạn trên mỗi giao dịch của bạn là {0}\n● Trong tháng thứ hai, giới hạn trên mỗi giao dịch của bạn là {1}\n● Sau hai tháng, giới hạn trên mỗi giao dịch của bạn là {2}\n\nLưu ý không có giới hạn trên tổng số lần bạn có thể giao dịch. -payment.cashDeposit.info=Please confirm your bank allows you to send cash deposits into other peoples' accounts. For example, Bank of America and Wells Fargo no longer allow such deposits. +payment.cashDeposit.info=Vui lòng xác nhận rằng ngân hàng của bạn cho phép nạp tiền mặt vào tài khoản của người khác. Chẳng hạn, Ngân Hàng Mỹ và Wells Fargo không còn cho phép nạp tiền như vậy nữa. payment.f2f.contact=thông tin liên hệ payment.f2f.contact.prompt=Bạn muốn liên hệ với đối tác giao dịch qua đâu? (email, địa chỉ, số điện thoại,....) @@ -2241,8 +2246,8 @@ validation.accountNrChars=Số tài khoản phải có {0} ký tự. validation.btc.invalidAddress=Địa chỉ không đúng. Vui lỏng kiểm tra lại định dạng địa chỉ. validation.integerOnly=Vui lòng chỉ nhập số nguyên. validation.inputError=Giá trị nhập của bạn gây lỗi:\n{0} -validation.bsq.insufficientBalance=Your available balance is {0}. -validation.btc.exceedsMaxTradeLimit=Your trade limit is {0}. +validation.bsq.insufficientBalance=Số dư hiện tại của bạn là {0}. +validation.btc.exceedsMaxTradeLimit=Giới hạn giao dịch của bạn là {0}. validation.bsq.amountBelowMinAmount=Giá trị nhỏ nhất là {0} validation.nationalAccountId={0} phải có {1} số. @@ -2267,12 +2272,12 @@ validation.iban.checkSumInvalid=Mã kiểm tra IBAN không hợp lệ validation.iban.invalidLength=Số phải dài từ 15 đến 34 ký tự. validation.interacETransfer.invalidAreaCode=Mã vùng không phải Canada validation.interacETransfer.invalidPhone=Định dạng số điện thoại không hợp lệ và không phải là địa chỉ email -validation.interacETransfer.invalidQuestion=Must contain only letters, numbers, spaces and/or the symbols ' _ , . ? - -validation.interacETransfer.invalidAnswer=Must be one word and contain only letters, numbers, and/or the symbol - +validation.interacETransfer.invalidQuestion=Chỉ được chứa chữ cái, số, khoảng trắng, và/hoặc các ký tự ' _ , . ? - +validation.interacETransfer.invalidAnswer=Phải được viết liền và chỉ bao gồm chữ cái, số, và/hoặc ký tự - validation.inputTooLarge=Giá trị nhập không được lớn hơn {0} -validation.inputTooSmall=Input has to be larger than {0} -validation.amountBelowDust=The amount below the dust limit of {0} is not allowed. -validation.length=Length must be between {0} and {1} -validation.pattern=Input must be of format: {0} -validation.noHexString=The input is not in HEX format. -validation.advancedCash.invalidFormat=Must be a valid email or wallet id of format: X000000000000 +validation.inputTooSmall=Giá trị nhập phải lớn hơn {0} +validation.amountBelowDust=Không cho phép giá trị nhỏ hơn giới hạn dust limit {0} +validation.length=Chiều dài phải nằm trong khoảng từ {0} đến {1} +validation.pattern=Giá trị nhập phải có định dạng: {0} +validation.noHexString=Giá trị nhập không ở định dạng HEX +validation.advancedCash.invalidFormat=Phải là một địa chỉ email hợp lệ hoặc là ID ví với định dạng: X000000000000 diff --git a/core/src/main/resources/i18n/displayStrings_zh.properties b/core/src/main/resources/i18n/displayStrings_zh.properties index 8f4ff9f2cb..15434ef0dd 100644 --- a/core/src/main/resources/i18n/displayStrings_zh.properties +++ b/core/src/main/resources/i18n/displayStrings_zh.properties @@ -193,6 +193,9 @@ shared.all=All shared.edit=Edit shared.advancedOptions=Advanced options shared.interval=Interval +shared.actions=Actions +shared.buyerUpperCase=Buyer +shared.sellerUpperCase=Seller #################################################################### # UI views @@ -533,7 +536,7 @@ portfolio.pending.step2_buyer.confirmStart.yes=是的,我已经开始付款 portfolio.pending.step2_seller.waitPayment.headline=等待付款 portfolio.pending.step2_seller.f2fInfo.headline=Buyer's contact information portfolio.pending.step2_seller.waitPayment.msg=存款交易至少有一个块链确认\n您需要等到BTC买家开始{0}付款。 -portfolio.pending.step2_seller.warn=BTC买家仍然没有完成{0}付款\n你需要等到他开始付款\n如果{1}交易尚未完成,仲裁员将进行调查。 +portfolio.pending.step2_seller.warn=The BTC buyer still has not done the {0} payment.\nYou need to wait until they have started the payment.\nIf the trade has not been completed on {1} the arbitrator will investigate. portfolio.pending.step2_seller.openForDispute=BTC买家尚未开始付款!\n最大 允许的交易期限已经过去了\n请联系仲裁员以争取解决纠纷。 # suppress inspection "UnusedProperty" @@ -718,7 +721,7 @@ funds.tx.noTxAvailable=没有可用交易 funds.tx.revert=还原 funds.tx.txSent=交易成功发送到本地Bisq钱包中的新地址。 funds.tx.direction.self=内部钱包交易 -funds.tx.proposalTxFee=Miner fee for proposal +funds.tx.daoTxFee=Miner fee for DAO tx funds.tx.reimbursementRequestTxFee=Reimbursement request funds.tx.compensationRequestTxFee=赔偿要求 @@ -762,9 +765,9 @@ support.buyerOfferer=BTC 买家/挂单者 support.sellerOfferer=BTC 卖家/挂单者 support.buyerTaker=BTC 买家/买单者 support.sellerTaker=BTC 卖家/买单者 -support.backgroundInfo=Bisq is not a company and does not provide any kind of customer support.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\nIf there is an issue with the application, the software will try to detect this and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade which causes the problem under \"Portfolio/Open trades\" and typing the key combination \"alt + o\" or \"option + o\". Please use that only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ at the bisq.network web page or post in the Bisq forum at the support section. +support.backgroundInfo=Bisq is not a company, so it handles disputes differently.\n\nIf there are disputes in the trade process (e.g. one trader does not follow the trade protocol) the application will display an \"Open dispute\" button after the trade period is over for contacting the arbitrator.\n\nIf there is an issue with the application, the software will try to detect it and, if possible, display an \"Open support ticket\" button to contact the arbitrator who will forward the issue to the developers.\n\nIf you are having an issue and did not see the \"Open support ticket\" button, you can open a support ticket manually by selecting the trade causing issues under \"Portfolio/Open trades\" and hitting \"alt + o\" or \"option + o\". Please use this method only if you are sure that the software is not working as expected. If you have problems or questions, please review the FAQ on the bisq.network web page or post in the Bisq forum in the Support section. -support.initialInfo=请注意纠纷程序的基本规则:\n1.你需要在2天之内回复仲裁员的要求\n2.纠纷的最长期限为14天\n3.你需要履行仲裁员要求你提交你的案件的证据\n4.当您首次启动应用程序时,您已经在用户协议中接受了维基中列出的规则\n\n请详细阅读我们的wiki中的纠纷过程:\nhttps://github.com/bitsquare/bitsquare/wiki/Dispute-process +support.initialInfo=Please note the basic rules for the dispute process:\n1. You need to respond to the arbitrator's requests within 2 days.\n2. The maximum period for a dispute is 14 days.\n3. You need to cooperate with the arbitrator and provide the information they request to make your case.\n4. You accepted the rules outlined in the wiki in the user agreement when you first started the application.\n\nPlease read more about the dispute process in our wiki:\nhttps://github.com/bisq-network/exchange/wiki/Arbitration-system support.systemMsg=系统消息: {0} support.youOpenedTicket=您创建了帮助请求 support.youOpenedDispute=您创建了一个纠纷请求\n\n{0} @@ -833,8 +836,8 @@ settings.net.useCustomNodesRadio=使用自定义比特币主节点 settings.net.warn.usePublicNodes=If you use the public Bitcoin network you are exposed to a severe privacy problem caused by the broken bloom filter design and implementation which is used for SPV wallets like BitcoinJ (used in Bisq). Any full node you are connected to could find out that all your wallet addresses belong to one entity.\n\nPlease read more about the details at: https://bisq.network/blog/privacy-in-bitsquare.\n\nAre you sure you want to use the public nodes? settings.net.warn.usePublicNodes.useProvided=No, use provided nodes settings.net.warn.usePublicNodes.usePublic=使用公共网络 -settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which are not following the Bitcoin Core consensus rules could screw up your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any damage created by that. Disputes caused by that would be decided in favor of the other peer. No technical support will be given to users who ignore our warning and protection mechanisms! -settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you get connected exclusively to that.) +settings.net.warn.useCustomNodes.B2XWarning=Please be sure that your Bitcoin node is a trusted Bitcoin Core node!\n\nConnecting to nodes which do not follow the Bitcoin Core consensus rules could corrupt your wallet and cause problems in the trade process.\n\nUsers who connect to nodes that violate consensus rules are responsible for any resulting damage. Any resulting disputes will be decided in favor of the other peer. No technical support will be given to users who ignore this warning and protection mechanisms! +settings.net.localhostBtcNodeInfo=(Background information: If you are running a local Bitcoin node (localhost) you can connect exclusively to it.) settings.net.p2PPeersLabel=Connected peers settings.net.onionAddressColumn=匿名地址 settings.net.creationDateColumn=已建立连接 @@ -857,17 +860,17 @@ settings.net.inbound=数据包进入 settings.net.outbound=数据包出口 settings.net.reSyncSPVChainLabel=重新同步SPV链 settings.net.reSyncSPVChainButton=删除SPV链文件并重新同步 -settings.net.reSyncSPVSuccess=SPV链文件已被删除。 您现在需要重新启动应用程序\n\n重新启动后,可能需要一段时间才能与网络重新同步,只有重新同步完成后才会看到所有的事务。\n\n请在重新同步完成后重新启动,因为有时会导致不平衡显示的不一致。 -settings.net.reSyncSPVAfterRestart=SPV链文件已被删除。 请耐心等待,与网络重新同步可能需要一段时间。 +settings.net.reSyncSPVSuccess=The SPV chain file will be deleted on the next startup. You need to restart your application now.\n\nAfter the restart it can take a while to resync with the network and you will only see all transactions once the resync is completed.\n\nPlease restart again after the resync has completed because there are sometimes inconsistencies that result in incorrect balances to display. +settings.net.reSyncSPVAfterRestart=The SPV chain file has been deleted. Please be patient. It can take a while to resync with the network. settings.net.reSyncSPVAfterRestartCompleted=重新同步刚刚完成,请重启应用程序。 settings.net.reSyncSPVFailed=无法删除SPV链文件 setting.about.aboutBisq=关于 Bisq -setting.about.about=Bisq 是一个开源项目、去中心化、点对点交易、隐私保护的交易比特币与法定货币或其他数字货币。请到我们项目的网站阅读更多关于Bisq的信息。 +setting.about.about=Bisq is open-source software which facilitates the exchange of bitcoin with national currencies (and other cryptocurrencies) through a decentralized peer-to-peer network in a way that strongly protects user privacy. Learn more about Bisq on our project web page. setting.about.web=Bisq 网站 setting.about.code=源代码 setting.about.agpl=AGPL License setting.about.support=支持 Bisq -setting.about.def=Bisq不是一个公司,而是一个社区项目,开放参与。 如果您想参与或支持Bisq,请点击下面连接。 +setting.about.def=Bisq is not a company—it is a project open to the community. If you want to participate or support Bisq please follow the links below. setting.about.contribute=贡献 setting.about.donate=捐助 setting.about.providers=数据提供商 @@ -889,7 +892,7 @@ setting.about.subsystems.val=网络版本: {0}; P2P 消息版本: {1}; 本地 DB account.tab.arbitratorRegistration=仲裁员注册 account.tab.account=账户 account.info.headline=欢迎来到 Bisq 账户 -account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators and create a backup of your wallet & account data.\n\nAn empty Bitcoin wallet was created the first time you started Bisq.\nWe recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & Security:\nBisq is a decentralized exchange – meaning all of your data is kept on your computer - there are no servers and we have no access to your personal info, your funds or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). +account.info.msg=Here you can add trading accounts for national currencies & altcoins, select arbitrators, and create a backup of your wallet & account data.\n\nA new Bitcoin wallet was created the first time you started Bisq.\n\nWe strongly recommend that you write down your Bitcoin wallet seed words (see tab on the top) and consider adding a password before funding. Bitcoin deposits and withdrawals are managed in the \"Funds\" section.\n\nPrivacy & security note: because Bisq is a decentralized exchange, all your data is kept on your computer. There are no servers, so we have no access to your personal info, your funds, or even your IP address. Data such as bank account numbers, altcoin & Bitcoin addresses, etc are only shared with your trading partner to fulfill trades you initiate (in case of a dispute the arbitrator will see the same data as your trading peer). account.menu.paymentAccount=法定货币账户 account.menu.altCoinsAccountView=数字货币账户 @@ -902,7 +905,7 @@ account.arbitratorRegistration.pubKey=Public key account.arbitratorRegistration.register=注册仲裁员 account.arbitratorRegistration.revoke=撤销注册 -account.arbitratorRegistration.info.msg=请注意,撤销后需要保留15天,因为可能有交易正在使用你作为仲裁员。最大 允许的交易期限为8天,纠纷过程最多可能需要7天。 +account.arbitratorRegistration.info.msg=Please note that you need to stay available for 15 days after revoking as there might be trades which are using you as arbitrator. The max. allowed trade period is 8 days and the dispute process might take up to 7 days. account.arbitratorRegistration.warn.min1Language=您需要设置至少1种语言。\n我们已经为您添加了默认语言。 account.arbitratorRegistration.removedSuccess=您已从 P2P 网络成功删除您的仲裁员。 account.arbitratorRegistration.removedFailed=无法删除仲裁员:.{0} @@ -921,7 +924,7 @@ account.arbitratorSelection.noLang=您可以选择至少说1种常规语言的 account.arbitratorSelection.minOne=您至少需要选择一名仲裁员 account.altcoin.yourAltcoinAccounts=Your altcoin accounts -account.altcoin.popup.wallet.msg=请确保您按照{1}网页上所述使用{0}钱包的要求\n使用集中式交易所的钱包,您无法控制钥匙或使用不兼容的钱包软件可能会导致交易资金的流失!\n仲裁员不是{2}专家,在这种情况下不能帮助。 +account.altcoin.popup.wallet.msg=Please be sure that you follow the requirements for the usage of {0} wallets as described on the {1} web page.\nUsing wallets from centralized exchanges where (a) you don''t control your keys or (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=我了解并确定我知道我需要哪种钱包。 account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill the following requirements:\n\nFor sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as that would be required in case of a dispute.\nmonero-wallet-cli (use the command get_tx_key)\nmonero-wallet-gui (go to history tab and click on the (P) button for payment proof)\n\nIn addition to XMR checktx tool (https://xmr.llcoins.net/checktx.html) verification can also be accomplished in-wallet.\nmonero-wallet-cli : using command (check_tx_key).\nmonero-wallet-gui : on the Advanced > Prove/Check page.\nAt normal block explorers the transfer is not verifiable.\n\nYou need to provide the arbitrator the following data in case of a dispute:\n- The tx private key\n- The transaction hash\n- The recipient's public address\n\nIf you cannot provide the above data or if you used an incompatible wallet it would result in losing the dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the arbitrator in case of a dispute.\n\nThere is no payment ID required, just the normal public address.\nIf you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) or the Monero forum (https://forum.getmonero.org) to find more information. account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill the following requirements:\n\nTo send BLUR you must use the Blur Network CLI or GUI Wallet. \n\nIf you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save this information. Immediately after sending the transfer, you must use the command 'get_tx_key' to retrieve the transaction private key. If you fail to perform this step, you may not be able to retrieve the key later. \n\nIf you are using the Blur Network GUI Wallet, the transaction private key and transaction ID can be found conveniently in the "History" tab. Immediately after sending, locate the transaction of interest. Click the "?" symbol in the lower-right corner of the box containing the transaction. You must save this information. \n\nIn the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\nIf you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\nIf you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). @@ -949,14 +952,14 @@ account.password.removePw.button=移除密码 account.password.removePw.headline=移除钱包的密码保护 account.password.setPw.button=设置密码 account.password.setPw.headline=设置钱包的密码保护 -account.password.info=使用密码保护,您需要在将比特币从钱包中取出时输入密码,或者要从还原密钥和应用程序启动时查看或恢复钱包。 +account.password.info=With password protection you'll need to enter your password at application startup, when withdrawing bitcoin out of your wallet, and when restoring your wallet from seed words. account.seed.backup.title=备份您的钱包还原密钥 -account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with those seed words and the date.\nThe seed words are used for both the BTC and the BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory at the \"Account/Backup\" screen to recover the valid application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! +account.seed.info=Please write down both wallet seed words and the date! You can recover your wallet any time with seed words and the date.\nThe same seed words are used for the BTC and BSQ wallet.\n\nYou should write down the seed words on a sheet of paper. Do not save them on your computer.\n\nPlease note that the seed words are NOT a replacement for a backup.\nYou need to create a backup of the whole application directory from the \"Account/Backup\" screen to recover application state and data.\nImporting seed words is only recommended for emergency cases. The application will not be functional without a proper backup of the database files and keys! account.seed.warn.noPw.msg=您还没有设置一个可以保护还原密钥显示的钱包密码\n\n要显示还原密钥吗? account.seed.warn.noPw.yes=是的,不要再问我 account.seed.enterPw=输入密码查看还原密钥 -account.seed.restore.info=请注意,您不能从旧的 Bitsq 版本(0.5.0之前的任何版本)导入钱包,因为钱包格式已更改!\n\n如果您想将资金从旧版本转移到新的Bisq应用程序,请使用比特币交易发送\n\n还要注意,钱包还原仅适用于紧急情况,可能会导致内部钱包数据库出现问题。 +account.seed.restore.info=Please make a backup before applying restore from seed words. Be aware that wallet restore is only for emergency cases and might cause problems with the internal wallet database.\nIt is not a way for applying a backup! Please use a backup from the application data directory for restoring a previous application state. account.seed.restore.ok=好的,我了解并想要恢复 @@ -1433,6 +1436,8 @@ dao.proposal.display.option=Option dao.proposal.table.header.proposalType=提议类型 dao.proposal.table.header.link=Link +dao.proposal.table.header.myVote=My vote +dao.proposal.table.header.remove=移除 dao.proposal.table.icon.tooltip.removeProposal=Remove my proposal dao.proposal.table.icon.tooltip.changeVote=Current vote: ''{0}''. Change vote to: ''{1}'' @@ -1501,8 +1506,8 @@ dao.wallet.send.send=发送 BSQ 资金 dao.wallet.send.sendBtc=Send BTC funds dao.wallet.send.sendFunds.headline=确定提现请求 dao.wallet.send.sendFunds.details=发送: {0}\n来自: {1}\n要求的交易费: {2} ({3} 聪/byte)\n交易大小: {4} Kb\n\n收件人将收到: {5}\n\n您确定您想要提现这些数量吗? -dao.wallet.chainHeightSynced=同步至块:{0}(最新块:{1}) -dao.wallet.chainHeightSyncing=同步块:{0}(最新块:{1}) +dao.wallet.chainHeightSynced=Latest verified block: {0} +dao.wallet.chainHeightSyncing=Awaiting blocks... Verified {0} blocks out of {1} dao.wallet.tx.type=类型 # suppress inspection "UnusedProperty" @@ -1579,7 +1584,7 @@ displayUpdateDownloadWindow.verify.failed=验证失败。\n请到 https://bisq.i displayUpdateDownloadWindow.success=新版本成功下载并验证签名(s) 。\n\n请打开下载目录,关闭应用程序并安装最新版本。 displayUpdateDownloadWindow.download.openDir=打开下载目录 -disputeSummaryWindow.title=概要 +dispute概要Window.title=概要 disputeSummaryWindow.openDate=Ticket opening date disputeSummaryWindow.role=Trader's role disputeSummaryWindow.evidence=Evidence @@ -1741,7 +1746,7 @@ popup.headline.error=错误 popup.doNotShowAgain=不要再显示 popup.reportError.log=打开日志文件 popup.reportError.gitHub=报告至Github issue tracker -popup.reportError={0}\n\nTo help us to improve the software please report the bug at our issue tracker at GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click the below buttons.\nIt will make debugging easier if you can attach the bisq.log file as well. +popup.reportError={0}\n\nTo help us to improve the software please report the bug on our issue tracker on GitHub (https://github.com/bisq-network/bisq-desktop/issues).\nThe error message will be copied to the clipboard when you click a button below.\nIt will make debugging easier if you can attach the bisq.log file as well. popup.error.tryRestart=请尝试重启您的应用程序或者检查您的网络连接。 popup.error.takeOfferRequestFailed=An error occurred when someone tried to take one of your offers:\n{0} @@ -1778,7 +1783,7 @@ popup.warning.nodeBanned=One of the {0} nodes got banned. Please restart your ap popup.warning.priceRelay=price relay popup.warning.seed=种子 -popup.info.securityDepositInfo=为了确保两个交易者都遵守交易协议,他们需要支付保证金\n\n存款将留在您当地的交易钱包中,直到委托被另一个交易者下单\n交易成功完成后,您将退还给您\n\n请注意,如果您有未完成委托,您需要保持应用程序的运行。 当另一个交易者想要接受您的委托时,需要您的应用程序在线执行交易协议\n确保您的待机模式被取消,因为这将断开网络(显示器的待机状态不是问题)。 +popup.info.securityDepositInfo=To ensure both traders follow the trade protocol, both traders need to pay a security deposit.\n\nThis deposit is kept in your trade wallet until your trade has been successfully completed, and then it's refunded to you.\n\nPlease note: if you're creating a new offer, Bisq needs to be running for another trader to take it. To keep your offers online, keep Bisq running and make sure this computer remains online too (i.e., make sure it doesn't switch to standby mode...monitor standby is fine). popup.info.cashDepositInfo=Please be sure that you have a bank branch in your area to be able to make the cash deposit.\nThe bank ID (BIC/SWIFT) of the seller''s bank is: {0}. popup.info.cashDepositInfo.confirm=I confirm that I can make the deposit diff --git a/core/update_translations.sh b/core/update_translations.sh index 17a80538e1..396e23f265 100755 --- a/core/update_translations.sh +++ b/core/update_translations.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash cd $(dirname $0) -tx pull -l de,el_GR,es,hu_HU,pt_BR,ro,ru,sr,zh_CN,vi,th_TH,fa +tx pull -l de,el_GR,es,hu_HU,pt_BR,ro,ru,sr,zh_CN,vi,th_TH,fa,fr translations="translations/bisq-desktop.displaystringsproperties" i18n="src/main/resources/i18n" @@ -18,5 +18,6 @@ mv "$translations/zh_CN.properties" "$i18n/displayStrings_zh.properties" mv "$translations/vi.properties" "$i18n/displayStrings_vi.properties" mv "$translations/th_TH.properties" "$i18n/displayStrings_th.properties" mv "$translations/fa.properties" "$i18n/displayStrings_fa.properties" +mv "$translations/fr.properties" "$i18n/displayStrings_fr.properties" rm -rf $translations From c87f29a0ece4a83b6308d21f5ee011be24a49516 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 10:05:57 +0100 Subject: [PATCH 27/52] Update local stores --- .../AccountAgeWitnessStore_BTC_MAINNET | Bin 640746 -> 655099 bytes .../TradeStatistics2Store_BTC_MAINNET | Bin 3809932 -> 4173381 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET b/p2p/src/main/resources/AccountAgeWitnessStore_BTC_MAINNET index 5e7fc507965c9dd2b3ab2ebef9fb11fb328e8dea..4b66bdd48c69a330013fa2895236c5e4a9922c2d 100644 GIT binary patch delta 19310 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 W8gO_ZI4}^hiqn|)EVntq39$tVyp|CF delta 6728 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 z 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%0DRkh|>yHmY-wHtP7 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 z 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� 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%0A3Pb^gP?HLHi~ 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

Svd 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 delta 63280 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

{3}bv?|)+_ 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 fdg8^-X+Z_6Y0@P5|9W?v}O`=b8 From 38e5688dc6cd8f77610da4f336dd34c9ac207ab8 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 10:16:35 +0100 Subject: [PATCH 28/52] Remove spaces upfront as long as we don't use a monospace font --- core/src/main/java/bisq/core/util/BSFormatter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/bisq/core/util/BSFormatter.java b/core/src/main/java/bisq/core/util/BSFormatter.java index 4e9470e6f0..8d6677b2a4 100644 --- a/core/src/main/java/bisq/core/util/BSFormatter.java +++ b/core/src/main/java/bisq/core/util/BSFormatter.java @@ -318,10 +318,11 @@ public class BSFormatter { @NotNull public String fillUpPlacesWithEmptyStrings(String formattedNumber, int maxNumberOfDigits) { - int numberOfPlacesToFill = maxNumberOfDigits - formattedNumber.length(); + //FIXME: temporary deactivate adding spaces in front of numbers as we don't use a monospace font right now. + /*int numberOfPlacesToFill = maxNumberOfDigits - formattedNumber.length(); for (int i = 0; i < numberOfPlacesToFill; i++) { formattedNumber = " " + formattedNumber; - } + }*/ return formattedNumber; } From 50d4c6c1fc3b3273657d5e40d89fac5a2d16d29f Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 13:59:08 +0100 Subject: [PATCH 29/52] Bump version number --- build.gradle | 2 +- common/src/main/java/bisq/common/app/Version.java | 2 +- desktop/package/linux/64bitBuild.sh | 2 +- desktop/package/linux/Dockerfile | 2 +- desktop/package/linux/rpm.sh | 2 +- desktop/package/macosx/Info.plist | 4 ++-- desktop/package/macosx/create_app.sh | 2 +- desktop/package/macosx/finalize.sh | 2 +- desktop/package/windows/64bitBuild.bat | 2 +- desktop/package/windows/Bisq.iss | 2 +- relay/src/main/resources/version.txt | 2 +- seednode/src/main/java/bisq/seednode/SeedNodeMain.java | 2 +- 12 files changed, 13 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index bc35e4e5ce..c287f4d953 100644 --- a/build.gradle +++ b/build.gradle @@ -265,7 +265,7 @@ configure(project(':desktop')) { apply plugin: 'witness' apply from: '../gradle/witness/gradle-witness.gradle' - version = '0.9.0-SNAPSHOT' + version = '0.9.1' mainClassName = 'bisq.desktop.app.BisqAppMain' diff --git a/common/src/main/java/bisq/common/app/Version.java b/common/src/main/java/bisq/common/app/Version.java index cc593db966..c5dc72de8b 100644 --- a/common/src/main/java/bisq/common/app/Version.java +++ b/common/src/main/java/bisq/common/app/Version.java @@ -27,7 +27,7 @@ public class Version { // VERSION = 0.5.0 introduces proto buffer for the P2P network and local DB and is a not backward compatible update // Therefore all sub versions start again with 1 // We use semantic versioning with major, minor and patch - public static final String VERSION = "0.9.0"; + public static final String VERSION = "0.9.1"; public static int getMajorVersion(String version) { return getSubVersion(version, 0); diff --git a/desktop/package/linux/64bitBuild.sh b/desktop/package/linux/64bitBuild.sh index 8bd24ee4fb..e256205ff0 100644 --- a/desktop/package/linux/64bitBuild.sh +++ b/desktop/package/linux/64bitBuild.sh @@ -6,7 +6,7 @@ mkdir -p deploy set -e # Edit version -version=0.9.0 +version=0.9.1 sharedDir="/media/sf_vm_shared_ubuntu" diff --git a/desktop/package/linux/Dockerfile b/desktop/package/linux/Dockerfile index 7e19593762..485fec29cd 100644 --- a/desktop/package/linux/Dockerfile +++ b/desktop/package/linux/Dockerfile @@ -8,7 +8,7 @@ # pull base image FROM openjdk:8-jdk -ENV version 0.9.0 +ENV version 0.9.1 RUN apt-get update && apt-get install -y --no-install-recommends openjfx && rm -rf /var/lib/apt/lists/* && apt-get install -y vim fakeroot diff --git a/desktop/package/linux/rpm.sh b/desktop/package/linux/rpm.sh index ebac935bf4..fae2794c42 100644 --- a/desktop/package/linux/rpm.sh +++ b/desktop/package/linux/rpm.sh @@ -2,7 +2,7 @@ ## From https://github.com/bisq-network/bisq-desktop/issues/401#issuecomment-372091261 -version=0.9.0 +version=0.9.1 alien -r -g /home/$USER/Desktop/Bisq-64bit-$version.deb find bisq-$version -type f | while read LIB; do LDDOUT=$(ldd $LIB 2>&1); LDDRETVAL=$?;if [ \( -z "${LDDOUT%%*you do not have execution permission for*}" \) -a \( $LDDRETVAL -eq 0 \) ]; then chmod -v +x $LIB;fi;done diff --git a/desktop/package/macosx/Info.plist b/desktop/package/macosx/Info.plist index 43ee699989..668032ab8d 100644 --- a/desktop/package/macosx/Info.plist +++ b/desktop/package/macosx/Info.plist @@ -5,10 +5,10 @@ CFBundleVersion - 0.9.0 + 0.9.1 CFBundleShortVersionString - 0.9.0 + 0.9.1 CFBundleExecutable Bisq diff --git a/desktop/package/macosx/create_app.sh b/desktop/package/macosx/create_app.sh index 71bf732e3e..4a981bbfd7 100755 --- a/desktop/package/macosx/create_app.sh +++ b/desktop/package/macosx/create_app.sh @@ -6,7 +6,7 @@ mkdir -p deploy set -e -version="0.9.0" +version="0.9.1" cd .. ./gradlew :desktop:build -x test shadowJar diff --git a/desktop/package/macosx/finalize.sh b/desktop/package/macosx/finalize.sh index d62f059e71..3a3c066ed5 100755 --- a/desktop/package/macosx/finalize.sh +++ b/desktop/package/macosx/finalize.sh @@ -2,7 +2,7 @@ cd ../../ -version="0.9.0" +version="0.9.1" target_dir="releases/$version" diff --git a/desktop/package/windows/64bitBuild.bat b/desktop/package/windows/64bitBuild.bat index 28b121b8cc..259a33a17a 100644 --- a/desktop/package/windows/64bitBuild.bat +++ b/desktop/package/windows/64bitBuild.bat @@ -7,7 +7,7 @@ cd ../../ -SET version=0.9.0 +SET version=0.9.1 :: Private setup ::SET outdir=\\VBOXSVR\vm_shared_windows diff --git a/desktop/package/windows/Bisq.iss b/desktop/package/windows/Bisq.iss index 1fc5bb1537..23264dc73c 100644 --- a/desktop/package/windows/Bisq.iss +++ b/desktop/package/windows/Bisq.iss @@ -4,7 +4,7 @@ AppId={{bisq}} AppName=Bisq -AppVersion=0.9.0 +AppVersion=0.9.1 AppVerName=Bisq AppPublisher=Bisq AppComments=Bisq diff --git a/relay/src/main/resources/version.txt b/relay/src/main/resources/version.txt index ac39a106c4..f374f6662e 100644 --- a/relay/src/main/resources/version.txt +++ b/relay/src/main/resources/version.txt @@ -1 +1 @@ -0.9.0 +0.9.1 diff --git a/seednode/src/main/java/bisq/seednode/SeedNodeMain.java b/seednode/src/main/java/bisq/seednode/SeedNodeMain.java index 28306881ed..eecf563956 100644 --- a/seednode/src/main/java/bisq/seednode/SeedNodeMain.java +++ b/seednode/src/main/java/bisq/seednode/SeedNodeMain.java @@ -33,7 +33,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class SeedNodeMain extends ExecutableForAppWithP2p { - private static final String VERSION = "0.9.0"; + private static final String VERSION = "0.9.1"; private SeedNode seedNode; public SeedNodeMain() { From 71e2a92adef6866537da3c8841bf3a1ba4690b5a Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 14:01:02 +0100 Subject: [PATCH 30/52] Set SNAPSHOT again --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c287f4d953..4de676ad81 100644 --- a/build.gradle +++ b/build.gradle @@ -265,7 +265,7 @@ configure(project(':desktop')) { apply plugin: 'witness' apply from: '../gradle/witness/gradle-witness.gradle' - version = '0.9.1' + version = '0.9.1-SNAPSHOT' mainClassName = 'bisq.desktop.app.BisqAppMain' From 0bc29e198c5fab9335e1de223c5a6a9b519f6b15 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 14:20:13 +0100 Subject: [PATCH 31/52] Ignore monospace spacing tests until re-introduced again --- .../desktop/main/offer/offerbook/OfferBookViewModelTest.java | 1 + desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/desktop/src/test/java/bisq/desktop/main/offer/offerbook/OfferBookViewModelTest.java b/desktop/src/test/java/bisq/desktop/main/offer/offerbook/OfferBookViewModelTest.java index 89c2b748a4..4520cc7fa2 100644 --- a/desktop/src/test/java/bisq/desktop/main/offer/offerbook/OfferBookViewModelTest.java +++ b/desktop/src/test/java/bisq/desktop/main/offer/offerbook/OfferBookViewModelTest.java @@ -405,6 +405,7 @@ public class OfferBookViewModelTest { assertEquals(10, model.maxPlacesForMarketPriceMargin.intValue()); //" (-10.00%)" } + @Ignore @Test public void testGetPrice() { OfferBook offerBook = mock(OfferBook.class); diff --git a/desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java b/desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java index 198f383c02..d563d79e2c 100644 --- a/desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java +++ b/desktop/src/test/java/bisq/desktop/util/BSFormatterTest.java @@ -34,6 +34,7 @@ import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -179,6 +180,7 @@ public class BSFormatterTest { assertEquals("0.1000 - 0.2000", formatter.formatAmount(offer, 4, true, 15)); } + @Ignore @Test public void testFormatAmountWithAlignmenWithDecimalsNoRange() { OfferPayload offerPayload = mock(OfferPayload.class); From bab3376c414e56ffc54eb33c87e3eb5aef1d8c75 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 14:28:12 +0100 Subject: [PATCH 32/52] Set back version number because of test failures on Travis --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 4de676ad81..c287f4d953 100644 --- a/build.gradle +++ b/build.gradle @@ -265,7 +265,7 @@ configure(project(':desktop')) { apply plugin: 'witness' apply from: '../gradle/witness/gradle-witness.gradle' - version = '0.9.1-SNAPSHOT' + version = '0.9.1' mainClassName = 'bisq.desktop.app.BisqAppMain' From 517429e8dfdd8c4b5a9b3820a54a8ae1e8fddc73 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 14:32:05 +0100 Subject: [PATCH 33/52] Set SNAPSHOT again --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c287f4d953..4de676ad81 100644 --- a/build.gradle +++ b/build.gradle @@ -265,7 +265,7 @@ configure(project(':desktop')) { apply plugin: 'witness' apply from: '../gradle/witness/gradle-witness.gradle' - version = '0.9.1' + version = '0.9.1-SNAPSHOT' mainClassName = 'bisq.desktop.app.BisqAppMain' From 9e22a7df6d0a02c3859dba41013474b1396eb1dd Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Thu, 13 Dec 2018 14:54:08 +0100 Subject: [PATCH 34/52] Add print tool for all markets used in https://github.com/bisq-network/bisq-website/blob/master/_includes/market_currency_selector.html --- .../java/bisq/desktop/MarketsPrintTool.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 desktop/src/test/java/bisq/desktop/MarketsPrintTool.java diff --git a/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java b/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java new file mode 100644 index 0000000000..3d34cbfb6c --- /dev/null +++ b/desktop/src/test/java/bisq/desktop/MarketsPrintTool.java @@ -0,0 +1,79 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.desktop; + +import bisq.core.locale.CryptoCurrency; +import bisq.core.locale.CurrencyUtil; +import bisq.core.locale.FiatCurrency; + +import java.util.Comparator; +import java.util.List; +import java.util.Locale; +import java.util.stream.Stream; + +public class MarketsPrintTool { + + public static void main(String[] args) { + // Prints out all coins in the format used in the market_currency_selector.html. + // Run that and copy paste the result to the market_currency_selector.html at new releases. + StringBuilder sb = new StringBuilder(); + Locale.setDefault(new Locale("en", "US")); + + // + // + + final List allSortedFiatCurrencies = CurrencyUtil.getAllSortedFiatCurrencies(); + final Stream fiatStream = allSortedFiatCurrencies.stream() + .filter(e -> !e.getCurrency().getCurrencyCode().equals("BSQ")) + .filter(e -> !e.getCurrency().getCurrencyCode().equals("BTC")) + .map(e -> new MarketCurrency("btc_" + e.getCode().toLowerCase(), e.getName(), e.getCode())) + .distinct(); + + final List allSortedCryptoCurrencies = CurrencyUtil.getAllSortedCryptoCurrencies(); + final Stream cryptoStream = allSortedCryptoCurrencies.stream() + .filter(e -> !e.getCode().equals("BSQ")) + .filter(e -> !e.getCode().equals("BTC")) + .map(e -> new MarketCurrency(e.getCode().toLowerCase() + "_btc", e.getName(), e.getCode())) + .distinct(); + + Stream.concat(fiatStream, cryptoStream) + .sorted(Comparator.comparing(o -> o.currencyName.toLowerCase())) + .distinct() + .forEach(e -> sb.append("") + .append("\n")); + System.out.println(sb.toString()); + } + + private static class MarketCurrency { + final String marketSelector; + final String currencyName; + final String currencyCode; + + MarketCurrency(String marketSelector, String currencyName, String currencyCode) { + this.marketSelector = marketSelector; + this.currencyName = currencyName; + this.currencyCode = currencyCode; + } + } +} From 47c59f8b3f730e27a4f85bb9e8d62d8bce249eef Mon Sep 17 00:00:00 2001 From: Devin Bileck <603793+devinbileck@users.noreply.github.com> Date: Fri, 14 Dec 2018 23:57:26 -0800 Subject: [PATCH 35/52] Fix when setting long PATH environment variable Avoid using setx to append to the PATH environment variable as it will truncate to 1024 characters. Instead, use SetEnvironmentVariable in powershell. --- scripts/install_java.bat | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/install_java.bat b/scripts/install_java.bat index c821ba8059..3a2f0ae127 100644 --- a/scripts/install_java.bat +++ b/scripts/install_java.bat @@ -1,6 +1,6 @@ @echo off -::Ensure we have administrative privileges in order to install files and set environment variables +:: Ensure we have administrative privileges in order to install files and set environment variables >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' == '0' ( ::If no error is encountered, we have administrative privileges @@ -30,7 +30,7 @@ if exist "%PROGRAMFILES%\Java\openjdk\jdk-%jdk_version%" ( echo Downloading required files to %TEMP% powershell -Command "Invoke-WebRequest %jdk_url% -OutFile $env:temp\%jdk_filename%.tar.gz" -::Download 7zip (command line version) in order to extract the tar.gz file since there is no native support in Windows +:: Download 7zip (command line version) in order to extract the tar.gz file since there is no native support in Windows powershell -Command "Invoke-WebRequest https://www.7-zip.org/a/7za920.zip -OutFile $env:temp\7za920.zip" powershell -Command "Expand-Archive $env:temp\7za920.zip -DestinationPath $env:temp\7za920 -Force" @@ -49,8 +49,9 @@ del /Q %TEMP%\%jdk_filename%.tar.gz :SetEnvVars echo Setting environment variables -setx /M JAVA_HOME "%PROGRAMFILES%\Java\openjdk\jdk-%jdk_version%" +powershell -Command "[Environment]::SetEnvironmentVariable('JAVA_HOME', '%PROGRAMFILES%\Java\openjdk\jdk-%jdk_version%', 'Machine')" set java_bin=%%JAVA_HOME%%\bin -echo %PATH%|find /i "%java_bin%">nul || setx /M PATH "%PATH%;%java_bin%" +echo %PATH%|find /i "%java_bin%">nul || powershell -Command "[Environment]::SetEnvironmentVariable('PATH', '%PATH%;%java_bin%', 'Machine')" +echo Done! pause From 9e21a388fa3b384eebd34e5f9ffd62105579a73b Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Tue, 18 Dec 2018 12:49:19 -0300 Subject: [PATCH 36/52] Add missing @Override --- .../main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java b/core/src/main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java index da704161f2..fd177aa71a 100644 --- a/core/src/main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java +++ b/core/src/main/java/bisq/core/btc/setup/BtcDeterministicKeyChain.java @@ -65,6 +65,7 @@ class BtcDeterministicKeyChain extends DeterministicKeyChain { return new BtcDeterministicKeyChain(keyCrypter, aesKey, this); } + @Override protected DeterministicKeyChain makeKeyChainFromSeed(DeterministicSeed seed) { return new BtcDeterministicKeyChain(seed); } From 6633e22ffd65a7aa9fd6d99b35dec2bf512515ac Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Tue, 18 Dec 2018 12:50:07 -0300 Subject: [PATCH 37/52] BisqWalletFactory: Remove method already declared on superinterface --- core/src/main/java/bisq/core/btc/setup/WalletConfig.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/src/main/java/bisq/core/btc/setup/WalletConfig.java b/core/src/main/java/bisq/core/btc/setup/WalletConfig.java index 2b8eb1b531..3e88fd6395 100644 --- a/core/src/main/java/bisq/core/btc/setup/WalletConfig.java +++ b/core/src/main/java/bisq/core/btc/setup/WalletConfig.java @@ -95,8 +95,6 @@ public class WalletConfig extends AbstractIdleService { /////////////////////////////////////////////////////////////////////////////////////////// public interface BisqWalletFactory extends WalletProtobufSerializer.WalletFactory { - Wallet create(NetworkParameters params, KeyChainGroup keyChainGroup); - Wallet create(NetworkParameters params, KeyChainGroup keyChainGroup, boolean isBsqWallet); } From a164dec42734dfb144219547a509e26951cbec68 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Tue, 18 Dec 2018 12:50:25 -0300 Subject: [PATCH 38/52] BisqRiskAnalysis: update comment --- core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java b/core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java index e4ba55f8d9..d148202165 100644 --- a/core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java +++ b/core/src/main/java/bisq/core/btc/wallet/BisqRiskAnalysis.java @@ -58,7 +58,8 @@ import static com.google.common.base.Preconditions.checkState; // Copied from DefaultRiskAnalysis as DefaultRiskAnalysis has mostly private methods and constructor so we cannot // override it. -// Only change to DefaultRiskAnalysis is removal of the RBF check. +// The changes to DefaultRiskAnalysis are: removal of the RBF check and accept as standard an OP_RETURN outputs +// with 0 value. // For Bisq's use cases RBF is not considered risky. Requiring a confirmation for RBF payments from a users // external wallet to Bisq would hurt usability. The trade transaction requires anyway a confirmation and we don't see // a use case where a Bisq user accepts unconfirmed payment from untrusted peers and would not wait anyway for at least From 5c5b93803c252b0ff459308f27aeae5df27e642e Mon Sep 17 00:00:00 2001 From: Aruna Surya Date: Tue, 18 Dec 2018 20:16:43 +0100 Subject: [PATCH 39/52] Correct minor grammatical mistakes in the T&C --- .../java/bisq/desktop/main/overlays/windows/TacWindow.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/overlays/windows/TacWindow.java b/desktop/src/main/java/bisq/desktop/main/overlays/windows/TacWindow.java index 17095c2bd3..c2d410b2c8 100644 --- a/desktop/src/main/java/bisq/desktop/main/overlays/windows/TacWindow.java +++ b/desktop/src/main/java/bisq/desktop/main/overlays/windows/TacWindow.java @@ -77,7 +77,7 @@ public class TacWindow extends Overlay { "3. The " + Res.getBaseCurrencyName() + " market price is delivered by 3rd parties (BitcoinAverage, Poloniex, Coinmarketcap). " + "It is your responsibility to verify the price with other sources for correctness.\n\n" + - "4. Any Fiat payment method carries a potential risk for bank chargeback. By accepting the \"User Agreement\" the users confirms " + + "4. Any Fiat payment method carries a potential risk for bank chargeback. By accepting the \"User Agreement\" the user confirms " + "to be aware of those risks and in no case will claim legal responsibility to the authors or copyright holders of the software.\n\n" + "5. Any dispute, controversy or claim arising out of or relating to the use of the software shall be settled by arbitration in " + @@ -87,7 +87,7 @@ public class TacWindow extends Overlay { "6. The user confirms that he has read and agreed to the rules regarding the dispute process:\n" + " - You must complete trades within the maximum duration specified for each payment method.\n" + " - You must enter the trade ID in the \"reason for payment\" text field when doing the fiat payment transfer.\n" + - " - If the bank of the fiat sender charges fees the sender (" + Res.getBaseCurrencyCode() + " buyer) has to cover the fees.\n" + + " - If the bank of the fiat sender charges fees, the sender (" + Res.getBaseCurrencyCode() + " buyer) has to cover the fees.\n" + " - You must cooperate with the arbitrator during the arbitration process.\n" + " - You must reply within 48 hours to each arbitrator inquiry.\n" + " - Failure to follow the above requirements may result in loss of your security deposit.\n\n" + From d3e9ca8899a6cc349146d5928fcabc5b157199d8 Mon Sep 17 00:00:00 2001 From: stevebrush Date: Wed, 19 Dec 2018 11:33:12 +0100 Subject: [PATCH 40/52] List Iridium (IRD) --- .../main/java/bisq/asset/coins/Iridium.java | 25 ++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/IridiumTest.java | 40 +++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Iridium.java create mode 100644 assets/src/test/java/bisq/asset/coins/IridiumTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Iridium.java b/assets/src/main/java/bisq/asset/coins/Iridium.java new file mode 100644 index 0000000000..f1263e81d5 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Iridium.java @@ -0,0 +1,25 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ +package bisq.asset.coins; +import bisq.asset.Coin; +import bisq.asset.RegexAddressValidator; + +public class Iridium extends Coin { + public Iridium() { + super("Iridium", "IRD", new RegexAddressValidator("^ir[1-9A-Za-z^OIl]{95}")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index fc24326c77..33c4d73534 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -24,6 +24,7 @@ bisq.asset.coins.Ether bisq.asset.coins.EtherClassic bisq.asset.coins.Gridcoin bisq.asset.coins.Horizen +bisq.asset.coins.Iridium bisq.asset.coins.Kekcoin bisq.asset.coins.Litecoin bisq.asset.coins.Mask diff --git a/assets/src/test/java/bisq/asset/coins/IridiumTest.java b/assets/src/test/java/bisq/asset/coins/IridiumTest.java new file mode 100644 index 0000000000..c9572aaaac --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/IridiumTest.java @@ -0,0 +1,40 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; +import bisq.asset.AbstractAssetTest; +import org.junit.Test; + +public class IridiumTest extends AbstractAssetTest { + public IridiumTest() { + super(new Iridium()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("ir2oHYW7MbBQuMzTELg5o6FRqXNwWCU1wNzFsJG3VUCT9qMwayNsdwaQ85NHC3vLFSQ1eWtAPsYpvV4tXpnXKM9M377BW5KQ4"); + assertValidAddress("ir2PK6y3hjq9wLqdTQnPQ2FXhCJqJ1pKXNXezZUqeUWbTb3T74Xqiy1Yqwtkgri934C1E9Ba2quJDDh75nxDqEQj1K8i9DQXf"); + assertValidAddress("ir3steHWr1FRbtpjWWCAaxhzNggzJK6tqBy3qFw32YGV4CJdRsgYrpLifA7ivGdgZGNRKbRtYUp9GKvxnFSRFWTt2XuWunRYb"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("ir2oHYW7MbBQuMzTELg5o6FRqXNwWCU1wNzFsJG3VUCT9qMwayNsdwaQ85NHC3vLFSQ1eWtAPsYpvV4tXpnXKM9M377BW5KQ4t"); + assertInvalidAddress("ir2PK6y3hjq9wLqdTQnPQ2FXhCJqJ1pKXNXezZUqeUWb#Tb3T74Xqiy1Yqwtkgri934C1E9Ba2quJDDh75nxDqEQj1K8i9DQXf"); + assertInvalidAddress(""); + } +} From 161638891268bb0b6c5373defeee0d665fb950e3 Mon Sep 17 00:00:00 2001 From: Christoph Atteneder Date: Wed, 19 Dec 2018 16:35:10 +0100 Subject: [PATCH 41/52] Remove unnecessary backslash --- core/src/main/resources/i18n/displayStrings.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index b6c373746b..531fa15b12 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -1057,7 +1057,7 @@ In case of a dispute, you must provide the arbitrator the following data:\n\ - The TXN-Private key\n\ - The transaction hash\n\ - The recipient's public address\n\n\ -Verification of payment can be made using the above data as inputs at \ (http://drgl.info/#check_txn).\n\n\ +Verification of payment can be made using the above data as inputs at (http://drgl.info/#check_txn).\n\n\ If you cannot provide the above data or if you used an incompatible wallet it would result in losing the \ dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the \ arbitrator in case of a dispute. Use of PaymentID is not required.\n\n\ From 6ab548707d9cdb0e3c04a921e3dc6b4b118ecdc8 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Wed, 19 Dec 2018 17:42:33 -0300 Subject: [PATCH 42/52] Fix getActiveKeyChain() typo --- core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java | 2 +- core/src/main/java/bisq/core/btc/wallet/WalletService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java b/core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java index 32572b3de5..ef9902e065 100644 --- a/core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java @@ -636,7 +636,7 @@ public class BsqWalletService extends WalletService implements DaoStateListener /////////////////////////////////////////////////////////////////////////////////////////// protected Set

getAllAddressesFromActiveKeys() { - return wallet.getActiveKeychain().getLeafKeys().stream(). + return wallet.getActiveKeyChain().getLeafKeys().stream(). map(key -> Address.fromP2SHHash(params, key.getPubKeyHash())). collect(Collectors.toSet()); } diff --git a/core/src/main/java/bisq/core/btc/wallet/WalletService.java b/core/src/main/java/bisq/core/btc/wallet/WalletService.java index 97a6d85bcf..43b77805ad 100644 --- a/core/src/main/java/bisq/core/btc/wallet/WalletService.java +++ b/core/src/main/java/bisq/core/btc/wallet/WalletService.java @@ -575,12 +575,12 @@ public abstract class WalletService { @Nullable public DeterministicKey findKeyFromPubKeyHash(byte[] pubKeyHash) { - return wallet.getActiveKeychain().findKeyFromPubHash(pubKeyHash); + return wallet.getActiveKeyChain().findKeyFromPubHash(pubKeyHash); } @Nullable public DeterministicKey findKeyFromPubKey(byte[] pubKey) { - return wallet.getActiveKeychain().findKeyFromPubKey(pubKey); + return wallet.getActiveKeyChain().findKeyFromPubKey(pubKey); } public Address freshReceiveAddress() { From 82fd1df31ef0b2b54f91aeccf3e64c9b3e826b21 Mon Sep 17 00:00:00 2001 From: George Carlson Date: Thu, 13 Dec 2018 22:42:44 -0600 Subject: [PATCH 43/52] List SiaPrimeCoin (SCP) --- .../java/bisq/asset/coins/SiaPrimeCoin.java | 28 ++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../bisq/asset/coins/SiaPrimeCoinTest.java | 45 +++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/SiaPrimeCoin.java create mode 100644 assets/src/test/java/bisq/asset/coins/SiaPrimeCoinTest.java diff --git a/assets/src/main/java/bisq/asset/coins/SiaPrimeCoin.java b/assets/src/main/java/bisq/asset/coins/SiaPrimeCoin.java new file mode 100644 index 0000000000..02296f5bb7 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/SiaPrimeCoin.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Coin; +import bisq.asset.RegexAddressValidator; + +public class SiaPrimeCoin extends Coin { + + public SiaPrimeCoin() { + super("SiaPrimeCoin", "SCP", new RegexAddressValidator("^([0-9a-z]{76})$")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index d093cd01a2..d73b184d2d 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -38,6 +38,7 @@ bisq.asset.coins.QMCoin bisq.asset.coins.Radium bisq.asset.coins.Ryo bisq.asset.coins.Siafund +bisq.asset.coins.SiaPrimeCoin bisq.asset.coins.Spectrecoin bisq.asset.coins.Starwels bisq.asset.coins.SUB1X diff --git a/assets/src/test/java/bisq/asset/coins/SiaPrimeCoinTest.java b/assets/src/test/java/bisq/asset/coins/SiaPrimeCoinTest.java new file mode 100644 index 0000000000..68d54edfe8 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/SiaPrimeCoinTest.java @@ -0,0 +1,45 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class SiaPrimeCoinTest extends AbstractAssetTest { + + public SiaPrimeCoinTest() { + super(new SiaPrimeCoin()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("d9fe1331ed2ae1bbdfe0e2942e84d74b7310648e5a5f14c4980ec2c6a19f08af6894b9060e83"); + assertValidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca2031"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress(""); + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca20311"); + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca203"); + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca2031#"); + assertInvalidAddress("bvQpKvb1SswwxVTuyZocHWCVsUeGq7MwoR"); + assertInvalidAddress("d9fe1331ed2ae1bbdfe0e2942e84d74b7310648e5a5f14c4980ec2c6a19f08af6894b9060E83"); + } +} From a63d9798723146525d89eda4ffd6486798e9d8da Mon Sep 17 00:00:00 2001 From: wangchao Date: Fri, 21 Dec 2018 16:33:21 +0800 Subject: [PATCH 44/52] List SpaceCash (SPACE) --- .../main/java/bisq/asset/coins/SpaceCash.java | 28 ++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/SpaceCashTest.java | 44 +++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/SpaceCash.java create mode 100644 assets/src/test/java/bisq/asset/coins/SpaceCashTest.java diff --git a/assets/src/main/java/bisq/asset/coins/SpaceCash.java b/assets/src/main/java/bisq/asset/coins/SpaceCash.java new file mode 100644 index 0000000000..46e8064477 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/SpaceCash.java @@ -0,0 +1,28 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.Coin; +import bisq.asset.RegexAddressValidator; + +public class SpaceCash extends Coin { + + public SpaceCash() { + super("SpaceCash", "SPACE", new RegexAddressValidator("^([0-9a-z]{76})$")); + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index ea99318ced..730e0e515a 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -45,6 +45,7 @@ bisq.asset.coins.Remix bisq.asset.coins.Ryo bisq.asset.coins.Siafund bisq.asset.coins.SiaPrimeCoin +bisq.asset.coins.SpaceCash bisq.asset.coins.Spectrecoin bisq.asset.coins.Starwels bisq.asset.coins.SUB1X diff --git a/assets/src/test/java/bisq/asset/coins/SpaceCashTest.java b/assets/src/test/java/bisq/asset/coins/SpaceCashTest.java new file mode 100644 index 0000000000..942662c58f --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/SpaceCashTest.java @@ -0,0 +1,44 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class SpaceCashTest extends AbstractAssetTest { + + public SpaceCashTest() { + super(new SpaceCash()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("d9fe1331ed2ae1bbdfe0e2942e84d74b7310648e5a5f14c4980ec2c6a19f08af6894b9060e83"); + assertValidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca2031"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca20311"); + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca203"); + assertInvalidAddress("205cf3be0f04397ee6cc1f52d8ae47f589a4ef5936949c158b2555df291efb87db2bbbca2031#"); + assertInvalidAddress("bvQpKvb1SswwxVTuyZocHWCVsUeGq7MwoR"); + assertInvalidAddress("d9fe1331ed2ae1bbdfe0e2942e84d74b7310648e5a5f14c4980ec2c6a19f08af6894b9060E83"); + } +} From b38f31239a9fd65cd6fb45a882c4bb78a6b9d361 Mon Sep 17 00:00:00 2001 From: Florian Reimair Date: Tue, 27 Nov 2018 03:34:24 +0100 Subject: [PATCH 45/52] Use same private_key in NewTor and RunningTor mode --- build.gradle | 5 ++--- .../java/bisq/network/p2p/network/NewTor.java | 11 +---------- .../bisq/network/p2p/network/RunningTor.java | 5 ++--- .../bisq/network/p2p/network/TorMode.java | 19 +++++++++---------- 4 files changed, 14 insertions(+), 26 deletions(-) diff --git a/build.gradle b/build.gradle index 4de676ad81..64bdc66089 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,6 @@ configure(subprojects) { repositories { mavenCentral() maven { url 'https://jitpack.io' } - maven { url 'https://raw.githubusercontent.com/JesusMcCloud/tor-binary/8.0.3/release/' } } dependencies { @@ -188,10 +187,10 @@ configure(project(':common')) { configure(project(':p2p')) { dependencies { compile project(':common') - compile('com.github.JesusMcCloud.netlayer:tor.native:0.6') { + compile('com.github.JesusMcCloud.netlayer:tor.native:0.6.1') { exclude(module: 'slf4j-api') } - compile('com.github.JesusMcCloud.netlayer:tor.external:0.6') { + compile('com.github.JesusMcCloud.netlayer:tor.external:0.6.1') { exclude(module: 'slf4j-api') } compile('org.apache.httpcomponents:httpclient:4.5.3') { diff --git a/p2p/src/main/java/bisq/network/p2p/network/NewTor.java b/p2p/src/main/java/bisq/network/p2p/network/NewTor.java index 69c0461699..b94c388602 100644 --- a/p2p/src/main/java/bisq/network/p2p/network/NewTor.java +++ b/p2p/src/main/java/bisq/network/p2p/network/NewTor.java @@ -47,21 +47,12 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class NewTor extends TorMode { - /** - * Netlayer stores its hidden service files in a custom - * subdirectory of $torDir/hiddenservice/. Note that the - * {@link HiddenServiceSocket} does add this part on its own, hence, - * {@link NewTor#getHiddenServiceDirectory()} returns only the custom - * subdirectory (which happens to be "") - */ - private static final String HIDDEN_SERVICE_DIRECTORY = "hiddenservice"; - private final String torrcFile; private final String torrcOptions; private final Collection bridgeEntries; public NewTor(File torWorkingDirectory, String torrcFile, String torrcOptions, Collection bridgeEntries) { - super(torWorkingDirectory, HIDDEN_SERVICE_DIRECTORY); + super(torWorkingDirectory); this.torrcFile = torrcFile; this.torrcOptions = torrcOptions; this.bridgeEntries = bridgeEntries; diff --git a/p2p/src/main/java/bisq/network/p2p/network/RunningTor.java b/p2p/src/main/java/bisq/network/p2p/network/RunningTor.java index 88aae8c487..4af31d2ab9 100644 --- a/p2p/src/main/java/bisq/network/p2p/network/RunningTor.java +++ b/p2p/src/main/java/bisq/network/p2p/network/RunningTor.java @@ -40,7 +40,6 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class RunningTor extends TorMode { - private static final String EXTERNAL_TOR_HIDDEN_SERVICE = "externalTorHiddenService"; private final int controlPort; private final String password; private final File cookieFile; @@ -49,7 +48,7 @@ public class RunningTor extends TorMode { public RunningTor(final File torDir, final int controlPort, final String password, final String cookieFile, final boolean useSafeCookieAuthentication) { - super(torDir, EXTERNAL_TOR_HIDDEN_SERVICE); + super(torDir); this.controlPort = controlPort; this.password = password; this.cookieFile = new File(cookieFile); @@ -81,7 +80,7 @@ public class RunningTor extends TorMode { @Override public String getHiddenServiceDirectory() { - return new File(torDir, EXTERNAL_TOR_HIDDEN_SERVICE).getAbsolutePath(); + return new File(torDir, HIDDEN_SERVICE_DIRECTORY).getAbsolutePath(); } } diff --git a/p2p/src/main/java/bisq/network/p2p/network/TorMode.java b/p2p/src/main/java/bisq/network/p2p/network/TorMode.java index 1ddcda3e28..b1a8e88b82 100644 --- a/p2p/src/main/java/bisq/network/p2p/network/TorMode.java +++ b/p2p/src/main/java/bisq/network/p2p/network/TorMode.java @@ -35,11 +35,11 @@ import bisq.common.storage.FileUtil; public abstract class TorMode { /** - * The directory where the private_key file sits in. Kept private, - * because it is only valid for the {@link TorMode#doRollingBackup()} due to the - * inner workings of the Netlayer dependency. + * The sub-directory where the private_key file sits in. Kept + * private, because it only concerns implementations of {@link TorMode}. */ - private final File hiddenServiceDirectory; + protected static final String HIDDEN_SERVICE_DIRECTORY = "hiddenservice"; + protected final File torDir; /** @@ -51,9 +51,8 @@ public abstract class TorMode { * necessarily equal * {@link TorMode#getHiddenServiceDirectory()}. */ - public TorMode(File torDir, String hiddenServiceDir) { + public TorMode(File torDir) { this.torDir = torDir; - this.hiddenServiceDirectory = new File(torDir, hiddenServiceDir); } /** @@ -70,9 +69,9 @@ public abstract class TorMode { * other stuff to the hiddenServiceDir, thus, selecting nothing (i.e. * "") as a hidden service directory is fine. {@link ExternalTor}, * however, does not have a Tor installation path and thus, takes the hidden - * service path literally. Hence, we set - * "torDir/externalTorHiddenService" as the hidden service - * directory. + * service path literally. Hence, we set "torDir/hiddenservice" as + * the hidden service directory. By doing so, we use the same + * private_key file as in {@link NewTor} mode. * * @return "" in {@link NewTor} Mode, * "torDir/externalTorHiddenService" in {@link RunningTor} @@ -84,7 +83,7 @@ public abstract class TorMode { * Do a rolling backup of the "private_key" file. */ protected void doRollingBackup() { - FileUtil.rollingBackup(hiddenServiceDirectory, "private_key", 20); + FileUtil.rollingBackup(new File(torDir, HIDDEN_SERVICE_DIRECTORY), "private_key", 20); } } From 6309908e0df90aadd1871483668dd1fec8c2d610 Mon Sep 17 00:00:00 2001 From: Florian Reimair Date: Fri, 21 Dec 2018 14:20:13 +0100 Subject: [PATCH 46/52] Update Netlayer to 0.6.2 and thus, Tor to 8.0.4 --- build.gradle | 4 ++-- gradle/witness/gradle-witness.gradle | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 64bdc66089..e1471fab7f 100644 --- a/build.gradle +++ b/build.gradle @@ -187,10 +187,10 @@ configure(project(':common')) { configure(project(':p2p')) { dependencies { compile project(':common') - compile('com.github.JesusMcCloud.netlayer:tor.native:0.6.1') { + compile('com.github.JesusMcCloud.netlayer:tor.native:0.6.2') { exclude(module: 'slf4j-api') } - compile('com.github.JesusMcCloud.netlayer:tor.external:0.6.1') { + compile('com.github.JesusMcCloud.netlayer:tor.external:0.6.2') { exclude(module: 'slf4j-api') } compile('org.apache.httpcomponents:httpclient:4.5.3') { diff --git a/gradle/witness/gradle-witness.gradle b/gradle/witness/gradle-witness.gradle index 167a6aee14..254bd863d6 100644 --- a/gradle/witness/gradle-witness.gradle +++ b/gradle/witness/gradle-witness.gradle @@ -21,8 +21,8 @@ dependencyVerification { 'com.googlecode.jcsv:jcsv:73ca7d715e90c8d2c2635cc284543b038245a34f70790660ed590e157b8714a2', 'com.github.sarxos:webcam-capture:d960b7ea8ec3ddf2df0725ef214c3fccc9699ea7772df37f544e1f8e4fd665f6', 'com.jfoenix:jfoenix:4739e37a05e67c3bc9d5b391a1b93717b5a48fa872992616b0964d3f827f8fe6', - 'com.github.JesusMcCloud.netlayer:tor.native:f1bf0096f9eb6020645a65d91aa530d15aef97e69cc5a79d7b2405421f74700a', - 'com.github.JesusMcCloud.netlayer:tor.external:cfba681398c191a1906d6d023a3be28a8fa9b1f4eee52e966daf7b1ae630414f', + 'com.github.JesusMcCloud.netlayer:tor.native:1f44272868c8123f918f7cdc7c9a6e14cb4c11b19437058ad3d1164c03954e0a', + 'com.github.JesusMcCloud.netlayer:tor.external:a01707144f3ffdb62faacec8263cda0a6e2ecfb241b6b1b54626bed7cd161a4a', 'org.apache.httpcomponents:httpclient:db3d1b6c2d6a5e5ad47577ad61854e2f0e0936199b8e05eb541ed52349263135', 'net.sf.jopt-simple:jopt-simple:6f45c00908265947c39221035250024f2caec9a15c1c8cf553ebeecee289f342', 'org.fxmisc.easybind:easybind:666af296dda6de68751668a62661571b5238ac6f1c07c8a204fc6f902b222aaf', @@ -43,7 +43,7 @@ dependencyVerification { 'com.google.code.findbugs:jsr305:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', 'com.google.guava:guava:36a666e3b71ae7f0f0dca23654b67e086e6c93d192f60ba5dfd5519db6c288c8', 'com.google.inject:guice:9b9df27a5b8c7864112b4137fd92b36c3f1395bfe57be42fedf2f520ead1a93e', - 'com.github.JesusMcCloud.netlayer:tor:ac8465b7dda30ea920ec31a6bde42df7e88bee0282e805ce2797628938e3cf0b', + 'com.github.JesusMcCloud.netlayer:tor:d377bd3f85a5c6d0a2123d5d9bead810ad3a6de6464775c793e8276155ec1f1d', 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:193ab7813e4d249f2ea4fc1b968fea8c2126bcbeeb5d6127050ce1b93dbaa7c2', 'io.github.microutils:kotlin-logging:4992504fd3c6ecdf9ed10874b9508e758bb908af9e9d7af19a61e9afb6b7e27a', 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:877b59bbe466b24a88275a71fd06cd97359d2085420f6f1ac1d766afa8116001', @@ -55,10 +55,10 @@ dependencyVerification { 'org.bouncycastle:bcprov-jdk15on:963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349', 'com.google.zxing:javase:0ec23e2ec12664ddd6347c8920ad647bb3b9da290f897a88516014b56cc77eb9', 'com.nativelibs4java:bridj:101bcd9b6637e6bc16e56deb3daefba62b1f5e8e9e37e1b3e56e3b5860d659cf', - 'com.cedricwalter:tor-binary-macos:94f95e127c3409f870ee5c9fc642540c3ba865338cfaf3bb66d1e7e18c7fcee0', - 'com.cedricwalter:tor-binary-linux32:af92b0b1ed40e3ff6c0f7b575ce44f19dfd666dfc6709e26cfb0f0bddca752eb', - 'com.cedricwalter:tor-binary-linux64:f1fd937ef964e62abb13f62ddd53cd012316ecd09fecf1205e2db9f3333659c1', - 'com.cedricwalter:tor-binary-windows:af7d67bc8f74b5c50f68b1aa5aa3e833470964f71882ee06ca40a32cd3dbc940', + 'com.github.JesusMcCloud.tor-binary:tor-binary-macos:d143904dee93952576b12afb3c255ffce1b4eb0f8c85b0078c753b5f57fa1d07', + 'com.github.JesusMcCloud.tor-binary:tor-binary-linux32:e863b9e37416890825a80f769ed507b203d0bcc3234aa9922d3f801bdf08987b', + 'com.github.JesusMcCloud.tor-binary:tor-binary-linux64:936bdc1f9e145fbd625766f79d30761529303badd055e69e7bc0d27fcd771e7b', + 'com.github.JesusMcCloud.tor-binary:tor-binary-windows:db2a7af40ded2ccaa12dad26cc301f082bb148322b15ec0155662510609fddfa', 'com.github.ravn:jsocks:3c71600af027b2b6d4244e4ad14d98ff2352a379410daebefff5d8cd48d742a4', 'org.apache.httpcomponents:httpcore:d7f853dee87680b07293d30855b39b9eb56c1297bd16ff1cd6f19ddb8fa745fb', 'commons-codec:commons-codec:ad19d2601c3abf0b946b5c3a4113e226a8c1e3305e395b90013b78dd94a723ce', @@ -67,8 +67,8 @@ dependencyVerification { 'aopalliance:aopalliance:0addec670fedcd3f113c5c8091d783280d23f75e3acb841b61a9cdb079376a08', 'com.lambdaworks:scrypt:9a82d218099fb14c10c0e86e7eefeebd8c104de920acdc47b8b4b7a686fb73b4', 'com.google.zxing:core:11aae8fd974ab25faa8208be50468eb12349cd239e93e7c797377fa13e381729', - 'com.cedricwalter:tor-binary-geoip:fbd7656a262607e5a73016e048d5270cbabcd4639a1795b4b4e762df8877429d', - 'com.github.JesusMcCloud:jtorctl:ba71601cbe50474ccc39a17bc6f7880c1412d8d19b94d37aee69ea2917f72046', + 'com.github.JesusMcCloud.tor-binary:tor-binary-geoip:7340d4a0007b822b2f149e7360cd22443a5976676754bfaad0b8c48858475d5f', + 'com.github.JesusMcCloud:jtorctl:274dfe462fa24d3e0a0f21c0a2cb87f121932378c221503c730c130734b041bb', 'org.apache.commons:commons-compress:5f2df1e467825e4cac5996d44890c4201c000b43c0b23cffc0782d28a0beb9b0', 'org.tukaani:xz:a594643d73cc01928cf6ca5ce100e094ea9d73af760a5d4fb6b75fa673ecec96', 'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f', From 08b3a1118f75e6b68881c3c00c787c96b57ee394 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Fri, 21 Dec 2018 09:25:09 -0500 Subject: [PATCH 47/52] List UnitedCommunityCoin (UCC) --- .../bisq/asset/coins/UnitedCommunityCoin.java | 57 +++++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../asset/coins/UnitedCommunityCoinTest.java | 43 ++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/UnitedCommunityCoin.java create mode 100644 assets/src/test/java/bisq/asset/coins/UnitedCommunityCoinTest.java diff --git a/assets/src/main/java/bisq/asset/coins/UnitedCommunityCoin.java b/assets/src/main/java/bisq/asset/coins/UnitedCommunityCoin.java new file mode 100644 index 0000000000..9d893980e8 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/UnitedCommunityCoin.java @@ -0,0 +1,57 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AddressValidationResult; +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class UnitedCommunityCoin extends Coin { + + public UnitedCommunityCoin() { + super("UnitedCommunityCoin", "UCC", new UnitedCommunityCoinAddressValidator()); + } + + + public static class UnitedCommunityCoinAddressValidator extends Base58BitcoinAddressValidator { + + public UnitedCommunityCoinAddressValidator() { + super(new UnitedCommunityCoinParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (!address.matches("^[U][a-km-zA-HJ-NP-Z1-9]{33}$")) + return AddressValidationResult.invalidStructure(); + + return super.validate(address); + } + } + + + public static class UnitedCommunityCoinParams extends NetworkParametersAdapter { + + public UnitedCommunityCoinParams() { + super(); + addressHeader = 68; + p2shHeader = 18; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index ea99318ced..490eacce67 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -49,6 +49,7 @@ bisq.asset.coins.Spectrecoin bisq.asset.coins.Starwels bisq.asset.coins.SUB1X bisq.asset.coins.TurtleCoin +bisq.asset.coins.UnitedCommunityCoin bisq.asset.coins.Unobtanium bisq.asset.coins.Zcash bisq.asset.coins.Zcoin diff --git a/assets/src/test/java/bisq/asset/coins/UnitedCommunityCoinTest.java b/assets/src/test/java/bisq/asset/coins/UnitedCommunityCoinTest.java new file mode 100644 index 0000000000..cee2e4af0e --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/UnitedCommunityCoinTest.java @@ -0,0 +1,43 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class UnitedCommunityCoinTest extends AbstractAssetTest { + + public UnitedCommunityCoinTest() { + super(new UnitedCommunityCoin()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("UX3DVuoiNR9Uwa22NLehu8yVKecjFKn4ii"); + assertValidAddress("URqRRRFY7D6drJCput5UjTRUQYEL8npUwk"); + assertValidAddress("Uha1WUkuYtW9Uapme2E46PBz2sBkM9qV9w"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("UX3DVuoiNR90wa22NLehu8yVKecjFKn4ii"); + assertInvalidAddress("URqRRRFY7D6drJCput5UjTRUQYaEL8npUwk"); + assertInvalidAddress("Uha1WUkuYtW9Uapme2E46PBz2$BkM9qV9w"); + } +} From fac50426b49789369d8d402d1c11316527db6292 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Fri, 21 Dec 2018 09:36:15 -0500 Subject: [PATCH 48/52] List Dextro (DXO) --- .../main/java/bisq/asset/coins/Dextro.java | 57 +++++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/DextroTest.java | 43 ++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/Dextro.java create mode 100644 assets/src/test/java/bisq/asset/coins/DextroTest.java diff --git a/assets/src/main/java/bisq/asset/coins/Dextro.java b/assets/src/main/java/bisq/asset/coins/Dextro.java new file mode 100644 index 0000000000..8f880c2bd2 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/Dextro.java @@ -0,0 +1,57 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AddressValidationResult; +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class Dextro extends Coin { + + public Dextro() { + super("Dextro", "DXO", new Base58BitcoinAddressValidator(new DextroParams())); + } + + + public static class DextroAddressValidator extends Base58BitcoinAddressValidator { + + public DextroAddressValidator() { + super(new DextroParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (!address.matches("^[D][a-km-zA-HJ-NP-Z1-9]{33}$")) + return AddressValidationResult.invalidStructure(); + + return super.validate(address); + } + } + + + public static class DextroParams extends NetworkParametersAdapter { + + public DextroParams() { + super(); + addressHeader = 30; + p2shHeader = 90; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index ea99318ced..b960f91d9c 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -19,6 +19,7 @@ bisq.asset.coins.Counterparty bisq.asset.coins.Croat bisq.asset.coins.Dash bisq.asset.coins.Decred +bisq.asset.coins.Dextro bisq.asset.coins.Dogecoin bisq.asset.coins.Dragonglass bisq.asset.coins.Ether diff --git a/assets/src/test/java/bisq/asset/coins/DextroTest.java b/assets/src/test/java/bisq/asset/coins/DextroTest.java new file mode 100644 index 0000000000..d85d5751d0 --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/DextroTest.java @@ -0,0 +1,43 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class DextroTest extends AbstractAssetTest { + + public DextroTest() { + super(new Dextro()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("DP9LSAMzxNAuSei1GH3pppMjDqBhNrSGov"); + assertValidAddress("D8HwxDXPJhrSYonPF7YbCGENkM88cAYKb5"); + assertValidAddress("DLhJt6UfwMtWLGMH3ADzjqaLaGG6Bz96Bz"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("DP9LSAMzxNAuSei1GH3pppMjDqBhNrSG0v"); + assertInvalidAddress("DP9LSAMzxNAuSei1GH3pppMjDqBhNrSGovx"); + assertInvalidAddress("DP9LSAMzxNAuSei1GH3pppMjDqBhNrSG#v"); + } +} From ddec9c791f6f29549dde734d95e41298a082fa23 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Fri, 21 Dec 2018 09:49:34 -0500 Subject: [PATCH 49/52] List IdaPay (IDA) --- .../main/java/bisq/asset/coins/IdaPay.java | 57 +++++++++++++++++++ .../META-INF/services/bisq.asset.Asset | 1 + .../java/bisq/asset/coins/IdaPayTest.java | 45 +++++++++++++++ 3 files changed, 103 insertions(+) create mode 100644 assets/src/main/java/bisq/asset/coins/IdaPay.java create mode 100644 assets/src/test/java/bisq/asset/coins/IdaPayTest.java diff --git a/assets/src/main/java/bisq/asset/coins/IdaPay.java b/assets/src/main/java/bisq/asset/coins/IdaPay.java new file mode 100644 index 0000000000..84000ff023 --- /dev/null +++ b/assets/src/main/java/bisq/asset/coins/IdaPay.java @@ -0,0 +1,57 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AddressValidationResult; +import bisq.asset.Base58BitcoinAddressValidator; +import bisq.asset.Coin; +import bisq.asset.NetworkParametersAdapter; + +public class IdaPay extends Coin { + + public IdaPay() { + super("IdaPay", "IDA", new IdaPayAddressValidator()); + } + + + public static class IdaPayAddressValidator extends Base58BitcoinAddressValidator { + + public IdaPayAddressValidator() { + super(new IdaPayParams()); + } + + @Override + public AddressValidationResult validate(String address) { + if (!address.matches("^[CD][a-km-zA-HJ-NP-Z1-9]{33}$")) + return AddressValidationResult.invalidStructure(); + + return super.validate(address); + } + } + + + public static class IdaPayParams extends NetworkParametersAdapter { + + public IdaPayParams() { + super(); + addressHeader = 29; + p2shHeader = 36; + acceptableAddressCodes = new int[]{addressHeader, p2shHeader}; + } + } +} diff --git a/assets/src/main/resources/META-INF/services/bisq.asset.Asset b/assets/src/main/resources/META-INF/services/bisq.asset.Asset index ea99318ced..3c3e71d625 100644 --- a/assets/src/main/resources/META-INF/services/bisq.asset.Asset +++ b/assets/src/main/resources/META-INF/services/bisq.asset.Asset @@ -25,6 +25,7 @@ bisq.asset.coins.Ether bisq.asset.coins.EtherClassic bisq.asset.coins.Gridcoin bisq.asset.coins.Horizen +bisq.asset.coins.IdaPay bisq.asset.coins.Iridium bisq.asset.coins.Kekcoin bisq.asset.coins.Litecoin diff --git a/assets/src/test/java/bisq/asset/coins/IdaPayTest.java b/assets/src/test/java/bisq/asset/coins/IdaPayTest.java new file mode 100644 index 0000000000..558786834e --- /dev/null +++ b/assets/src/test/java/bisq/asset/coins/IdaPayTest.java @@ -0,0 +1,45 @@ +/* + * This file is part of Bisq. + * + * Bisq is free software: you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * Bisq is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public + * License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with Bisq. If not, see . + */ + +package bisq.asset.coins; + +import bisq.asset.AbstractAssetTest; + +import org.junit.Test; + +public class IdaPayTest extends AbstractAssetTest { + + public IdaPayTest() { + super(new IdaPay()); + } + + @Test + public void testValidAddresses() { + assertValidAddress("Cj6A8JJvovgSTiMc4r6PaJPrfwQnwnHDpg"); + assertValidAddress("D4SEkXMAcxRBu2Gc1KpgcGunAu5rWttjRy"); + assertValidAddress("CopBThXxkziyQEG6WxEfx36Ty46DygzHTW"); + assertValidAddress("D3bEgYWDS7fxfu9y1zTSrcdP681w3MKw6W"); + } + + @Test + public void testInvalidAddresses() { + assertInvalidAddress("Cj6A8JJv0vgSTiMc4r6PaJPrfwQnwnHDpg"); + assertInvalidAddress("D4SEkXMAcxxRBu2Gc1KpgcGunAu5rWttjRy"); + assertInvalidAddress("CopBThXxkziyQEG6WxEfx36Ty4#DygzHTW"); + assertInvalidAddress("13bEgYWDS7fxfu9y1zTSrcdP681w3MKw6W"); + } +} From e9f8a78d6636106d4c53c56c638b069400492397 Mon Sep 17 00:00:00 2001 From: Cave Spectre Date: Fri, 21 Dec 2018 22:06:11 -0500 Subject: [PATCH 50/52] Fix typos and improve grammer --- .../resources/i18n/displayStrings.properties | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/core/src/main/resources/i18n/displayStrings.properties b/core/src/main/resources/i18n/displayStrings.properties index 531fa15b12..daf1448a5a 100644 --- a/core/src/main/resources/i18n/displayStrings.properties +++ b/core/src/main/resources/i18n/displayStrings.properties @@ -580,7 +580,7 @@ portfolio.pending.step3_buyer.warn.part1b=at your payment provider (e.g. bank) portfolio.pending.step3_buyer.warn.part2=The BTC seller still has not confirmed your payment!\nPlease check {0} if the payment sending was successful.\nIf the BTC seller does not confirm the receipt of your payment by {1} the trade will be investigated by the arbitrator. portfolio.pending.step3_buyer.openForDispute=The BTC seller has not confirmed your payment!\nThe max. period for the trade has elapsed.\nYou can wait longer and give the trading peer more time or contact the arbitrator for opening a dispute. # suppress inspection "TrailingSpacesInProperty" -portfolio.pending.step3_seller.part=Your trading partner has confirmed that he initiated the {0} payment.\n\n +portfolio.pending.step3_seller.part=Your trading partner has confirmed that they have initiated the {0} payment.\n\n portfolio.pending.step3_seller.altcoin.explorer=on your favorite {0} blockchain explorer portfolio.pending.step3_seller.altcoin.wallet=at your {0} wallet portfolio.pending.step3_seller.altcoin={0}Please check {1} if the transaction to your receiving address\n\ @@ -589,7 +589,7 @@ has already sufficient blockchain confirmations.\nThe payment amount has to be { You can copy & paste your {4} address from the main screen after closing that popup. portfolio.pending.step3_seller.postal={0}Please check if you have received {1} with \"US Postal Money Order\" from the BTC buyer.\n\n\ The trade ID (\"reason for payment\" text) of the transaction is: \"{2}\" -portfolio.pending.step3_seller.bank=Your trading partner has confirmed that he initiated the {0} payment.\n\n\ +portfolio.pending.step3_seller.bank=Your trading partner has confirmed that they have initiated the {0} payment.\n\n\ Please go to your online banking web page and check if you have received {1} from the BTC buyer.\n\n\ The trade ID (\"reason for payment\" text) of the transaction is: \"{2}\"\n\n portfolio.pending.step3_seller.cash=Because the payment is done via Cash Deposit the BTC buyer has to write \"NO REFUND\" on the paper receipt, tear it in 2 parts and send you a photo by email.\n\n\ @@ -1000,9 +1000,9 @@ described on the {1} web page.\nUsing wallets from centralized exchanges where ( (b) which don''t use compatible wallet software is risky: it can lead to loss of the traded funds!\nThe arbitrator is \ not a {2} specialist and cannot help in such cases. account.altcoin.popup.wallet.confirm=I understand and confirm that I know which wallet I need to use. -account.altcoin.popup.xmr.msg=If you want to trade XMR on Bisq please be sure you understand and fulfill \ +account.altcoin.popup.xmr.msg=Trading XMR on Bisq requires that you understand and fulfill \ the following requirements:\n\n\ -For sending XMR you need to use either the official Monero GUI wallet or Monero CLI wallet with the \ +For sending XMR, you need to use either the official Monero GUI wallet or Monero CLI wallet with the \ store-tx-info flag enabled (default in new versions). Please be sure you can access the tx key as \ that would be required in case of a dispute.\n\ monero-wallet-cli (use the command get_tx_key)\n\ @@ -1015,13 +1015,13 @@ You need to provide the arbitrator the following data in case of a dispute:\n\ - The tx private key\n\ - The transaction hash\n\ - The recipient's public address\n\n\ -If you cannot provide the above data or if you used an incompatible wallet it would result in losing the \ -dispute case. The XMR sender is responsible to be able to verify the XMR transfer to the \ +Failure to provide the above data, or if you used an incompatible wallet, will result in losing the \ +dispute case. The XMR sender is responsible for providing verification of the XMR transfer to the \ arbitrator in case of a dispute.\n\n\ There is no payment ID required, just the normal public address.\n\ If you are not sure about that process visit (https://www.getmonero.org/resources/user-guides/prove-payment.html) \ or the Monero forum (https://forum.getmonero.org) to find more information. -account.altcoin.popup.blur.msg=If you want to trade BLUR on Bisq please be sure you understand and fulfill \ +account.altcoin.popup.blur.msg=Trading BLUR on Bisq requires that you understand and fulfill \ the following requirements:\n\n\ To send BLUR you must use the Blur Network CLI or GUI Wallet. \n\n\ If you are using the CLI wallet, a transaction hash (tx ID) will be displayed after a transfer is sent. You must save \ @@ -1033,22 +1033,22 @@ lower-right corner of the box containing the transaction. You must save this inf In the event that arbitration is necessary, you must present the following to an arbitrator: 1.) the transaction ID, \ 2.) the transaction private key, and 3.) the recipient's address. The arbitrator will then verify the BLUR \ transfer using the Blur Transaction Viewer (https://blur.cash/#tx-viewer).\n\n\ -If you cannot provide the required information to the arbitrator, you will lose the dispute. In all cases of dispute, the \ -BLUR sender bears 100% of the burden of responsiblity in verifying transactions to an arbitrator. \n\n\ +Failure to provide the required information to the arbitrator will result in losing the dispute case. In all cases of dispute, the \ +BLUR sender bears 100% of the burden of responsibility in verifying transactions to an arbitrator. \n\n\ If you do not understand these requirements, do not trade on Bisq. First, seek help at the Blur Network Discord (https://discord.gg/dMWaqVW). -account.altcoin.popup.ccx.msg=If you want to trade CCX on Bisq please be sure you understand the following requirements:\n\n\ +account.altcoin.popup.ccx.msg=Trading CCX on Bisq requires that you understand the following requirements:\n\n\ To send CCX you must use an official Conceal wallet, either CLI or GUI. After sending a transfer payment, the wallets\n\ display the transaction secret key. You must save it along with the transaction hash (ID) and the recipient's public\n\ address in case arbitration is necessary. In such a case, you must give all three to the arbitrator, who will then\n\ verify the CCX transfer using the Conceal Transaction Viewer (https://explorer.conceal.network/txviewer).\n\ Because Conceal is a privacy coin, block explorers cannot verify transfers.\n\n\ -If you cannot provide the required data to the arbitrator, you will lose the dispute case.\n\ +Failure to provide the required data to the arbitrator will result in losing the dispute case.\n\ If you do not save the transaction secret key immediately after transferring CCX, it cannot be recovered later.\n\ If you do not understand these requirements, seek help at the Conceal discord (http://discord.conceal.network). account.altcoin.popup.drgl.msg=Trading Dragonglass on Bisq requires that you understand and fulfill \ the following requirements:\n\n\ -Because of the privacy Dragonglass provides a transaction is not verifyable on the public blockchain. If required you \ -can prove your payment thru use of your TXN-Private-Key.\n\ +Because of the privacy Dragonglass provides, a transaction is not verifiable on the public blockchain. If required, you \ +can prove your payment through the use of your TXN-Private-Key.\n\ The TXN-Private Key is a one-time key automatically generated for every transaction that can \ only be accessed from within your DRGL wallet.\n\ Either by DRGL-wallet GUI (inside transaction details dialog) or by the Dragonglass CLI simplewallet (using command "get_tx_key").\n\n\ @@ -1058,8 +1058,8 @@ In case of a dispute, you must provide the arbitrator the following data:\n\ - The transaction hash\n\ - The recipient's public address\n\n\ Verification of payment can be made using the above data as inputs at (http://drgl.info/#check_txn).\n\n\ -If you cannot provide the above data or if you used an incompatible wallet it would result in losing the \ -dispute case. The Dragonglass sender is responsible to be able to verify the DRGL transfer to the \ +Failure to provide the above data, or if you used an incompatible wallet, will result in losing the \ +dispute case. The Dragonglass sender is responsible for providing verification of the DRGL transfer to the \ arbitrator in case of a dispute. Use of PaymentID is not required.\n\n\ If you are unsure about any part of this process, visit Dragonglass on Discord (http://discord.drgl.info) for help. account.altcoin.popup.ZEC.msg=When using {0} you can only use the transparent addresses (starting with t) not \ @@ -1463,7 +1463,7 @@ dao.burnBsq.assets.lookBackPeriod=Verification period dao.burnBsq.assets.trialFee=Fee for trial period dao.burnBsq.assets.totalFee=Total fees paid dao.burnBsq.assets.days={0} days -dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial perios is {0}. +dao.burnBsq.assets.toFewDays=The asset fee is too low. The min. amount of days for the trial period is {0}. # suppress inspection "UnusedProperty" dao.assetState.UNDEFINED=Undefined @@ -2344,7 +2344,7 @@ payment.moneyGram.info=When using MoneyGram the BTC buyer has to send the Author The receipt must clearly show the seller's full name, country, state and the amount. The buyer will get displayed the seller's email in the trade process. payment.westernUnion.info=When using Western Union the BTC buyer has to send the MTCN (tracking number) and a photo of the receipt by email to the BTC seller. \ The receipt must clearly show the seller's full name, city, country and the amount. The buyer will get displayed the seller's email in the trade process. -payment.halCash.info=When using HalCash the BTC buyer need to send the BTC seller the HalCash code via a text message from the mobile phone.\n\n\ +payment.halCash.info=When using HalCash the BTC buyer needs to send the BTC seller the HalCash code via a text message from their mobile phone.\n\n\ Please make sure to not exceed the maximum amount your bank allows you to send with HalCash. \ The min. amount per withdrawal is 10 EUR and the max. amount is 600 EUR. For repeated withdrawals it is \ 3000 EUR per receiver per day and 6000 EUR per receiver per month. Please cross check those limits with your \ @@ -2352,7 +2352,7 @@ payment.halCash.info=When using HalCash the BTC buyer need to send the BTC selle The withdrawal amount must be a multiple of 10 EUR as you cannot withdraw other amounts from an ATM. The \ UI in the create-offer and take-offer screen will adjust the BTC amount so that the EUR amount is correct. You cannot use market \ based price as the EUR amount would be changing with changing prices.\n\n\ - In case of a dispute the BTC buyer need to provide the proof that he sent the EUR. + In case of a dispute the BTC buyer needs to provide the proof that they sent the EUR. payment.limits.info=Please be aware that all bank transfers carry a certain amount of chargeback risk.\n\ \n\ To mitigate this risk, Bisq sets per-trade limits based on two factors:\n\ @@ -2383,7 +2383,7 @@ payment.f2f.info='Face to Face' trades have different rules and come with differ The main differences are:\n\ ● The trading peers need to exchange information about the meeting location and time by using their provided contact details.\n\ ● The trading peers need to bring their laptops and do the confirmation of 'payment sent' and 'payment received' at the meeting place.\n\ - ● If a maker has special 'terms and conditions' he needs to state those in the 'Addition information' text field in the account.\n\ + ● If a maker has special 'terms and conditions' they must state those in the 'Additional information' text field in the account.\n\ ● By taking an offer the taker agrees to the maker's stated 'terms and conditions'.\n\ ● In case of a dispute the arbitrator cannot help much as it is usually hard to get tamper proof evidence of what \ happened at the meeting. In such cases the BTC funds might get locked indefinitely or until the trading peers come to \ From 9fc76a4cfc21a20018a4ca4a53a474d09f79fd7c Mon Sep 17 00:00:00 2001 From: sqrrm Date: Tue, 25 Dec 2018 22:07:11 +0100 Subject: [PATCH 51/52] Fix icon handling in vote result table, fix #2141 --- .../dao/governance/result/VoteResultView.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java index 4d5ec904ea..562b329e96 100644 --- a/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java +++ b/desktop/src/main/java/bisq/desktop/main/dao/governance/result/VoteResultView.java @@ -701,21 +701,14 @@ public class VoteResultView extends ActivatableView implements D public TableCell call(TableColumn column) { return new TableCell<>() { - Label myVoteIcon; - @Override public void updateItem(final ProposalListItem item, boolean empty) { super.updateItem(item, empty); if (item != null && !empty) { - if (myVoteIcon == null) { - myVoteIcon = item.getMyVoteIcon(); - setGraphic(myVoteIcon); - } + setGraphic(item.getMyVoteIcon()); } else { setGraphic(null); - if (myVoteIcon != null) - myVoteIcon = null; } } }; @@ -734,21 +727,17 @@ public class VoteResultView extends ActivatableView implements D public TableCell call(TableColumn column) { return new TableCell<>() { - Label icon; - @Override public void updateItem(final ProposalListItem item, boolean empty) { super.updateItem(item, empty); if (item != null && !empty) { - icon = new Label(); + Label icon = new Label(); AwesomeDude.setIcon(icon, item.getIcon()); icon.getStyleClass().add(item.getColorStyleClass()); setGraphic(icon); } else { setGraphic(null); - if (icon != null) - icon = null; } } }; From eff0db051cf8082520e332842c7ffda657714dd4 Mon Sep 17 00:00:00 2001 From: Oscar Guindzberg Date: Fri, 28 Dec 2018 17:31:49 -0300 Subject: [PATCH 52/52] Remove Networks and AbstractBitcoinNetParams since they are not used --- .../params/btc/AbstractBitcoinNetParams.java | 180 ------------------ .../validation/params/btc/Networks.java | 84 -------- 2 files changed, 264 deletions(-) delete mode 100644 core/src/main/java/bisq/core/payment/validation/params/btc/AbstractBitcoinNetParams.java delete mode 100644 core/src/main/java/bisq/core/payment/validation/params/btc/Networks.java diff --git a/core/src/main/java/bisq/core/payment/validation/params/btc/AbstractBitcoinNetParams.java b/core/src/main/java/bisq/core/payment/validation/params/btc/AbstractBitcoinNetParams.java deleted file mode 100644 index 6729061fec..0000000000 --- a/core/src/main/java/bisq/core/payment/validation/params/btc/AbstractBitcoinNetParams.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * This file is part of Bisq. - * - * Bisq is free software: you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or (at - * your option) any later version. - * - * Bisq is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public - * License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Bisq. If not, see . - */ - -/* - * Copyright 2013 Google Inc. - * Copyright 2015 Andreas Schildbach - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package bisq.core.payment.validation.params.btc; - -import org.bitcoinj.core.BitcoinSerializer; -import org.bitcoinj.core.Block; -import org.bitcoinj.core.Coin; -import org.bitcoinj.core.NetworkParameters; -import org.bitcoinj.core.StoredBlock; -import org.bitcoinj.core.Transaction; -import org.bitcoinj.core.Utils; -import org.bitcoinj.core.VerificationException; -import org.bitcoinj.store.BlockStore; -import org.bitcoinj.store.BlockStoreException; -import org.bitcoinj.utils.MonetaryFormat; - -import com.google.common.base.Stopwatch; - -import java.math.BigInteger; - -import java.util.concurrent.TimeUnit; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Parameters for Bitcoin-like networks. - */ -public abstract class AbstractBitcoinNetParams extends NetworkParameters { - /** - * Scheme part for Bitcoin URIs. - */ - public static final String BITCOIN_SCHEME = "bitcoin"; - - private static final Logger log = LoggerFactory.getLogger(AbstractBitcoinNetParams.class); - - public AbstractBitcoinNetParams() { - super(); - } - - /** - * Checks if we are at a difficulty transition point. - * - * @param storedPrev The previous stored block - * @return If this is a difficulty transition point - */ - protected boolean isDifficultyTransitionPoint(StoredBlock storedPrev) { - return ((storedPrev.getHeight() + 1) % this.getInterval()) == 0; - } - - @Override - public void checkDifficultyTransitions(final StoredBlock storedPrev, final Block nextBlock, - final BlockStore blockStore) throws VerificationException, BlockStoreException { - Block prev = storedPrev.getHeader(); - - // Is this supposed to be a difficulty transition point? - if (!isDifficultyTransitionPoint(storedPrev)) { - - // No ... so check the difficulty didn't actually change. - if (nextBlock.getDifficultyTarget() != prev.getDifficultyTarget()) - throw new VerificationException("Unexpected change in difficulty at height " + storedPrev.getHeight() + - ": " + Long.toHexString(nextBlock.getDifficultyTarget()) + " vs " + - Long.toHexString(prev.getDifficultyTarget())); - return; - } - - // We need to find a block far back in the chain. It's OK that this is expensive because it only occurs every - // two weeks after the initial block chain download. - final Stopwatch watch = Stopwatch.createStarted(); - StoredBlock cursor = blockStore.get(prev.getHash()); - for (int i = 0; i < this.getInterval() - 1; i++) { - if (cursor == null) { - // This should never happen. If it does, it means we are following an incorrect or busted chain. - throw new VerificationException( - "Difficulty transition point but we did not find a way back to the genesis block."); - } - cursor = blockStore.get(cursor.getHeader().getPrevBlockHash()); - } - watch.stop(); - if (watch.elapsed(TimeUnit.MILLISECONDS) > 50) - log.info("Difficulty transition traversal took {}", watch); - - Block blockIntervalAgo = cursor.getHeader(); - int timespan = (int) (prev.getTimeSeconds() - blockIntervalAgo.getTimeSeconds()); - // Limit the adjustment step. - final int targetTimespan = this.getTargetTimespan(); - if (timespan < targetTimespan / 4) - timespan = targetTimespan / 4; - if (timespan > targetTimespan * 4) - timespan = targetTimespan * 4; - - BigInteger newTarget = Utils.decodeCompactBits(prev.getDifficultyTarget()); - newTarget = newTarget.multiply(BigInteger.valueOf(timespan)); - newTarget = newTarget.divide(BigInteger.valueOf(targetTimespan)); - - if (newTarget.compareTo(this.getMaxTarget()) > 0) { - log.info("Difficulty hit proof of work limit: {}", newTarget.toString(16)); - newTarget = this.getMaxTarget(); - } - - int accuracyBytes = (int) (nextBlock.getDifficultyTarget() >>> 24) - 3; - long receivedTargetCompact = nextBlock.getDifficultyTarget(); - - // The calculated difficulty is to a higher precision than received, so reduce here. - BigInteger mask = BigInteger.valueOf(0xFFFFFFL).shiftLeft(accuracyBytes * 8); - newTarget = newTarget.and(mask); - long newTargetCompact = Utils.encodeCompactBits(newTarget); - - if (newTargetCompact != receivedTargetCompact) - throw new VerificationException("Network provided difficulty bits do not match what was calculated: " + - Long.toHexString(newTargetCompact) + " vs " + Long.toHexString(receivedTargetCompact)); - } - - @Override - public Coin getMaxMoney() { - return MAX_MONEY; - } - - @Override - public Coin getMinNonDustOutput() { - return Transaction.MIN_NONDUST_OUTPUT; - } - - @Override - public MonetaryFormat getMonetaryFormat() { - return MonetaryFormat.BTC; - } - - @Override - public int getProtocolVersionNum(final ProtocolVersion version) { - return version.getBitcoinProtocolVersion(); - } - - @Override - public BitcoinSerializer getSerializer(boolean parseRetain) { - return new BitcoinSerializer(this, parseRetain); - } - - @Override - public String getUriScheme() { - return BITCOIN_SCHEME; - } - - @Override - public boolean hasMaxMoney() { - return true; - } -} diff --git a/core/src/main/java/bisq/core/payment/validation/params/btc/Networks.java b/core/src/main/java/bisq/core/payment/validation/params/btc/Networks.java deleted file mode 100644 index 79171f8a21..0000000000 --- a/core/src/main/java/bisq/core/payment/validation/params/btc/Networks.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * This file is part of Bisq. - * - * Bisq is free software: you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or (at - * your option) any later version. - * - * Bisq is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public - * License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Bisq. If not, see . - */ - -/* - * Copyright 2014 Giannis Dzegoutanis - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package bisq.core.payment.validation.params.btc; - -import org.bitcoinj.core.NetworkParameters; -import org.bitcoinj.params.MainNetParams; -import org.bitcoinj.params.TestNet3Params; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; - -import java.util.Collection; -import java.util.Set; - -/** - * Utility class that holds all the registered NetworkParameters types used for Address auto discovery. - * By default only MainNetParams and TestNet3Params are used. If you want to use TestNet2, RegTestParams or - * UnitTestParams use the register and unregister the TestNet3Params as they don't have their own address - * version/type code. - */ -public class Networks { - /** - * Registered networks - */ - private static Set networks = ImmutableSet.of(TestNet3Params.get(), MainNetParams.get()); - - public static Set get() { - return networks; - } - - public static void register(NetworkParameters network) { - register(Lists.newArrayList(network)); - } - - public static void register(Collection networks) { - ImmutableSet.Builder builder = ImmutableSet.builder(); - builder.addAll(Networks.networks); - builder.addAll(networks); - Networks.networks = builder.build(); - } - - public static void unregister(NetworkParameters network) { - if (networks.contains(network)) { - ImmutableSet.Builder builder = ImmutableSet.builder(); - for (NetworkParameters parameters : networks) { - if (parameters.equals(network)) - continue; - builder.add(parameters); - } - networks = builder.build(); - } - } -}