From 38841b129404cb5f3b34b98a24644e80450bd4d9 Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 24 Jul 2023 18:07:15 +0200 Subject: [PATCH 01/14] Bringing changes from old branch --- .../main/content/academy/AcademyView.java | 22 ++++++- .../academy/bisq/BisqAcademyController.java | 3 + .../content/academy/bisq/BisqAcademyView.java | 16 ++++++ i18n/src/main/resources/academy.properties | 57 +++++++++++++++---- 4 files changed, 86 insertions(+), 12 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java index f29e5f385a..818258afcf 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java @@ -30,7 +30,7 @@ public abstract class AcademyView extends View { protected final Label headline, subHeadline, overviewHeadline, overview, contentHeadline, content; - protected final Hyperlink learnMore; + protected Hyperlink learnMore; public AcademyView(M model, C controller) { super(new VBox(10), model, controller); @@ -76,6 +76,26 @@ public AcademyView(M model, C controller) { } + protected Label addHeadlineLabel(String headlineKey) { + Label label = new Label(Res.get("academy." + getKey() + "." + headlineKey)); + label.getStyleClass().addAll("font-size-16", "font-light"); + root.getChildren().add(label); + return label; + } + + protected Label addContentLabel(String contentKey) { + Label label = new Label(Res.get("academy." + getKey() + "." + contentKey)); + label.getStyleClass().addAll("font-size-12", "font-light", "bisq-line-spacing-01"); + root.getChildren().add(label); + return label; + } + + protected Hyperlink addLearnMoreHyperlink() { + learnMore = new Hyperlink(Res.get("action.learnMore")); + learnMore.getStyleClass().addAll("font-size-12", "text-fill-green"); + root.getChildren().add(learnMore); + return learnMore; + } protected abstract String getIconId(); protected abstract String getKey(); diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyController.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyController.java index 411cb1694f..ebb2e05d5b 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyController.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyController.java @@ -30,6 +30,9 @@ public BisqAcademyController(ServiceProvider serviceProvider) { view = new BisqAcademyView(model, this); } + public boolean useCaching() { + return false; + } @Override public void onActivate() { } diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java index cc66a9706d..3f01ea4da8 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java @@ -18,6 +18,9 @@ package bisq.desktop.main.content.academy.bisq; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.layout.VBox; +import javafx.scene.control.Label; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +28,19 @@ public class BisqAcademyView extends AcademyView Date: Mon, 24 Jul 2023 18:14:12 +0200 Subject: [PATCH 02/14] Elements defined in child don't need to be in parent. --- .../main/content/academy/AcademyView.java | 28 ++----------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java index 818258afcf..e343bc7153 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java @@ -29,7 +29,7 @@ import javafx.scene.layout.VBox; public abstract class AcademyView extends View { - protected final Label headline, subHeadline, overviewHeadline, overview, contentHeadline, content; + protected final Label headline, subHeadline; protected Hyperlink learnMore; public AcademyView(M model, C controller) { @@ -46,33 +46,9 @@ public AcademyView(M model, C controller) { subHeadline.getStyleClass().addAll("font-size-14", "font-light", "text-fill-grey-dimmed"); subHeadline.setWrapText(true); - overviewHeadline = new Label(Res.get("academy.overview")); - overviewHeadline.getStyleClass().addAll("font-size-16", "font-light"); - overviewHeadline.setWrapText(true); - - overview = new Label(Res.get("academy." + key + ".overview")); - overview.getStyleClass().addAll("font-size-12", "font-light", "bisq-line-spacing-01"); - overview.setWrapText(true); - - contentHeadline = new Label(Res.get("academy." + key + ".content.headline")); - contentHeadline.getStyleClass().addAll("font-size-16", "font-light"); - contentHeadline.setWrapText(true); - - content = new Label(Res.get("academy." + key + ".content")); - content.getStyleClass().addAll("font-size-12", "font-light", "bisq-line-spacing-01"); - content.setWrapText(true); - - learnMore = new Hyperlink(Res.get("action.learnMore")); - learnMore.getStyleClass().addAll("font-size-12", "text-fill-green"); VBox.setMargin(headline, new Insets(0, 0, 0, 0)); - VBox.setMargin(overviewHeadline, new Insets(25, 0, 0, 0)); - VBox.setMargin(contentHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(content, new Insets(0, 0, 15, 0)); - root.getChildren().addAll(headline, subHeadline, - overviewHeadline, overview, - contentHeadline, content, - learnMore); + root.getChildren().addAll(headline, subHeadline); } From 20e63bb38317b87df2e2d7abd9a67cf9010a5888 Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 24 Jul 2023 18:14:40 +0200 Subject: [PATCH 03/14] Add text wrapping. --- .../java/bisq/desktop/main/content/academy/AcademyView.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java index e343bc7153..88907c726d 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java @@ -55,6 +55,7 @@ public AcademyView(M model, C controller) { protected Label addHeadlineLabel(String headlineKey) { Label label = new Label(Res.get("academy." + getKey() + "." + headlineKey)); label.getStyleClass().addAll("font-size-16", "font-light"); + label.setWrapText(true); root.getChildren().add(label); return label; } @@ -62,6 +63,7 @@ protected Label addHeadlineLabel(String headlineKey) { protected Label addContentLabel(String contentKey) { Label label = new Label(Res.get("academy." + getKey() + "." + contentKey)); label.getStyleClass().addAll("font-size-12", "font-light", "bisq-line-spacing-01"); + label.setWrapText(true); root.getChildren().add(label); return label; } From 7d46c1f9e5d1acf8103d746be6ecfcebe2882923 Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 24 Jul 2023 18:15:02 +0200 Subject: [PATCH 04/14] Store learn section in var --- .../desktop/main/content/academy/bisq/BisqAcademyView.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java index 3f01ea4da8..9be0788947 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java @@ -19,8 +19,9 @@ import bisq.desktop.main.content.academy.AcademyView; import javafx.geometry.Insets; -import javafx.scene.layout.VBox; +import javafx.scene.control.Hyperlink; import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -35,7 +36,7 @@ public BisqAcademyView(BisqAcademyModel model, BisqAcademyController controller) Label whyBisqContent = addContentLabel("whyBisqContent"); Label tradeSafelyHeadline = addHeadlineLabel("tradeSafelyHeadline"); Label tradeSafelyContent = addContentLabel("tradeSafelyContent"); - addLearnMoreHyperlink(); + Hyperlink learnMore = addLearnMoreHyperlink(); VBox.setMargin(exchangeDecentralizedHeadline, new Insets(25, 0, 0, 0)); VBox.setMargin(whyBisqHeadline, new Insets(35, 0, 0, 0)); From d4a500d8b977bffc439d30ffa465efb3d1891d2e Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 24 Jul 2023 18:50:50 +0200 Subject: [PATCH 05/14] Content for bitcoin section --- .../academy/bitcoin/BitcoinAcademyView.java | 15 ++++++ i18n/src/main/resources/academy.properties | 50 +++++++++++++++++-- 2 files changed, 61 insertions(+), 4 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java index 40b4efa02b..0af5a8629f 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java @@ -18,6 +18,10 @@ package bisq.desktop.main.content.academy.bitcoin; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +29,17 @@ public class BitcoinAcademyView extends AcademyView Date: Thu, 27 Jul 2023 10:27:29 +0200 Subject: [PATCH 06/14] Content for security section --- .../academy/security/SecurityAcademyView.java | 15 ++++++ i18n/src/main/resources/academy.properties | 51 +++++++++++++++++-- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java index 47fef5a7fe..fc82ace431 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java @@ -18,6 +18,10 @@ package bisq.desktop.main.content.academy.security; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +29,17 @@ public class SecurityAcademyView extends AcademyView Date: Sat, 29 Jul 2023 10:49:58 +0200 Subject: [PATCH 07/14] Small text fixes --- i18n/src/main/resources/academy.properties | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/i18n/src/main/resources/academy.properties b/i18n/src/main/resources/academy.properties index c284eff869..802d8659bc 100644 --- a/i18n/src/main/resources/academy.properties +++ b/i18n/src/main/resources/academy.properties @@ -150,27 +150,27 @@ academy.security.securingYourKeysContent=First of all, you must understand one s easily avoid these situations with a bit of learning and good practices.\n\nMost bitcoin wallets will provide you \ with a 12 or 24 words long backup, commonly known as the mnemonic phrase or simply the seedphrase. This backup \ phrase allows you to restore your wallet on any device, making it the most important element for you to secure. It \ - is generally advised to store these backup in analogical form, mostly by writing it in a piece of paper or in a \ - small metal sheet, and to have multiple copies of it. You should also store it so that you can find it if you need \ + is generally advised to store these backups in analogical form, typically by writing them on a piece of paper or on a \ + small metal sheet, and to have multiple copies of them. You should also store it so that you can find it if you need \ it, but no one else can access it.\n\nFor significant amounts of Bitcoin, it's usual to employ specialized devices \ called Hardware Wallets to store your keys. These devices offer a superior level of security with respect to storing \ your keys in a smartphone or laptop wallet, while providing a convenient experience when it comes to making \ - transaction. You can learn more about these and other types of wallets in the Wallets section of Bisq Learn.\ - \n\nFinally, make sure to avoid overly complicated storage schemes.An advanced storage plan with many details and \ - subtleties will keep thieves away from your funds, there is also a significant chance that you might not be able to \ - access your own wallet due to mistakes, confusion, or simply forgetting how you organized the backups. Aim for a \ + transactions. You can learn more about these and other types of wallets in the Wallets section of Bisq Learn.\ + \n\nFinally, make sure to avoid overly complicated storage schemes. An advanced storage plan with many details and \ + subtleties will keep thieves away from your funds, but there is also a significant chance that you might not be able \ + to access your own wallet due to mistakes, confusion, or simply forgetting how you organized the backups. Aim for a \ balance between a set-up that is too simple and anybody could easily break (like storing your seedphrase in a plain \ - text file in your laptop's desktop) and one that is so complex that not even you can crack (like storing the words \ + text file on your laptop's desktop) and one that is so complex that not even you can crack (like storing the words \ of your phrase across 12 books in 12 different locations). academy.security.avoidScamsHeadline=Avoid scams academy.security.avoidScamsContent=Another source of problems and risks are scams. Bitcoin's transactions are \ irreversible, which means that if someone tricks you into sending them some Bitcoin and then runs away with it, \ there isn't really much that you can do about it. Because of this, it is common to encounter different schemes where \ - people will try to convince you to send some Bitcoin to them. Most of the time, scammers will present you with some \ + people will try to convince you to send some bitcoin to them. Most of the time, scammers will present you with some \ wonderful "opportunity" for you to earn money easily, which tends to sound too good to be true. The specific stories \ and details surrounding these scams are extremely diverse and creative, but the common pattern will always look the \ same: you will be offered some wonderful returns, but first, you will have to send bitcoin in advance. Once the \ - Bitcoin is sent, you will probably never see it come back to you. Defending yourself against these scams is simple: \ + bitcoin is sent, you will probably never see it come back to you. Defending yourself against these scams is simple: \ interact only with reputable and trusted companies and people. If you feel some entity is sketchy, ask for \ references or simply steer away from it. If you are offered an opportunity that feels almost too good to be true, it \ probably is, and you should stay away from it. From 58b4d34f72e5f45010626a175400810a5ea20399 Mon Sep 17 00:00:00 2001 From: counterweight Date: Tue, 1 Aug 2023 18:10:13 +0200 Subject: [PATCH 08/14] Add content for privacy section --- .../academy/privacy/PrivacyAcademyView.java | 19 +++++ i18n/src/main/resources/academy.properties | 76 ++++++++++++++++++- 2 files changed, 91 insertions(+), 4 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java index c7d0de03ae..c977886ea9 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java @@ -18,6 +18,10 @@ package bisq.desktop.main.content.academy.privacy; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +29,21 @@ public class PrivacyAcademyView extends AcademyView Date: Tue, 1 Aug 2023 18:13:01 +0200 Subject: [PATCH 09/14] Adjust margins --- .../main/content/academy/privacy/PrivacyAcademyView.java | 3 ++- .../main/content/academy/security/SecurityAcademyView.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java index c977886ea9..82020c2d8d 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java @@ -40,7 +40,8 @@ public PrivacyAcademyView(PrivacyAcademyModel model, PrivacyAcademyController co Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(whyPrivacyHeadline, new Insets(25, 0, 0, 0)); + VBox.setMargin(introContent, new Insets(25, 0, 0, 0)); + VBox.setMargin(whyPrivacyHeadline, new Insets(35, 0, 0, 0)); VBox.setMargin(giveUpPrivacyHeadline, new Insets(35, 0, 0, 0)); VBox.setMargin(bisqProtectsPrivacyHeadline, new Insets(35, 0, 0, 0)); VBox.setMargin(bisqProtectsPrivacyContent, new Insets(0, 0, 15, 0)); diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java index fc82ace431..9b86a1d5bb 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java @@ -37,7 +37,8 @@ public SecurityAcademyView(SecurityAcademyModel model, SecurityAcademyController Label avoidScamsContent = addContentLabel("avoidScamsContent"); Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(securingYourKeysHeadline, new Insets(25, 0, 0, 0)); + VBox.setMargin(introContent, new Insets(25, 0, 0, 0)); + VBox.setMargin(securingYourKeysHeadline, new Insets(35, 0, 0, 0)); VBox.setMargin(avoidScamsHeadline, new Insets(35, 0, 0, 0)); VBox.setMargin(avoidScamsContent, new Insets(0, 0, 15, 0)); } From 78ee05576d9b51e18562e0315f8bd293373a8204 Mon Sep 17 00:00:00 2001 From: counterweight Date: Sat, 5 Aug 2023 20:41:58 +0200 Subject: [PATCH 10/14] Wallets section --- .../academy/wallets/WalletsAcademyView.java | 15 +++++ i18n/src/main/resources/academy.properties | 63 +++++++++++++++++-- 2 files changed, 74 insertions(+), 4 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java index fea7c78089..439904fa1a 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java @@ -18,6 +18,10 @@ package bisq.desktop.main.content.academy.wallets; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +29,17 @@ public class WalletsAcademyView extends AcademyView Date: Sun, 6 Aug 2023 20:12:44 +0200 Subject: [PATCH 11/14] FOSS section --- .../content/academy/foss/FossAcademyView.java | 15 +++++ i18n/src/main/resources/academy.properties | 58 +++++++++++++++++-- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java index 9df59335f7..cf4210266f 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java @@ -18,6 +18,10 @@ package bisq.desktop.main.content.academy.foss; import bisq.desktop.main.content.academy.AcademyView; +import javafx.geometry.Insets; +import javafx.scene.control.Hyperlink; +import javafx.scene.control.Label; +import javafx.scene.layout.VBox; import lombok.extern.slf4j.Slf4j; @Slf4j @@ -25,6 +29,17 @@ public class FossAcademyView extends AcademyView Date: Sun, 6 Aug 2023 21:12:27 +0200 Subject: [PATCH 12/14] A few small fixes in the text --- i18n/src/main/resources/academy.properties | 32 ++++++++++------------ 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/i18n/src/main/resources/academy.properties b/i18n/src/main/resources/academy.properties index 062873b605..11e17150c8 100644 --- a/i18n/src/main/resources/academy.properties +++ b/i18n/src/main/resources/academy.properties @@ -35,7 +35,7 @@ academy.overview.foss.content=Bisq is free and open source software (FOSS) based academy.bisq.subHeadline=Bisq is free and open source software for exchanging Bitcoin with Fiat currencies or other crypto-currencies in a decentralized and trust-minimized way. academy.bisq.exchangeDecentralizedHeadline=Exchange, decentralized academy.bisq.exchangeDecentralizedContent=Bisq is an exchange application where you can buy and sell Bitcoin for \ - national currencies or other cryptocurrencies. Unlike most exchange alternatives, Bisq is both decentralized and \ \ + national currencies or other cryptocurrencies. Unlike most exchange alternatives, Bisq is both decentralized and \ peer-to-peer.\n\nIt is decentralized because it does not depend nor is it controlled by any single company, team or \ government. Decentralization makes Bisq a resilient network: just like Bitcoin, it exists because of users like you. \ Since there is no single element on which everything relies, it is significantly hard for anybody to stop or hurt \ @@ -47,7 +47,7 @@ academy.bisq.exchangeDecentralizedContent=Bisq is an exchange application where academy.bisq.whyBisqHeadline=Why Bisq academy.bisq.whyBisqContent=For many users, Bisq is the preferred method to buy or sell Bitcoin in exchange for national\ \ currencies. This is because Bisq's nature results in a completely different experience to that of Centralized \ - Exchanges.\n\nMany users value the privacy-respecting nature of Bisq. You don't need to provide any kind of \ + Exchanges.\n\nUsers also value the privacy-respecting nature of Bisq. You don't need to provide any kind of \ personal information to use Bisq. Whenever you trade, you only need to share your payment details with your trade\ \ partner. Nobody else has access to this data, and there is no central database where all of your information and \ transactions will end up stored for years or decades.\n\nBisq also allows users to overcome any lack of permissions\ @@ -58,15 +58,14 @@ academy.bisq.whyBisqContent=For many users, Bisq is the preferred method to buy \ Bitcoin and national currencies. The existing trade protocols and reputation systems prevent bad actors from\ \ stealing your funds. Mediators are always available to support you if another peer is not behaving properly and\ \ will step in if necessary to work out a solution for your case. The result: Bisq users can happily trade with\ - \ others without having to worry about losing their funds. + \ others without having to worry about being scammed and losing their funds. academy.bisq.tradeSafelyHeadline=Trade safely academy.bisq.tradeSafelyContent=Exchanging your Bitcoin and national currencies with other peers comes with great \ benefits like not depending on companies or protecting your privacy. But you might be wondering: how can I know if \ the peer I'm trading with is honest? Won't I get scammed? Those are valid concerns that you should always keep in \ mind and that Bisq addresses in several ways to allow safe trading.\n\nThe different trade protocols (you can think\ \ of a protocol as the rules you and your peer will have to follow) minimize the risk of any actor scamming his peer\ - \ during a trade. You can read more in detail about the different protocols available in Bisq 1 and Bisq 2 here\ - \ #TODO: add link. There is usually a trade-off between security and convenience: some protocols are more robust,\ + \ during a trade. There is usually a trade-off between security and convenience: some protocols are more robust,\ \ others are more convenient and fast. It is up to you to decide which protocol to use on each trade, depending on\ \ your preferences and needs, as well as the traded amount. Protocols like Bisq Easy are recommended for small sums\ \ of money, while more robust and structured protocols like Bisq Multisig are advisable for larger amounts.\n\nIf\ @@ -74,11 +73,10 @@ academy.bisq.tradeSafelyContent=Exchanging your Bitcoin and national currencies \ will not be left alone. Mediators and arbitrators are always available to advice and provide solutions in these\ \ situations. These roles will observe each case, propose friendly solutions between the traders, and potentially\ \ make final decisions if no agreements are reached. If you have acted honestly and followed the rules, the outcomes\ - \ will be in your favor and you will never lose your funds. You can read more about mediation and arbitration here\ - \ #TODO: add link.\n\nIn summary, Bisq is designed to minimize the need for trusting other peers and to discourage\ - \ scamming and other bad behaviors. This translates in very few trades having any kind of conflict, and those which\ - \ do will always be solved in a reasonable way through mediation and/or arbitration. The result: trading in Bisq is\ - \ a safe and smooth experience. + \ will be in your favor and you will never lose your funds.\n\nIn summary, Bisq is designed to minimize the need for \ + trusting other peers and to discourage scamming and other bad behaviors. This translates in very few trades having \ + any kind of conflict, and those which do will always be solved in a reasonable way through mediation and/or \ + arbitration. The result: trading in Bisq is a safe and smooth experience. academy.bitcoin.subHeadline=A peer-to-peer electronic cash that allows online payments to be sent directly without intermediaries. academy.bitcoin.whatIsBitcoinHeadline=What is Bitcoin @@ -96,9 +94,9 @@ academy.bitcoin.whatIsBitcoinContent=Bitcoin is the largest and most popular cry conditions and wishes). Because of this, you are also always free to send Bitcoin: you don't need anybody's approval \ to do so, and your transactions can't be stopped or reversed. A third interesting aspect is that Bitcoin's supply is \ limited to a maximum of 21 million. This means that the value of each bitcoin, unlike the value of each dollar for \ - example, can't be debased by creating more of it. Bitcoin is created through a costly process called mining, and the \ - amount and schedule that can be created through mining is strictly defined and can't be modified. This makes the \ - supply limited and certain, making Bitcoin attractive due to its scarcity. + example, can't be debased by creating more of it. Bitcoin is created through a costly process called mining, and \ + both the emission schedule and maximum amount that can be created are strictly defined and can't be modified. This \ + makes the supply limited, certain and predictable, making Bitcoin attractive due to its scarcity and robustness. academy.bitcoin.whyUseBitcoinHeadline=Why use Bitcoin academy.bitcoin.whyUseBitcoinContent=Bitcoin's properties make it a unique asset that attracts different people for \ different reasons. How Bitcoin appeals to you depends on your profile and needs.\n\nOne of the most common reasons \ @@ -138,8 +136,8 @@ academy.security.introContent=Because Bitcoin is quite different from national c academy.security.securingYourKeysHeadline=Securing your keys academy.security.securingYourKeysContent=First of all, you must understand one simple idea: not your keys, not your \ coins. This means that, in order for you to truly own your Bitcoin, it should be stored in a wallet where you, and \ - only you, own the keys. This means that a Bitcoin balance in entities such as banks and centralized exchanges is not \ - really Bitcoin that you own since it's those entities, and not you, who hold the keys to your funds. If you truly \ + only you, own the keys. Thus, holding a Bitcoin balance in entities such as banks or centralized exchanges is not \ + truly owning the asset since it's those entities, and not you, who hold the keys to your funds. If you truly \ want to own your bitcoin, you must store it in a wallet for which only you control the keys.\n\nThere are many \ Bitcoin wallets out there, each with its own unique design and features. What they all have in common is that, \ somehow, somewhere, they will store your private keys. These keys provide access to your funds. Whatever wallet you \ @@ -161,7 +159,7 @@ academy.security.securingYourKeysContent=First of all, you must understand one s to access your own wallet due to mistakes, confusion, or simply forgetting how you organized the backups. Aim for a \ balance between a set-up that is too simple and anybody could easily break (like storing your seedphrase in a plain \ text file on your laptop's desktop) and one that is so complex that not even you can crack (like storing the words \ - of your phrase across 12 books in 12 different locations). + of your seedphrase across 12 books in 12 different locations). academy.security.avoidScamsHeadline=Avoid scams academy.security.avoidScamsContent=Another source of problems and risks are scams. Bitcoin's transactions are \ irreversible, which means that if someone tricks you into sending them some Bitcoin and then runs away with it, \ @@ -178,7 +176,7 @@ academy.security.avoidScamsContent=Another source of problems and risks are scam academy.privacy.subHeadline=Your data is yours. Keep it that way. academy.privacy.introContent=Keeping your financial information and identity private is a common need among Bitcoin \ users. It is natural and logical to not want other people to know about your funds and transactions without your \ - consent. After all, you wouldn't wear a T-shirt with your bank account balance and credit card reports while you \ + consent. After all, you wouldn't wear a t-shirt with your bank account balance and credit card reports while you \ walked down the street, would you? Privacy is an important topic in Bitcoin because the transparent nature of \ Bitcoin transactions and addresses makes mistakes in this area especially costly. In this section, we cover some \ points on privacy in your Bitcoin journey. From 98d8addbe87bc5fb0204935934474c56a21c3557 Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 7 Aug 2023 00:22:32 +0200 Subject: [PATCH 13/14] More small fixes --- i18n/src/main/resources/academy.properties | 45 ++++++++++++---------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/i18n/src/main/resources/academy.properties b/i18n/src/main/resources/academy.properties index 11e17150c8..7fba7e00e9 100644 --- a/i18n/src/main/resources/academy.properties +++ b/i18n/src/main/resources/academy.properties @@ -207,27 +207,30 @@ academy.privacy.giveUpPrivacyContent=There are many ways in which one can volunt personal details. Most times, these are easy to prevent with a bit of common sense, since we frequently just give \ our details away by not being thoughtful about it. Some more subtle leaks will require some technical knowledge and \ time. But the good news is that, with minimal effort, the most significant issues can be avoided.\n\nThe clear \ - champion of privacy mistakes, both because of how frequent and how terrible it is, is simply providing your ID when \ - buying or selling Bitcoin. Nowadays, most centralized exchanges (companies like Coinbase, Kraken, Binance, etc.) are \ - subject to government KYC regulations (KYC stands for Know Your Customer). This means that governments force these \ - companies to ask for your passport, national identity card, driver's license, or similar documents so that this \ - information can be associated with your account. From the moment you give these away, every purchase and sale you \ - make will be recorded and linked to you. Furthermore, the exchange and government agencies will have full visibility \ - of your balances at any time. Even if you decide to take your Bitcoin out of these exchanges and into a wallet you \ - custody yourself, these parties will be able to track which addresses your funds were sent to. And if this is not \ - worrisome enough, there is another concern to keep in mind: if any hacker gains access to the databases of these \ - companies, your information could be leaked publicly to the internet, enabling anyone in the world to know all your \ - stored personal and financial information. This is a situation that has happened many times in the past few years, \ - with terrible consequences for some of the affected customers of the exchanges.\n\nAnother area where attention must \ - be paid is address re-use. Every time you provide someone with an address of your wallet in order to receive a \ - transaction from them, this person learns that this address belongs to you. This means that, from this point on, the \ - person could monitor the address and all its activity. If you reuse this address repeatedly, every person you \ - interact with will be able to see the different transactions going through the address, including when they happen, \ - where the funds are coming from and going to, and the amounts being transacted.\n\nFinally, relying on other \ - people's nodes to read blockchain data means that the node runner could potentially monitor what addresses your \ - wallet is interested in. When handling significant amounts of Bitcoin, it pays off to learn how to run your own node \ - and connect your wallet to it. Or, at least, be mindful about which node you are connecting to and choose one from a \ - person or organization you trust, such as a friend who is more experienced in Bitcoin or a local Bitcoin community. + champion of privacy mistakes, both because of how frequent and how terrible it is, is simply providing your ID \ + voluntarily when buying or selling Bitcoin. Nowadays, most centralized exchanges (companies like Coinbase, Kraken, \ + Binance, etc.) are subject to government KYC regulations (KYC stands for Know Your Customer). This means that \ + governments force these companies to ask for your passport, national identity card, driver's license, or similar \ + documents so that this information can be associated with your account. From the moment you give these away, every \ + purchase and sale you make will be recorded and linked to you. Furthermore, the exchange and government agencies \ + will have full visibility of your balances at any time. Even if you decide to take your Bitcoin out of these \ + exchanges and into a wallet you custody yourself, these parties will be able to track which addresses your funds \ + were sent to. And if this is not worrisome enough, there is another concern to keep in mind: if any hacker gains \ + access to the databases of these companies, your information could be leaked publicly to the internet, enabling \ + anyone in the world to know all your stored personal and financial information. This is a situation that has \ + happened many times in the past few years, with terrible consequences for some of the affected customers of the \ + exchanges.\n\nAnother area where attention must be paid is address re-use. Every time you provide someone with an \ + address of your wallet in order to receive some bitcoin from them, this person learns that this address belongs to \ + you. This means that, from this point on, the person could monitor the address and all its activity. If you reuse \ + this address repeatedly, every person you interact with will be able to see the different transactions going through \ + the address, including when they happen, where the funds are coming from and going to, and the amounts being \ + transacted. Hence, it is recommended to only use addresses to receive bitcoin once. Most wallets will take care of \ + this automatically for you, but it's still important for you to understand why this is a good practice.\n\nFinally, \ + relying on other people's nodes to read blockchain data means that the node runner could potentially monitor what \ + addresses your wallet is interested in. When handling significant amounts of Bitcoin, it pays off to learn how to \ + run your own node and connect your wallet to it. Or, at least, be mindful about which node you are connecting to and \ + choose one from a person or organization you trust, such as a friend who is more experienced in Bitcoin or a local \ + Bitcoin community. academy.privacy.bisqProtectsPrivacyHeadline=Bisq helps protect your privacy academy.privacy.bisqProtectsPrivacyContent=Bisq allows you to buy and sell Bitcoin from other peers. This simple \ difference comes with a world of advantages regarding privacy when compared to using centralized exchanges. By using \ From 2416bb85700dfe2a3f11895a213825b636ae5703 Mon Sep 17 00:00:00 2001 From: counterweight Date: Mon, 7 Aug 2023 00:36:40 +0200 Subject: [PATCH 14/14] Helper functions to set margins. --- .../desktop/main/content/academy/AcademyView.java | 9 +++++++++ .../main/content/academy/bisq/BisqAcademyView.java | 8 ++++---- .../content/academy/bitcoin/BitcoinAcademyView.java | 7 +++---- .../main/content/academy/foss/FossAcademyView.java | 7 +++---- .../content/academy/privacy/PrivacyAcademyView.java | 11 +++++------ .../content/academy/security/SecurityAcademyView.java | 8 ++++---- .../content/academy/wallets/WalletsAcademyView.java | 9 ++++----- 7 files changed, 32 insertions(+), 27 deletions(-) diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java index 88907c726d..aaef70159d 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/AcademyView.java @@ -74,6 +74,15 @@ protected Hyperlink addLearnMoreHyperlink() { root.getChildren().add(learnMore); return learnMore; } + + protected void setHeadlineMargin(Label headlineLabel) { + VBox.setMargin(headlineLabel, new Insets(35, 0, 0, 0)); + } + + protected void setLastLabelMargin(Label lastLabel) { + VBox.setMargin(lastLabel, new Insets(0, 0, 15, 0)); + } + protected abstract String getIconId(); protected abstract String getKey(); diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java index 9be0788947..f2f28e2d42 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bisq/BisqAcademyView.java @@ -38,10 +38,10 @@ public BisqAcademyView(BisqAcademyModel model, BisqAcademyController controller) Label tradeSafelyContent = addContentLabel("tradeSafelyContent"); Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(exchangeDecentralizedHeadline, new Insets(25, 0, 0, 0)); - VBox.setMargin(whyBisqHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(tradeSafelyHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(tradeSafelyContent, new Insets(0, 0, 15, 0)); + setHeadlineMargin(exchangeDecentralizedHeadline); + setHeadlineMargin(whyBisqHeadline); + setHeadlineMargin(tradeSafelyHeadline); + setLastLabelMargin(tradeSafelyContent); } @Override diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java index 0af5a8629f..9ecd380618 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/bitcoin/BitcoinAcademyView.java @@ -36,10 +36,9 @@ public BitcoinAcademyView(BitcoinAcademyModel model, BitcoinAcademyController co Label whyUseBitcoinContent = addContentLabel("whyUseBitcoinContent"); Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(whatIsBitcoinHeadline, new Insets(25, 0, 0, 0)); - VBox.setMargin(whyUseBitcoinHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(whyUseBitcoinContent, new Insets(0, 0, 15, 0)); - + setHeadlineMargin(whatIsBitcoinHeadline); + setHeadlineMargin(whyUseBitcoinHeadline); + setLastLabelMargin(whyUseBitcoinContent); } @Override diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java index cf4210266f..57cdada3fa 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/foss/FossAcademyView.java @@ -34,12 +34,11 @@ public FossAcademyView(FossAcademyModel model, FossAcademyController controller) Label bitcoinAndFossContent = addContentLabel("bitcoinAndFossContent"); Label openSourceBenefitsHeadline = addHeadlineLabel("openSourceBenefitsHeadline"); Label openSourceBenefitsContent = addContentLabel("openSourceBenefitsContent"); - Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(bitcoinAndFossHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(openSourceBenefitsHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(openSourceBenefitsContent, new Insets(0, 0, 15, 0)); + setHeadlineMargin(bitcoinAndFossHeadline); + setHeadlineMargin(openSourceBenefitsHeadline); + setLastLabelMargin(openSourceBenefitsContent); } @Override diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java index 82020c2d8d..b6c8209f33 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/privacy/PrivacyAcademyView.java @@ -37,14 +37,13 @@ public PrivacyAcademyView(PrivacyAcademyModel model, PrivacyAcademyController co Label giveUpPrivacyContent = addContentLabel("giveUpPrivacyContent"); Label bisqProtectsPrivacyHeadline = addHeadlineLabel("bisqProtectsPrivacyHeadline"); Label bisqProtectsPrivacyContent = addContentLabel("bisqProtectsPrivacyContent"); - Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(introContent, new Insets(25, 0, 0, 0)); - VBox.setMargin(whyPrivacyHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(giveUpPrivacyHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(bisqProtectsPrivacyHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(bisqProtectsPrivacyContent, new Insets(0, 0, 15, 0)); + setHeadlineMargin(introContent); + setHeadlineMargin(whyPrivacyHeadline); + setHeadlineMargin(giveUpPrivacyHeadline); + setHeadlineMargin(bisqProtectsPrivacyHeadline); + setLastLabelMargin(bisqProtectsPrivacyContent); } @Override diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java index 9b86a1d5bb..76641c85a8 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/security/SecurityAcademyView.java @@ -37,10 +37,10 @@ public SecurityAcademyView(SecurityAcademyModel model, SecurityAcademyController Label avoidScamsContent = addContentLabel("avoidScamsContent"); Hyperlink learnMore = addLearnMoreHyperlink(); - VBox.setMargin(introContent, new Insets(25, 0, 0, 0)); - VBox.setMargin(securingYourKeysHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(avoidScamsHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(avoidScamsContent, new Insets(0, 0, 15, 0)); + setHeadlineMargin(introContent); + setHeadlineMargin(securingYourKeysHeadline); + setHeadlineMargin(avoidScamsHeadline); + setLastLabelMargin(avoidScamsContent); } @Override diff --git a/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java b/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java index 439904fa1a..2a8203a30f 100644 --- a/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java +++ b/desktop/src/main/java/bisq/desktop/main/content/academy/wallets/WalletsAcademyView.java @@ -34,12 +34,11 @@ public WalletsAcademyView(WalletsAcademyModel model, WalletsAcademyController co Label whatIsAWalletContent = addContentLabel("whatIsAWalletContent"); Label howToPickHeadline = addHeadlineLabel("howToPickHeadline"); Label howToPickContent = addContentLabel("howToPickContent"); - Hyperlink learnMore = addLearnMoreHyperlink(); - - VBox.setMargin(whatIsAWalletHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(howToPickHeadline, new Insets(35, 0, 0, 0)); - VBox.setMargin(howToPickContent, new Insets(0, 0, 15, 0)); + + setHeadlineMargin(whatIsAWalletHeadline); + setHeadlineMargin(howToPickHeadline); + setLastLabelMargin(howToPickContent); } @Override