diff --git a/ng-app/src/lib/Install.svelte b/ng-app/src/lib/Install.svelte index 0e5a81b..5e930d4 100644 --- a/ng-app/src/lib/Install.svelte +++ b/ng-app/src/lib/Install.svelte @@ -38,7 +38,7 @@
-
diff --git a/ng-app/src/lib/NoWallet.svelte b/ng-app/src/lib/NoWallet.svelte index 91f30e5..1a26651 100644 --- a/ng-app/src/lib/NoWallet.svelte +++ b/ng-app/src/lib/NoWallet.svelte @@ -25,7 +25,7 @@
-

{$t("pages.no_wallet.welcome")}

diff --git a/ng-app/src/locales/en.json b/ng-app/src/locales/en.json index 5891211..9387082 100644 --- a/ng-app/src/locales/en.json +++ b/ng-app/src/locales/en.json @@ -9,23 +9,22 @@ }, "user_panel": { "title": "User Panel", - "personal": "Personal", - "already_registered": "The user is already registered with the selected broker.
Try logging in instead.", - "error": "An error occured:
{error}" + "personal": "Personal" }, "user_registered": { - "already_exists": "The user is already registered with the selected broker.
Try logging in instead.", - "error": "An error occured:
{error}", "back_to_homepage": "Go Back to Homepage", - "success": "You have been successfully registered{invitation_name, select, null {} other { to {invitationName}}}." + "success": "You have been successfully registered.", + "success_with_invitation": "You have been successfully registered to {invitation_name}." }, - "wallet": { + "wallet_info": { "title": "Wallet", "download": "Download Wallet File", "download_failed": "Download Failed:
{error}", "download_in_progress": "Download in progress...", "download_successful": "You will find the file named \"{wallet_file}\" in your Downloads folder", - "download_file": "Click here to download the wallet file" + "download_file_button": "Click here to download the wallet file", + "remove_wallet": "Remove wallet from Device", + "remove_wallet_confirm": "Are you sure you want to remove this wallet from your device?" }, "settings": { "title": "Settings" @@ -94,18 +93,210 @@ "select_emoji": "Select your emoji of category:
{category}", "order_emojis": "Select each image in the correct order", "enter_pin": "Enter your PIN code", - "go_back": "Go Back", - "correct": "Correct", "opening_wallet": "Opening your wallet...
Please wait", - "error_occured": "An error occured!", - "try_again": "Try Again", - "wallet_opened": "Your wallet is opened!
Please wait while the app is loading..." + "wallet_opened": "Your wallet is opened!
Please wait while the app is loading...", + "qr_code": "Wallet QR-Code", + "qr_modal_title": "My Wallet QR-Code", + "qr_modal_description": "Use this QR-Code to log in with your wallet on new devices.", + "copy_wallet_link": "Copy Wallet Link", + "keep_wallet": "Save to Device for Future Logins" }, - "wallet_create": {} + "account_info": { + "title": "Account Info", + "site": "{name} account", + "devices": "Devices", + "brokers": "Brokers", + "no_brokers_connected": "No brokers connected" + }, + "wallet_create": { + "pease_wait": "Please wait", + "redirecting_to_registration_page": "Redirecting to the Broker Service Provider registration page", + "complete_in_popup": "Complete the registration in the popup window", + "own_your_ngbox": "Own your NG-Box", + "self-host_broker": "Self-host a broker", + "tos_ng_one": "Terms of Service NextGraph.one", + "wallet_description": "A NextGraph Wallet is unique to each person. It stores your credentials and authorizations to access documents. You need one in order to start using NextGraph.

If you already have a wallet, you should not create a new one. Instead, login here with your existing wallet. If you never created a NextGraph Wallet before, please follow the instructions below in order to create your unique personal wallet.", + "has_wallet": "Some wallets are saved on this device,
to log in with one of them, click here.", + "wallet_about": { + "title": "What is a wallet?", + "please_read": "Please read", + "1": "Your wallet is a secure and encrypted small file that contains some important information that only you should have access to.", + "2": "In your wallet, we store all the permissions to access documents you have been granted with, or that you have created yourself.", + "3": "In order to open it, you will need to enter your pazzle and a PIN code of 4 digits. Your personal pazzle (contraction of puzzle and password) is composed of 9 images you should remember. The order of the images is important too.", + "4": "Don't worry, it is easier to remember 9 images than a password like \"69$g&ms%C*%\", and it has the same strength as a complex password. The entropy of your pazzle is 66bits, which is considered very high by all standards.", + "5": "You should only create one unique wallet for yourself. All your accounts, identities and permissions will be added to this unique wallet later on. Do not create another wallet if you already have one. Instead, you will import your existing wallet in all the apps and websites where you need it.", + "6": "Your wallet can be imported with the help of a small file that you download, or with a QRcode. In any case, you should never share this file or QRcode with anybody else.", + "7": "We at NextGraph will never see the content of your wallet. It is encrypted and we do not know your pazzle, so we cannot see what is inside.", + "8": "For the same reason, we won't be able to help you if you forget your pazzle or PIN code, or if you loose the wallet file. There is no \"password recovery\" option in this case. You can note your pazzle down on a piece of paper until you remember it, but don't forget to destroy this note after a while." + }, + "create_wallet_now": "I create my wallet now!", + "select_server": "NextGraph is based on an efficient decentralized P2P network, and in order to join this network and start using the app, you need to first select a broker server.", + "broker_about": { + "title": "What is a broker?", + "please_read": "Please read", + "1": "The broker helps you keep all your data in sync, as it is connected to the internet 24/7 and keeps a copy of the updates for you. This way, even if the devices of the other participants are offline, you can still see their changes", + "2": "All your data is secure and end-to-end encrypted, and the broker cannot see the content of the documents as it does not have the keys to decrypt them.", + "3": "The broker helps you enforce your privacy as it hides your internet address (IP) from other users you share documents with.", + "4": "It will be possible in the future to use NextGraph without any broker and to have direct connections between peers, but this will imply a less smooth experience.", + "5": "At anytime you can decide to switch to another broker service provider or host it yourself. Your data is totally portable and can freely move to another broker.", + "6": "Soon we will offer you the opportunity to host your own broker at home or office. Instead of using a \"broker service provider\", you will own a small device that you connect behind your internet router. It is called NG Box and will be available soon.", + "7": "Organizations and companies have the opportunity to host a broker on-premise or in the cloud, as the software is open source. Individuals can also self-host a broker on any VPS server or at home, on their dedicated hardware." + }, + "choose_broker": "Please choose one broker among the list", + "register_with_broker": "Register with {broker}", + "for_eu_citizens": "For European Union Citizens", + "for_rest": "For the rest of the world", + "enter_invite_link": "Enter an invitation link", + "scan_invite_qr": "Scan an invitation QR-code", + "self_hosted_broker": "Self-hosted broker", + "ng_box": "NG Box (owned or invited)", + "registration_success": "You have been successfully registered to {broker}", + "choose_pin": { + "title": "Let's start creating your wallet by choosing a PIN code", + "description": "We recommend you to choose a PIN code that you already know very well.
Your credit card PIN, by example, is a good choice.
We at NextGraph will never see your PIN.", + "1": "It cannot be a series like 1234 or 8765.", + "2": "The same digit cannot repeat more than once. By example 4484 is invalid.", + "3": "Try to avoid birth date, last digits of phone number, or zip code" + }, + "chosen_pin": "You have chosen:", + "confirm_pin": "Please confirm your PIN code.", + "confirm_pin_description": "Enter the same PIN again.", + "pin_confirmed_as": "You PIN is confirmed as: ", + "choose_security_phrase_and_image": { + "title": "Now let's enter a security phrase and a security image", + "description": "As a verification step, this phrase and image will be presented to you every time you are about to enter your pazzle and PIN in order to unlock your wallet.
This security measure will prevent you from entering your pazzle and PIN on malicious sites and apps.", + "warning": "Every time you will use your wallet, if you do not see and recognize your own security phrase and image before entering your pazzle, please stop and DO NOT enter your pazzle, as you would be the victim of a phishing attempt.", + "rules_title": "Here aer the rules for the security phrase and image:", + "1": "The phrase should be at least 10 characters long", + "2": "It should be something you will remember, but not something too personal.", + "3": "Do not enter your full name, nor address, nor phone number.", + "4": "Instead, you can enter a quote, a small sentence that you like, or something meaningless to others, but unique to you.", + "5": "The image should be minimum 150x150px. There is no need to provide more than 400x400px as it will be scaled down anyway.", + "6": "We accept several formats like JPEG, PNG, GIF, WEBP and more.", + "7": "The image should be unique to you. But it should not be too personal neither.", + "8": "Do not upload your face picture, this is not a profile pic.", + "9": "The best would be a landscape you like or any other picture that you will recognize as unique.", + "10": "Please be aware that other people who are sharing this device with you, will be able to see this image and phrase." + }, + "save_security_phrase_and_image": "Save security phrase & image", + "tap_to_upload": "Tap to upload an image", + "click_to_upload": "Click to select an image", + "or_drag_drop": "or drag and drop", + "pins_no_match": "You didn't enter the same PIN twice", + "almost_done": "We are almost done!", + "save_wallet_options": { + "description": "There are 4 options to choose before we can create your wallet. Those options can help you to use and keep your wallet. But we also want to be careful with your security and privacy.

Remember that in any case, once your wallet will be created, you will download a file that you should keep privately somewhere on your device, USB key or hard-disk. This is the default way you can use and keep your wallet. Now let's look at some options that can make your life a bit easier.", + "trust": "Do you trust this device?", + "trust_description": "If you do, if this device is yours or is used by few trusted persons of your family or workplace, and you would like to login again from this device in the future, then you can save your wallet on this device. To the contrary, if this device is public and shared by strangers, do not save your wallet here.", + "trust_allow_cookies": "By selecting this option, you agree to saving some cookies on your browser.", + "trust_toggle": "Save my wallet on this device?", + "cloud": "Keep a copy in the cloud?", + "cloud_description": "Are you afraid that you will loose the file containing your wallet? If this would happen, your wallet would be lost forever, together with all your documents. We can keep an encrypted copy of your wallet in our cloud. Only you will be able to download it with a special link. You would have to keep this link safely though. By selecting this option, you agree to the", + "cloud_toggle": "Save my wallet in the cloud?", + "cloud_tos": "Terms of Service of our cloud", + "pdf": "Create a PDF file of your wallet?", + "pdf_description": "We can prepare for you a PDF file containing all the information of your wallet, unencrypted. You should print this file and then delete the PDF (and empty the trash). Keep this printed document in a safe place. It contains all the information to regenerate your wallet in case you lost access to it.", + "pdf_toggle": "Create a PDF of my wallet?", + "link": "Create a link to access your wallet easily?", + "link_descriptions": "When you want to use your wallet on the web or from other devices, we can help you find your wallet by creating a simple link accessible from anywhere. Only you will have access to this link. In order to do so, we will keep your wallet ID and some information about your broker on our cloud servers. If you prefer to opt out, just uncheck this option. By selecting this option, you agree to the", + "link_toggle": "Create a link to my wallet?" + }, + "lets_create": "Let's create this wallet", + "creating": "Your wallet is being created", + "ready": "Your wallet is ready!", + "download_wallet_description": "Please download your wallet and keep it in a safe location", + "download_wallet": "Download my wallet", + "download_wallet_done": "Your wallet file has been downloaded into your \"Downloads\" folder, with the name
{download_name}
Please move it to a safe and durable place.
", + "your_pazzle": "Here below is your Pazzle.
The order of each image is important!", + "your_mnemonic": "And here is your mnemonic (your alternative passphrase):", + "unlock_tips_1": "You can use both the pazzle or the mnemonic to unlock your wallet. The pazzle is easier to remember. The mnemonic is useful in some special cases. We recommend that you use the pazzle. Copy both on a piece of paper. You should try to memorize the pazzle. Once you did, you won't need the paper anymore.", + "unlock_tips_2": "Now click on \"Continue to Login\" and select your new wallet.", + "unlock_tips_3": "It is important that you login with this wallet at least once from this {platform, select, browser {browser tab} other {device}},
while connected to the internet, so your personal site can be created on your broker.", + "continue_to_login": "Continue to Login", + "continue_confirm": "Did you write down your login credentials?", + "continue_confirm_description": "The pazzle and the mnemonic will not be shown to you again. Please make sure, you have written them down.", + "continue_confirm_go_back": "Take me back", + "continue_confirm_yes": "Yes, I did" + } }, "buttons": { + "ok": "Ok", + "go_back": "Go Back", "back": "Back", - "confirm": "Confirm" + "confirm": "Confirm", + "cancel": "Cancel", + "remove": "Remove", + "correct": "Correct", + "try_again": "Try Again", + "back_to_homepage": "Go Back to Homepage", + "logout": "Logout", + "login": "Login", + "start_over": "Start over" + }, + "errors": { + "an_error_occurred": "An error occurred!", + "error_occurred": "An error occurred:
{message}", + "AlreadyExists": "The user is already registered with the selected broker.
Try logging in instead.", + "InvalidSignature": "The signature is invalid.", + "IncompleteSignature": "The signature is incomplete.", + "SerializationError": "The object could not be serialized.", + "EncryptionError": "Error with encryption.", + "DecryptionError": "Error with decryption.", + "InvalidValue": "The value is invalid.", + "ConnectionNotFound": "The connection was not found.", + "InvalidKey": "The key is invalid.", + "InvalidInvitation": "The invitation is invalid.", + "InvalidCreateAccount": "An error occurred creating the account.", + "InvalidFileFormat": "The file format is invalid.", + "InvalidArgument": "The parameter is invalid.", + "PermissionDenied": "Permission denied.", + "InvalidPazzle": "The pazzle is not correct.", + "InvalidMnemonic": "The mnemonic is not correct.", + "CommitLoadError": "Error loading commit.", + "ObjectParseError": "Error parsing object.", + "StorageError": "Storage error. ", + "NotFound": "Could not find resource.", + "JsStorageKeyNotFound": "Could not find JavaScript storage key.", + "IoError": "Input/Output error.", + "CommitVerifyError": "Verifying commit failed.", + "LocalBrokerNotInitialized": "The local broker is not initialized.", + "JsStorageReadError": "Could not read from JavaScript Storage.", + "JsStorageWriteError": "Could not write to JavaScript Storage.", + "CannotSaveWhenInMemoryConfig": "Saving in Browser is not possible.", + "WalletNotFound": "The wallet was not found.", + "WalletAlreadyAdded": "The wallet is already added.", + "WalletAlreadyOpened": "The wallet is already open.", + "WalletError": "Error with wallet.", + "BrokerError": "Error with broker.", + "SessionNotFound": "The session cannot be found.", + "SessionAlreadyStarted": "The session is already started.", + "RepoNotFound": "The repository cannot be found.", + "BranchNotFound": "The branch cannot be found.", + "StoreNotFound": "The store cannot be found.", + "UserNotFound": "The user cannot be found.", + "TopicNotFound": "The topic cannot be found.", + "NotConnected": "You are not connected.", + "ActorError": "Actor error.", + "ProtocolError": "Protocol error.", + "ServerError": "Server error.", + "InvalidResponse": "Received an invalid response.", + "BootstrapError": "Error while bootstrapping", + "NotAServerError": "Not a server.", + "VerifierError": "Error during verification.", + "SiteNotFoundOnBroker": "The site cannot be found on the broker", + "BrokerConfigErrorStr": "{error}", + "BrokerConfigError": "Error in the broker configuration", + "MalformedEvent": "The event has an invalid format.", + "InvalidPayload": "The payload is invalid.", + "WrongUploadId": "The upload ID is incorrect.", + "FileError": "Error with file.", + "InternalError": "Internal Error", + "OxiGraphError": "Error in OxiGraph database.", + "ConfigError": "Error in configuration", + "LocalBrokerIsHeadless": "The local broker is headless.", + "LocalBrokerIsNotHeadless": "The local broker is not headless.", + "InvalidNuri": "Invalid NextGraph URI", + "InvalidTarget": "Cannot resolve target" }, "connectivity": { "stopped": "Stopped", @@ -122,10 +313,7 @@ "logo": "NextGraph Logo", "support_nextgraph": "Support NextGraph", "about_nextgraph": "About NextGraph", - "back_to_homepage": "Go Back to Homepage", - "donate_nextgraph": "Donate to NextGraph", - "logout": "Logout", - "login": "Login" + "donate_nextgraph": "Donate to NextGraph" }, "emojis": { "category": { diff --git a/ng-app/src/routes/AccountInfo.svelte b/ng-app/src/routes/AccountInfo.svelte index 122c088..3794e27 100644 --- a/ng-app/src/routes/AccountInfo.svelte +++ b/ng-app/src/routes/AccountInfo.svelte @@ -21,7 +21,7 @@ import { ArrowLeft, ServerStack } from "svelte-heros-v2"; import { onMount, tick } from "svelte"; import { Sidebar, SidebarGroup, SidebarWrapper } from "flowbite-svelte"; - + import { t } from "svelte-i18n"; import { active_session, active_wallet, connections } from "../store"; import { default as ng } from "../api"; @@ -175,7 +175,7 @@
  • -

    Account Info

    +

    {$t("pages.account_info.title")}

  • - Back + {$t("buttons.back")}
  • @@ -198,7 +198,7 @@ class="flex items-center p-2 text-base font-normal text-gray-900" >

    - {site.name} account + {$t("pages.account_info.site", { values: { name: site.name } })}

    @@ -210,7 +210,7 @@

    - Devices + {$t("pages.account_info.devices")}

    {#each site.devices as device, index} @@ -301,7 +301,9 @@
  • - No brokers connected + {$t("pages.account_info.no_brokers_connected")}
  • {/if} @@ -328,8 +330,7 @@ {#if error == "AlreadyExists"}

    - The user is already registered with the selected broker.
    Try logging - in instead + {@html $t("errors.AlreadyExists")}

    {/if} diff --git a/ng-app/src/routes/User.svelte b/ng-app/src/routes/User.svelte index c6e5223..f10e73e 100644 --- a/ng-app/src/routes/User.svelte +++ b/ng-app/src/routes/User.svelte @@ -364,7 +364,9 @@ {:else}

    - {@html $t("errors.error_occured", { values: { error } })} + {@html $t("errors.error_occurred", { + values: { message: $t("errors." + error) }, + })}

    {:else}

    - An error occurred during registration:
    {registration_error} + {@html $t("errors.error_occurred", { + values: { message: $t("errors." + registration_error) }, + })}

    {/if} @@ -600,22 +605,12 @@ {:else if intro}

    - A NextGraph Wallet is unique to each person. It stores your - credentials and authorizations to access documents. You need one - in order to start using NextGraph.

    If you already have - a wallet, you should not create a new one. Instead, - login here with your existing wallet. - If you never created a NextGraph Wallet before, please follow the instructions - below in order to create your unique personal wallet. + {@html $t("pages.wallet_create.wallet_description")}

    {#if $has_wallets} - Some wallets are saved on this device,
    to log in with one of - them, - click here. + {@html $t("pages.wallet_create.has_wallet")}
    {/if}

    - What is a wallet? Please read + {$t("pages.wallet_create.wallet_about.title")}{$t("pages.wallet_create.wallet_about.please_read")}

      - It is a secure and encrypted small file that contains some - important information that only you should have access to. + {@html $t("pages.wallet_create.wallet_about.1")}
    • @@ -667,11 +662,7 @@ d="M15.75 5.25a3 3 0 013 3m3 0a6 6 0 01-7.029 5.912c-.563-.097-1.159.026-1.563.43L10.5 17.25H8.25v2.25H6v2.25H2.25v-2.818c0-.597.237-1.17.659-1.591l6.499-6.499c.404-.404.527-1 .43-1.563A6 6 0 1121.75 8.25z" /> - In your wallet, we store all the permissions to access - documents you have been granted with, or that you have - created yourself. + {@html $t("pages.wallet_create.wallet_about.2")}
    • @@ -690,15 +681,7 @@ d="M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 01-.657.643 48.39 48.39 0 01-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 01-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 00-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 01-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 00.657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 01-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 005.427-.63 48.05 48.05 0 00.582-4.717.532.532 0 00-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 00.658-.663 48.422 48.422 0 00-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 01-.61-.58v0z" /> - In order to open it, you will need to enter your pazzle - and a - PIN code of 4 digits. Your personal pazzle (contraction - of puzzle and password) is composed of 9 images you should remember. - The order of the images is important too. + {@html $t("pages.wallet_create.wallet_about.3")}
    • @@ -718,13 +701,7 @@ d="M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z" /> - Don't worry, it is easier to remember 9 images than a - password like "69$g&ms%C*%", and it has the same strength as - a complex password. The entropy of your pazzle is 66bits, which is considered very high by all standards. + {@html $t("pages.wallet_create.wallet_about.4")}
    • @@ -743,14 +720,7 @@ d="M16.5 12a4.5 4.5 0 11-9 0 4.5 4.5 0 019 0zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 10-2.636 6.364M16.5 12V8.25" /> - You should only create one unique wallet for yourself. All your accounts, identities and permissions will be - added to this unique wallet later on. Do not create another - wallet if you already have one. Instead, you will - import your existing wallet in all the apps and websites - where you need it + {@html $t("pages.wallet_create.wallet_about.5")}
    • @@ -769,11 +739,7 @@ d="M15.75 9V5.25A2.25 2.25 0 0013.5 3h-6a2.25 2.25 0 00-2.25 2.25v13.5A2.25 2.25 0 007.5 21h6a2.25 2.25 0 002.25-2.25V15M12 9l-3 3m0 0l3 3m-3-3h12.75" /> - Your wallet can be imported with the help of a small file - that you download, or with a QRcode. In any case, you should - never share this file or QRcode with anybody else. + {@html $t("pages.wallet_create.wallet_about.6")}
    • @@ -792,11 +758,7 @@ d="M3.98 8.223A10.477 10.477 0 001.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.45 10.45 0 0112 4.5c4.756 0 8.773 3.162 10.065 7.498a10.523 10.523 0 01-4.293 5.774M6.228 6.228L3 3m3.228 3.228l3.65 3.65m7.894 7.894L21 21m-3.228-3.228l-3.65-3.65m0 0a3 3 0 10-4.243-4.243m4.242 4.242L9.88 9.88" /> - We at NextGraph will never see the content of your wallet. - It is encrypted and we do not know your pazzle, so we cannot - see what is inside. + {@html $t("pages.wallet_create.wallet_about.7")}
    • @@ -815,15 +777,7 @@ d="M12 18v-5.25m0 0a6.01 6.01 0 001.5-.189m-1.5.189a6.01 6.01 0 01-1.5-.189m3.75 7.478a12.06 12.06 0 01-4.5 0m3.75 2.383a14.406 14.406 0 01-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 10-7.517 0c.85.493 1.509 1.333 1.509 2.316V18" /> - For the same reason, we won't be able to help you if you - forget your pazzle or PIN code, or if you loose the wallet - file. - There is no "password recovery" option in this case. You can note your pazzle down on a piece of paper - until you remember it, but don't forget to destroy this note - after a while. + {@html $t("pages.wallet_create.wallet_about.8")}
    @@ -848,15 +802,13 @@ d="M19 7.5v3m0 0v3m0-3h3m-3 0h-3m-2.25-4.125a3.375 3.375 0 11-6.75 0 3.375 3.375 0 016.75 0zM4 19.235v-.11a6.375 6.375 0 0112.75 0v.109A12.318 12.318 0 0110.374 21c-2.331 0-4.512-.645-6.374-1.766z" /> - I create my wallet now ! + {@html $t("pages.wallet_create.create_wallet_now")}
    {:else if !invitation}

    - NextGraph is based on an efficient decentralized P2P network, and - in order to join this network and start using the app, you need to - first select a broker server. + {@html $t("pages.wallet_create.select_server")}

    - What is a broker? Please read + {$t("pages.wallet_create.broker_about.title")}{@html $t( + "pages.wallet_create.broker_about.please_read" + )}

      - - The broker helps you keep all your data in sync, as - it is connected to the internet 24/7 and keeps a copy of the - updates for you. This way, even if the devices of the other - participants are offline, you can still see their changes + {@html $t("pages.wallet_create.broker_about.1")}
    • - - All your data is secure and end-to-end encrypted, and - the broker cannot see the content of the documents as it - does not have the keys to decrypt them. + {@html $t("pages.wallet_create.broker_about.2")}
    • - - The broker helps you enforce your privacy as it hides - your internet address (IP) from other users you share documents - with. + {@html $t("pages.wallet_create.broker_about.3")}
    • - - It will be possible in the future to use NextGraph without - any broker and to have direct connections between peers, but - this will imply a less smooth experience. + {@html $t("pages.wallet_create.broker_about.4")}
    • - - At anytime you can decide to switch to another broker - service provider or host it yourself. Your data is totally portable - and can freely move to another broker. + {@html $t("pages.wallet_create.broker_about.5")}
    • - - Soon we will offer you the opportunity to host your own - broker at home - or office. Instead of using a "broker service - provider", you will own a small device that you connect - behind your internet router. It is called NG Box and will - be available soon. + {@html $t("pages.wallet_create.broker_about.6")}
    • - - Organizations and companies have the opportunity to host a - broker on-premise - or in the cloud, as the software is open source. - Individuals can also - self-host a broker on any VPS server or at home, on their - dedicated hardware. + {@html $t("pages.wallet_create.broker_about.7")}

    - Please choose one broker among the list + {$t("pages.wallet_create.choose_broker")}

    @@ -1067,7 +987,9 @@ d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" /> - Register with {pre_invitation.V0.name || "this broker"} + {$t("pages.wallet_create.register_with", { + values: { broker: pre_invitation.V0.name || "this broker" }, + })}
    {:else} @@ -1080,7 +1002,7 @@ class="mr-4 block h-10 w-10" alt="European Union flag" /> - For European Union citizens + {$t("pages.wallet_create.for_eu_citizens")} @@ -1104,7 +1026,7 @@ d="M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418" /> - For the rest of the world + {$t("pages.wallet_create.for_rest")} {/if} @@ -1132,7 +1054,7 @@ /> - Enter an invitation link + {$t("pages.wallet_create.enter_invite_link")} {#if false && mobile} @@ -1161,7 +1083,7 @@ /> - Scan an invitation QRcode + {$t("pages.wallet_create.scan_invite_qr")} {/if} @@ -1185,7 +1107,7 @@ d="M5.25 14.25h13.5m-13.5 0a3 3 0 01-3-3m3 3a3 3 0 100 6h13.5a3 3 0 100-6m-16.5-3a3 3 0 013-3h13.5a3 3 0 013 3m-19.5 0a4.5 4.5 0 01.9-2.7L5.737 5.1a3.375 3.375 0 012.7-1.35h7.126c1.062 0 2.062.5 2.7 1.35l2.587 3.45a4.5 4.5 0 01.9 2.7m0 0a3 3 0 01-3 3m0 3h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008zm-3 6h.008v.008h-.008v-.008zm0-6h.008v.008h-.008v-.008z" /> - Self-hosted broker + {$t("pages.wallet_create.self_hosted_broker")}
    @@ -1213,7 +1135,7 @@ width="195.79167" /> - NG Box (owned or invited) + {$t("pages.wallet_create.ng_box")}
    {:else if pin.length < 4} @@ -1221,38 +1143,36 @@ {#if registration_success} You have been successfully registered to {registration_success}{$t("pages.wallet_create.registration_success", { + values: { broker: registration_success }, + })} {/if}

    Let's start creating your wallet by choosing a PIN code{$t("pages.wallet_create.choose_pin.title")} - We recommend you to choose a PIN code that you already know very - well. -
    - Your credit card PIN, by example, is a good choice.
    We at - NextGraph will never see your PIN. + {@html $t("pages.wallet_create.choose_pin.description")}

    -

    Here are the rules for the PIN :

    +

    + {$t("pages.wallet_create.chose_pin.rules")} +

    - You have chosen: {#each pin as digit}{digit}{digit}{/each}
    @@ -1282,12 +1202,12 @@

    Please confirm your PIN code.{$t("pages.wallet_create.confirm_pin")} - Enter the same PIN again + {$t("pages.wallet_create.confirm_pin_description")}

    - You have chosen: {#each pin_confirm as digit}{digit}{/each} @@ -1318,67 +1238,85 @@
    {#if pin.toString() === pin_confirm.toString()} - Your PIN is confirmed as : {#each pin_confirm as digit}{digit}{digit}{/each}

    - Now let's enter a security phrase and a security image + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.title" + )}

    - As a verification step, this phrase and image will be presented - to you every time you are about to enter your pazzle and PIN in - order to unlock your wallet.
    - This security measure will prevent you from entering your pazzle - and PIN on malicious sites and apps. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.description" + )} - Every time you will use your wallet, if you do not see and - recognize your own security phrase and image before entering - your pazzle, please stop and DO NOT enter your pazzle, as you - would be the victim of a phishing attempt. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.warning" + )}

    - Here are the rules for the security phrase and image : + {$t( + "pages.wallet_create.choose_security_phrase_and_image.rules_title" + )}

      -
    • The phrase should be at least 10 characters long
    • - It should be something you will remember, but not something - too personal. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.1" + )}
    • - Do not enter your full name, nor address, nor phone number. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.2" + )}
    • - Instead, you can enter a quote, a small sentence that you - like, or something meaningless to others, but unique to you. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.3" + )}
    • - The image should be minimum 150x150px. There is no need to - provide more than 400x400px as it will be scaled down anyway. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.4" + )}
    • - We accept several formats like JPEG, PNG, GIF, WEBP and more. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.5" + )}
    • - The image should be unique to you. But it should not be too - personal neither. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.6" + )}
    • - Do not upload your face picture, this is not a profile pic. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.7" + )}
    • - The best would be a landscape you like or any other picture - that you will recognize as unique. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.8" + )}
    • - Please be aware that other people who are sharing this device - with you, will be able to see this image and phrase. + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.9" + )} +
    • +
    • + {@html $t( + "pages.wallet_create.choose_security_phrase_and_image.10" + )}
    @@ -1390,7 +1328,7 @@ bind:value={security_txt} on:keypress={security_phrase_ok} />
    {#if security_txt && security_img} {/if}

    {#if is_touch_device} - Tap to upload an image + {$t("pages.wallet_create.tap_to_upload")} {:else} - Click to select an image or - drag and drop + {$t("pages.wallet_create.click_to_upload")}{$t("pages.wallet_create.or_drag_drop")} {/if}

    {:else} - You didn't enter the same PIN twice + {$t("pages.wallet_create.pins_no_match")} {/if}
    {:else if !creating}

    - We are almost done !
    - There are 4 options to choose before we can create your wallet. Those - options can help you to use and keep your wallet. But we also want - to be careful with your security and privacy.

    - Remember that in any case, once your wallet will be created, you will - download a file that you should keep privately somewhere on your device, - USB key or hard-disk. This is the default way you can use and keep - your wallet. Now let's look at some options that can make your life - a bit easier. + {$t("pages.wallet_create.almost_done")}
    + {@html $t("pages.wallet_create.save_wallet_options.description")}

    - Do you trust this device?
    - If you do, if this device is yours or is used by few trusted persons - of your family or workplace, and you would like to login again from - this device in the future, then you can save your wallet on this device. - To the contrary, if this device is public and shared by strangers, - do not save your wallet here. {#if !tauri_platform}By selecting - this option, you agree to save some cookies on your browser.{/if}
    + {@html $t( + "pages.wallet_create.save_wallet_options.trust" + )}
    + {@html $t( + "pages.wallet_create.save_wallet_options.trust_description" + )} + {#if !tauri_platform}{@html $t( + "pages.wallet_create.save_wallet_options.trust_allow_cookies" + )}{/if}
    Save my wallet on this device?{@html $t( + "pages.wallet_create.save_wallet_options.trust_toggle" + )}

    - Keep a copy in the cloud?
    - Are you afraid that you will loose the file containing your wallet? - If this would happen, your wallet would be lost forever, together with - all your documents. We can keep an encrypted copy of your wallet in - our cloud. Only you will be able to download it with a special link. - You would have to keep this link safely though. By selecting this option, - you agree to the + {@html $t( + "pages.wallet_create.save_wallet_options.cloud" + )}
    + {@html $t( + "pages.wallet_create.save_wallet_options.cloud_description" + )} Terms of Service of our cloud{@html $t( + "pages.wallet_create.save_wallet_options.cloud_tos" + )}.
    Save my wallet in the cloud?{@html $t( + "pages.wallet_create.save_wallet_options.cloud_toggle" + )}

    - Create a PDF file of your wallet? + {@html $t("pages.wallet_create.save_wallet_options.pdf")}
    - We can prepare for you a PDF file containing all the information of - your wallet, unencrypted. You should print this file and then delete - the PDF (and empty the trash). Keep this printed document in a safe - place. It contains all the information to regenerate your wallet in - case you lost access to it. + {@html $t( + "pages.wallet_create.save_wallet_options.pdf_description" + )}
    Create a PDF of my wallet?{@html $t( + "pages.wallet_create.save_wallet_options.pdf_toggle" + )}

    {#if !options.cloud}

    Create a link to access your wallet easily? + >{@html $t("pages.wallet_create.save_wallet_options.link")}
    - When you want to use your wallet on the web or from other devices, - we can help you find your wallet by creating a simple link accessible - from anywhere. Only you will have access to this link. In order to - do so, we will keep your wallet ID and some information about your - broker on our cloud servers. If you prefer to opt out, just uncheck - this option. By selecting this option, you agree to the + {@html $t( + "pages.wallet_create.save_wallet_options.link_description" + )} Terms of Service of our cloud{@html $t( + "pages.wallet_create.save_wallet_options.cloud_tos" + )}.
    Create a link to my wallet?{@html $t( + "pages.wallet_create.save_wallet_options.link_toggle" + )}

    {/if} @@ -1576,13 +1527,13 @@ /> - Let's create this wallet + {$t("pages.wallet_create.lets_create")}
    {:else if !error} {#if !ready}
    - Your wallet is being created... + {$t("pages.wallet_create.creating")}
    -
    Your wallet is ready!
    +
    {$t("pages.wallet_create.ready")}
    {#if download_link} - Please download your wallet and keep it in a safe location
    + {@html $t( + "pages.wallet_create.download_wallet_description" + )}
    - Download my wallet + {@html $t("pages.wallet_create.download_wallet")}
    {:else if !options.trusted} - Your wallet file has been downloaded into your "Downloads" - folder, with the name
    - {download_name}
    - Please move it to a safe and durable place.
    + {@html $t("pages.wallet_create.download_wallet_done", { + values: { download_name }, + })} {/if} - Here below is your Pazzle. -
    - The order of each image is - important ! + {@html $t("pages.wallet_create.your_pazzle")}
    {emoji.cat}
    - {emoji.code} + {$t("emojis.codes." + emoji.code)}
    @@ -1713,32 +1658,21 @@ {@html $t("pages.wallet_create.your_mnemonic")}
    - You can use both the pazzle or the mnemonic to unlock your wallet. - The pazzle is easier to remember. The mnemonic is useful in some special - cases. We recommend that you use the pazzle. - - Copy both on a piece of paper. - You should try to memorize the pazzle. Once you did, you won't need - the paper anymore. - + {@html $t("pages.wallet_create.unlock_tips_1")}

    - Now click on "Continue to Login" and select your new wallet. + {@html $t("pages.wallet_create.unlock_tips_2")}
    - It is important that you login with - this wallet - at least once - from this {#if tauri_platform}device{:else}browser tab{/if},
    - while connected to the internet, so your personal site can be created - on your broker.

    + {@html $t("pages.wallet_create.unlock_tips_3", { + values: { platform: tauri_platform || "browser" }, + })} +

    - The pazzle and the mnemonic - will not be shown to you again. Please make sure, you have written them down. + {@html $t("pages.wallet_create.continue_confirm_description")}
    {$t( + "pages.wallet_create.continue_confirm_go_back" + )} {$t("pages.wallet_create.continue_confirm_yes")} -
    @@ -1792,7 +1725,7 @@ {/if} {:else}
    - An error occurred ! + {$t("errors.an_error_occurred")} - {error} + {$t("errors." + error)}
    {/if} diff --git a/ng-app/src/routes/WalletInfo.svelte b/ng-app/src/routes/WalletInfo.svelte index 5f2553a..d4dbd17 100644 --- a/ng-app/src/routes/WalletInfo.svelte +++ b/ng-app/src/routes/WalletInfo.svelte @@ -336,7 +336,9 @@ {:else}

    - {@html $t("errors.error_occurred", { values: { error } })} + {@html $t("errors.error_occurred", { + values: { message: $t("errors." + error) }, + })}