4
1
mirror of https://github.com/Qortal/qortal-ui.git synced 2025-02-11 17:55:51 +00:00

Merge branch 'master' into pirate-chain

This commit is contained in:
CalDescent 2022-08-05 13:22:28 +01:00
commit f00fe1d06c
26 changed files with 337 additions and 47 deletions

View File

@ -1,6 +1,6 @@
{
"name": "qortal-ui",
"version": "1.9.3",
"version": "1.9.4",
"description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet",
"keywords": [
"QORT",
@ -35,7 +35,7 @@
"electron-log": "4.4.8"
},
"devDependencies": {
"electron": "19.0.6",
"electron": "19.0.9",
"electron-builder": "23.1.0",
"electron-notarize": "1.2.1",
"electron-packager": "15.5.1",

View File

@ -109,6 +109,10 @@ const elementComponents = {
file: 'components/settings-view/security-view.js',
className: 'SecurityView'
},
'qr-login-view': {
file: 'components/settings-view/qr-login-view.js',
className: 'QRLoginView'
},
'notifications-view': {
file: 'components/settings-view/notifications-view.js',
className: 'NotificationsView'

View File

@ -66,6 +66,7 @@
"pleaseenter": "Bitte Passwort eingeben!",
"notmatch": "Passwörter stimmen nicht überein!",
"lessthen8": "Ihr Passwort hat weniger als 8 Zeichen! Dies wird nicht empfohlen. Sie können diese Warnung weiterhin ignorieren.",
"lessthen8-2": "Ihr Passwort hat weniger als 8 Zeichen!",
"entername": "Bitte geben Sie einen Namen ein!",
"downloaded": "Ihre Wallet BackUp-Datei wird heruntergeladen!",
"loading": "Wird geladen, bitte warten...",
@ -76,7 +77,8 @@
"savewallet": "Speichern Sie die Wallet-Sicherungsdatei",
"created1": "Ihr Konto ist jetzt erstellt",
"created2": " und wird in diesem Browser gespeichert.",
"downloadbackup": "Laden Sie die Wallet-Sicherungsdatei herunter"
"downloadbackup": "Laden Sie die Wallet-Sicherungsdatei herunter",
"passwordhint": "Ein Passwort muss mindestens 8 Zeichen lang sein."
},
"logout": {
"logout": "AUSLOGGEN",
@ -93,6 +95,11 @@
"settings": "Einstellungen",
"account": "Konto",
"security": "Sicherheit",
"qr_login_menu_item": "QR-Anmeldung",
"qr_login_description_1": "Scannen Sie diesen Code, um Ihre Brieftasche auf einem anderen Gerät mit demselben Passwort zu entsperren, mit dem Sie sich angemeldet haben.",
"qr_login_description_2": "Wählen Sie ein Passwort, mit dem Sie Ihre Brieftasche auf einem anderen Gerät entsperren, nachdem Sie den QR-Code gescannt haben.",
"qr_login_button_1": "Login-QR-Code anzeigen",
"qr_login_button_2": "Login-QR-Code generieren",
"notifications": "Benachrichtigungen",
"accountsecurity": "Konto Sicherheit",
"password": "Passwort",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Por favor, introduzca una Contraseña!",
"notmatch": "Las contraseñas no coinciden!",
"lessthen8": "Su contraseña tiene menos de 8 caracteres! Esto no es recomendable. Puede continuar para ignorar esta advertencia.",
"lessthen8-2": "Su contraseña tiene menos de 8 caracteres!",
"entername": "Por favor, introduzca un Nombre!",
"downloaded": "La copia de seguridad de su monedero ha sido descargada!",
"loading": "Cargando, Por favor espere...",
@ -76,7 +77,8 @@
"savewallet": "Guardar archivo de copia de seguridad del monedero",
"created1": "Su cuenta ha sido creada",
"created2": " y será guardada en el navegador.",
"downloadbackup": "Descargar archivo de copia de seguridad del monedero"
"downloadbackup": "Descargar archivo de copia de seguridad del monedero",
"passwordhint": "Una contraseña debe tener al menos 8 caracteres."
},
"logout": {
"logout": "CERRAR SESIÓN",
@ -93,6 +95,11 @@
"settings": "Ajustes",
"account": "Cuenta",
"security": "Seguridad",
"qr_login_menu_item": "Inicio de sesión QR",
"qr_login_description_1": "Escanee este código para desbloquear su billetera en otro dispositivo usando la misma contraseña con la que inició sesión.",
"qr_login_description_2": "Elija una contraseña que usará para desbloquear su billetera en otro dispositivo después de escanear el código QR.",
"qr_login_button_1": "Mostrar código QR de inicio de sesión",
"qr_login_button_2": "Generar código QR de inicio de sesión",
"notifications": "Notificaciones",
"accountsecurity": "Seguridad de la Cuenta",
"password": "Contraseña",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Veuillez entrer un mot de passe!",
"notmatch": "Les mots de passe ne correspondent pas!",
"lessthen8": "Votre mot de passe est inférieur à 8 caractères! Ceci nest pas recommandé. Vous pouvez continuer en ignorant cet avertissement.",
"lessthen8-2": "Votre mot de passe est inférieur à 8 caractères!",
"entername": "Veuillez saisir un nom!",
"downloaded": "Le fichier de sauvegarde de votre portefeuille va être téléchargé!",
"loading": "Chargement en cours, veuillez patienter...",
@ -76,7 +77,8 @@
"savewallet": "Sauvegarder le fichier de sauvegarde du portefeuille",
"created1": "Votre compte est maintenant créé",
"created2": " et sera enregistré dans ce navigateur.",
"downloadbackup": "Télécharger le fichier de sauvegarde du portefeuille"
"downloadbackup": "Télécharger le fichier de sauvegarde du portefeuille",
"passwordhint": "Un mot de passe doit comporter au moins 8 caractères."
},
"logout": {
"logout": "DECONNEXION",
@ -93,6 +95,11 @@
"settings": "Paramètres",
"account": "Compte",
"security": "Sécurité",
"qr_login_menu_item": "QR Connexion",
"qr_login_description_1": "Scannez ce code pour déverrouiller votre portefeuille sur un autre appareil en utilisant le même mot de passe avec lequel vous vous êtes connecté.",
"qr_login_description_2": "Choisissez un mot de passe que vous utiliserez pour déverrouiller votre portefeuille sur un autre appareil après avoir scanné le code QR.",
"qr_login_button_1": "Afficher le code QR de connexion",
"qr_login_button_2": "Générer le code QR de connexion",
"notifications": "Notifications",
"accountsecurity": "Sécurité du compte",
"password": "Mot de passe",

View File

@ -67,6 +67,7 @@
"pleaseenter": "कृपया पासवर्ड दर्ज करें!",
"notmatch": "पासवर्ड मेल नहीं खाता!",
"lessthen8": "आपका पासवर्ड 8 वर्णों से कम का है! यह अनुशंसित नहीं है। आप इस चेतावनी को नज़रअंदाज़ करना जारी रख सकते हैं।",
"lessthen8-2": "आपका पासवर्ड 8 वर्णों से कम का है!",
"entername": "कृपया एक नाम दर्ज करें!",
"downloaded": "आपकी वॉलेट बैकअप फ़ाइल डाउनलोड हो जाती है!",
"loading": "लोड हो रहा है कृपया प्रतीक्षा करें...",
@ -77,7 +78,8 @@
"savewallet": "वॉलेट बैकअप फ़ाइल सहेजें",
"created1": "आपका खाता अब निर्मित हो गया है",
"created2": " और इस ब्राउज़र में सहेजा जाएगा।",
"downloadbackup": "वॉलेट बैकअप फ़ाइल डाउनलोड करें"
"downloadbackup": "वॉलेट बैकअप फ़ाइल डाउनलोड करें",
"passwordhint": "पासवर्ड कम से कम 8 अक्षर का होना चाहिए।"
},
"logout": {
"logout": "लॉग आउट",
@ -95,6 +97,11 @@
"account": "खाता",
"security": "सुरक्षा",
"notifications": "सूचनाएं",
"qr_login_menu_item": "क्यूआर लॉगिन",
"qr_login_description_1": "जिस पासवर्ड से आपने लॉग इन किया था उसी पासवर्ड का उपयोग करके अन्य डिवाइस पर अपने वॉलेट को अनलॉक करने के लिए इस कोड को स्कैन करें।",
"qr_login_description_2": "एक पासवर्ड चुनें जिसका उपयोग आप क्यूआर कोड को स्कैन करने के बाद अपने वॉलेट को अन्य डिवाइस पर अनलॉक करने के लिए करेंगे।",
"qr_login_button_1": "लॉगिन क्यूआर कोड दिखाएं",
"qr_login_button_2": "लॉगिन क्यूआर कोड जनरेट करें",
"accountsecurity": "खाते की सुरक्षा",
"password": "पासवर्ड",
"download": "बैकअप फ़ाइल डाउनलोड करें",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Unesite lozinku!",
"notmatch": "Lozinke se ne podudaraju!",
"lessthen8": "Vaša lozinka je manja od 8 znakova! Ovo se ne preporučuje. Možete nastaviti ignorirati ovo upozorenje..",
"lessthen8-2": "Vaša lozinka je manja od 8 znakova!",
"entername": "Unesite ime!",
"downloaded": "Vaša datoteka sigurnosne kopije novčanika - preuzmite!",
"loading": "Učitava se, molimo pričekajte...",
@ -76,7 +77,8 @@
"savewallet": "Spremi datoteku sigurnosne kopije novčanika",
"created1": "Vaš je račun sada stvoren",
"created2": "i bit će spremljen u ovom pregledniku.",
"downloadbackup": "Preuzmite datoteku sigurnosne kopije novčanika"
"downloadbackup": "Preuzmite datoteku sigurnosne kopije novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova."
},
"logout": {
"logout": "ODJAVITE SE",
@ -93,6 +95,11 @@
"settings": "Postavke",
"account": "Račun",
"security": "Sigurnost",
"qr_login_menu_item": "QR Prijava",
"qr_login_description_1": "Skenirajte ovaj kod kako biste otključali svoj novčanik na drugom uređaju koristeći istu lozinku s kojom ste se prijavili.",
"qr_login_description_2": "Odaberite lozinku kojom ćete otključati novčanik na drugom uređaju nakon skeniranja QR koda.",
"qr_login_button_1": "Prikaži QR kod za prijavu",
"qr_login_button_2": "Generirajte QR kod za prijavu",
"notifications": "Obavijesti",
"accountsecurity": "Sigurnost računa",
"password": "Lozinka",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Kérjük, adjon meg egy jelszót!",
"notmatch": "A jelszavak nem egyeznek!",
"lessthen8": "A jelszó kevesebb, mint 8 karakter! Ez nem ajánlott. Továbbra is figyelmen kívül hagyhatja ezt a figyelmeztetést.",
"lessthen8-2": "A jelszó kevesebb, mint 8 karakter!",
"entername": "Adjon meg egy nevet!",
"downloaded": "Letöltődött a Wallet BackUp fájl!",
"loading": "Betöltés, kérjük, várjon...",
@ -76,7 +77,8 @@
"savewallet": "Pénztárca biztonsági mentési fájl mentése",
"created1": "A fiók most jön létre",
"created2": " és mentésre kerül ebben a böngészőben.",
"downloadbackup": "Pénztárca biztonsági mentési fájl letöltése"
"downloadbackup": "Pénztárca biztonsági mentési fájl letöltése",
"passwordhint": "A jelszónak legalább 8 karakterből kell állnia."
},
"logout": {
"logout": "KIJELENTKEZIK",
@ -93,6 +95,11 @@
"settings": "Beállítások",
"account": "Fiók",
"security": "Biztonság",
"qr_login_menu_item": "QR bejelentkezés",
"qr_login_description_1": "Olvassa be ezt a kódot, hogy feloldja pénztárcáját egy másik eszközön ugyanazzal a jelszóval, amellyel bejelentkezett.",
"qr_login_description_2": "Válasszon egy jelszót, amellyel feloldhatja pénztárcáját egy másik eszközön a QR-kód beolvasása után.",
"qr_login_button_1": "Bejelentkezési QR kód megjelenítése",
"qr_login_button_2": "Bejelentkezési QR kód generálása",
"notifications": "Értesítések",
"accountsecurity": "Fiók biztonsága",
"password": "Jelszó",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Inserisci una password!",
"notmatch": "La password non corrisponde!",
"lessthen8": "La tua password contiene meno di 8 caratteri! Questo non è raccomandato. Puoi continuare e ignorare questo avviso.",
"lessthen8-2": "La tua password contiene meno di 8 caratteri!",
"entername": "Inserisci un nome!",
"downloaded": "Il file di BackUp del Tuo Wallet file sta per essere scaricato!",
"loading": "Caricamento in corso, attendere...",
@ -76,7 +77,8 @@
"savewallet": "Salva il file di backup del portafoglio",
"created1": "Il tuo account è ora creato",
"created2": " e verrà salvato in questo browser.",
"downloadbackup": "Scarica il file di backup del portafoglio"
"downloadbackup": "Scarica il file di backup del portafoglio",
"passwordhint": "Una password deve contenere almeno 8 caratteri."
},
"logout": {
"logout": "LOGOUT",
@ -93,6 +95,11 @@
"settings": "Impostazioni",
"account": "Account",
"security": "Sicurezza",
"qr_login_menu_item": "Accesso QR",
"qr_login_description_1": "Scansiona questo codice per sbloccare il tuo portafoglio su un altro dispositivo utilizzando la stessa password con cui hai effettuato l'accesso.",
"qr_login_description_2": "Scegli una password che utilizzerai per sbloccare il tuo portafoglio su un altro dispositivo dopo aver scansionato il codice QR.",
"qr_login_button_1": "Mostra il codice QR di accesso",
"qr_login_button_2": "Genera codice QR di accesso",
"notifications": "Notifiche",
"accountsecurity": "Sicurezza dell'account",
"password": "Password",

View File

@ -66,6 +66,7 @@
"pleaseenter": "암호를 입력하십시오!",
"notmatch": "암호가 일치하지 않습니다!",
"lessthen8": "암호가 8자 미만입니다! 이것은 권장되지 않습니다. 이 경고는 계속 무시할 수 있습니다.",
"lessthen8-2": "암호가 8자 미만입니다!",
"entername": "이름을 입력하십시오!",
"downloaded": "지갑 백업 파일이 다운로드됩니다!",
"loading": "로드 중입니다. 잠시 기다려 주십시오...",
@ -76,7 +77,8 @@
"savewallet": "지갑 백업 파일 저장",
"created1": "이제 계정이 생성되었습니다.",
"created2": " 이 브라우저에 저장됩니다.",
"downloadbackup": "지갑 백업 파일 다운로드"
"downloadbackup": "지갑 백업 파일 다운로드",
"passwordhint": "비밀번호는 8자 이상이어야 합니다."
},
"logout": {
"logout": "로그아웃",
@ -93,6 +95,11 @@
"settings": "설정",
"account": "계정",
"security": "보안",
"qr_login_menu_item": "QR 로그인",
"qr_login_description_1": "이 코드를 스캔하면 로그인한 것과 동일한 비밀번호를 사용하여 다른 기기에서 지갑을 잠금 해제할 수 있습니다.",
"qr_login_description_2": "QR 코드를 스캔한 후 다른 기기에서 지갑을 잠금 해제할 때 사용할 비밀번호를 선택하세요.",
"qr_login_button_1": "로그인 QR 코드 표시",
"qr_login_button_2": "로그인 QR 코드 생성",
"notifications": "알림",
"accountsecurity": "계정 보안",
"password": "비밀번호",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Skriv inn et passord!",
"notmatch": "Passord matcher ikke!",
"lessthen8": "Passordet ditt er mindre enn 8 tegn! Dette anbefales ikke. Du kan velge å fortsette, og ignorere denne advarselen.",
"lessthen8-2": "Passordet ditt er mindre enn 8 tegn!",
"entername": "Skriv inn et navn!",
"downloaded": "Backup-filen for lommeboken din vil bli lastet ned!",
"loading": "Laster, vennligst vent...",
@ -76,7 +77,8 @@
"savewallet": "Lagre backup-fil for lommebok",
"created1": "Kontoen din er nå opprettet",
"created2": " og vil bli lagret i denne nettleseren.",
"downloadbackup": "Last ned backup-fil for lommebok"
"downloadbackup": "Last ned backup-fil for lommebok",
"passwordhint": "Et passord må være på minst 8 tegn."
},
"logout": {
"logout": "LOGG AV",
@ -93,6 +95,11 @@
"settings": "Innstillinger",
"account": "Konto",
"security": "Sikkerhet",
"qr_login_menu_item": "QR-pålogging",
"qr_login_description_1": "Skann denne koden for å låse opp lommeboken din på en annen enhet med samme passord som du logget på med.",
"qr_login_description_2": "Velg et passord som du vil bruke til å låse opp lommeboken din på en annen enhet etter å ha skannet QR-koden.",
"qr_login_button_1": "Vis QR-kode for pålogging",
"qr_login_button_2": "Generer QR-kode for pålogging",
"notifications": "Varsler",
"accountsecurity": "Kontosikkerhet",
"password": "Passord",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Proszę wprowadzić Hasło!",
"notmatch": "Hasła nie pasują!",
"lessthen8": "Twoje hasło ma mniej niż 8 znaków! Nie jest to zalecane. Możesz zignorować to ostrzeżenie.",
"lessthen8-2": "Twoje hasło ma mniej niż 8 znaków!",
"entername": "Proszę podać Nazwę!",
"downloaded": "Twój plik kopii zapasowej Portfela zostanie pobrany!",
"loading": "Ładowanie, proszę czekać...",
@ -76,7 +77,8 @@
"savewallet": "Zapisz plik kopii zapasowej portfela",
"created1": "Twoje konto zostało utworzone",
"created2": " i zostanie zapisane w tej przeglądarce.",
"downloadbackup": "Pobierz plik kopii zapasowej portfela"
"downloadbackup": "Pobierz plik kopii zapasowej portfela",
"passwordhint": "Hasło musi mieć co najmniej 8 znaków."
},
"logout": {
"logout": "WYLOGUJ",
@ -93,6 +95,11 @@
"settings": "Ustawienia",
"account": "Konto",
"security": "Bezpieczeństwo",
"qr_login_menu_item": "Logowanie QR",
"qr_login_description_1": "Zeskanuj ten kod, aby odblokować portfel na innym urządzeniu, używając tego samego hasła, którym się zalogowałeś.",
"qr_login_description_2": "Wybierz hasło, którego użyjesz do odblokowania portfela na innym urządzeniu po zeskanowaniu kodu QR.",
"qr_login_button_1": "Pokaż kod QR logowania",
"qr_login_button_2": "Wygeneruj kod QR logowania",
"notifications": "Powiadomienia",
"accountsecurity": "Bezpieczeństwo konta",
"password": "Hasło",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Por favor coloque sua senha!",
"notmatch": "Senhas não correspondem!",
"lessthen8": "Sua senha é menor que 8 caracteres! Isso não é recomendado. Você pode continuar e ignorar este aviso.",
"lessthen8-2": "Sua senha é menor que 8 caracteres!",
"entername": "Por favor, digite um nome!",
"downloaded": "Seu arquivo Wallet BackUp é baixado!",
"loading": "Carregando, por favor espere...",
@ -76,7 +77,8 @@
"savewallet": "Salvar Arquivo de BackUp da Carteira",
"created1": "Sua conta foi Criada",
"created2": "e será salva neste navegador.",
"downloadbackup": "Baixe o Arquivo BackUp da Carteira"
"downloadbackup": "Baixe o Arquivo BackUp da Carteira",
"passwordhint": "Uma senha deve ter pelo menos 8 caracteres."
},
"logout": {
"logout": "SAIR",
@ -93,6 +95,11 @@
"settings": "Configurações",
"account": "Conta",
"security": "Segurança",
"qr_login_menu_item": "Login QR",
"qr_login_description_1": "Digitalize este código para desbloquear sua carteira em outro dispositivo usando a mesma senha com a qual você fez login.",
"qr_login_description_2": "Escolha uma senha que você usará para desbloquear sua carteira em outro dispositivo após digitalizar o código QR.",
"qr_login_button_1": "Mostrar código QR de login",
"qr_login_button_2": "Gerar código QR de login",
"notifications": "Notificações",
"accountsecurity": "Segurança da Conta",
"password": "Senha",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Te rog introdu o parola!",
"notmatch": "Parola nu corespunde!",
"lessthen8": "Parola ta are mai putin de 8 caractere! Acest lucru nu este recomandat. Poti continua sa ignori acest avertisment.",
"lessthen8-2": "Parola ta are mai putin de 8 caractere!",
"entername": "Te rog introdu un Nume!",
"downloaded": "Copia de siguranta a portofelului este descarcata!",
"loading": "Se incarca. Va rugam asteptati...",
@ -76,7 +77,8 @@
"savewallet": "Salveaza copia de siguranta a Portofelului",
"created1": "Contul tau este acum creat",
"created2": "si va fi salvat in acest browser.",
"downloadbackup": "Descarca copia de siguranta a Portofelului"
"downloadbackup": "Descarca copia de siguranta a Portofelului",
"passwordhint": "O parola trebuie sa aiba cel putin 8 caractere."
},
"logout": {
"logout": "DECONECTARE",
@ -93,6 +95,11 @@
"settings": "Setari",
"account": "Cont",
"security": "Securitate",
"qr_login_menu_item": "Autentificare QR",
"qr_login_description_1": "Scanati acest cod pentru a va debloca portofelul pe alt dispozitiv folosind aceeasi parola cu care v-ati autentificat.",
"qr_login_description_2": "Alegeti o parola pe care o veti folosi pentru a va debloca portofelul pe alt dispozitiv dupa scanarea codului QR.",
"qr_login_button_1": "Afisati codul QR de conectare",
"qr_login_button_2": "Generati codul QR de conectare",
"notifications": "Notificari",
"accountsecurity": "Securitatea contului",
"password": "Parola",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Molim vas ukucajte lozinku!",
"notmatch": "Lozinke se ne podudaraju!",
"lessthen8": "Vaša lozinka ima manje od 8 karaktera! Ovo nije preporučljivo. Možete nastaviti ignorisanjem ovog upozorenja.",
"lessthen8-2": "Vaša lozinka ima manje od 8 karaktera!",
"entername": "Molim vas unesite ime!",
"downloaded": "datoteka sa Rezervnom kopijom vašeg Novčanika se skida!",
"loading": "Učitavanje, molim sačekajte...",
@ -76,7 +77,8 @@
"savewallet": "Sačuvaj Datoteku Rezervne kopije Novčanika",
"created1": "Vaš nalog je napravljen",
"created2": " i biće sačuvan u ovom pretraživaču.",
"downloadbackup": "Skinite Datoteku Rezervne kopije Novčanika"
"downloadbackup": "Skinite Datoteku Rezervne kopije Novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova."
},
"logout": {
"logout": "ODJAVA",
@ -93,6 +95,11 @@
"settings": "Podešavanja",
"account": "Nalog",
"security": "Bezbednost",
"qr_login_menu_item": "QR Login",
"qr_login_description_1": "Skenirajte ovaj kod da biste otključali novčanik na drugom uređaju koristeći istu lozinku sa kojom ste se prijavili.",
"qr_login_description_2": "Izaberite lozinku koju ćete koristiti za otključavanje novčanika na drugom uređaju nakon skeniranja QR koda.",
"qr_login_button_1": "Prikaži QR kod za prijavu,
"qr_login_button_2": "Generišite QR kod za prijavu",
"notifications": "Notifikacije",
"accountsecurity": "Bezbednost Naloga",
"password": "Lozinka",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Пожалуйста, введите пароль!",
"notmatch": "Пароли не совпадают!",
"lessthen8": "Ваш пароль содержит менее 8 символов! Это не рекомендуется. Вы можете продолжить, игнорировав это предупреждение.",
"lessthen8-2": "Ваш пароль содержит менее 8 символов!",
"entername": "Пожалуйста, введите Имя!",
"downloaded": "Файл резервной копии кошелька будет скачан!",
"loading": "Идет загрузка, пожалуйста, подождите...",
@ -76,7 +77,8 @@
"savewallet": "Сохранить файл резервной копии кошелька",
"created1": "Ваша учетная запись создана",
"created2": "и будет сохранено в этом приложении.",
"downloadbackup": "Скачать файл резервной копии кошелька"
"downloadbackup": "Скачать файл резервной копии кошелька",
"passwordhint": "Пароль должен быть не менее 8 символов."
},
"logout": {
"logout": "ВЫХОД",
@ -93,8 +95,13 @@
"settings": "Настройки",
"account": "Учетная запись",
"security": "Безопасность",
"qr_login_menu_item": "QR-логин",
"qr_login_description_1": "Отсканируйте этот код, чтобы разблокировать свой кошелек на другом устройстве, используя тот же пароль, с которым вы вошли в систему.",
"qr_login_description_2": "Выберите пароль, который вы будете использовать для разблокировки кошелька на другом устройстве после сканирования QR-кода.",
"qr_login_button_1": "Показать QR-код входа",
"qr_login_button_2": "Generate login QR code",
"notifications": "Уведомления",
"accountsecurity": "Безопасность учетной записи",
"accountsecurity": "Сгенерировать QR-код для входа",
"password": "Пароль",
"download": "Загрузить файл резервной копии",
"choose": "Пожалуйста, выберите пароль для шифрования вашей резервной копии. (Это может быть тот же пароль, с которым вы вошли в систему, или другой)",

View File

@ -66,6 +66,7 @@
"pleaseenter": "Please enter a Password!",
"notmatch": "Passwords not match!",
"lessthen8": "Your password is less than 8 characters! This is not recommended. You can continue to ignore this warning.",
"lessthen8-2": "Your password is less than 8 characters!",
"entername": "Please enter a Name!",
"downloaded": "Your Wallet BackUp file get downloaded!",
"loading": "Loading, Please wait...",
@ -76,7 +77,8 @@
"savewallet": "Save Wallet BackUp File",
"created1": "Your account is now created",
"created2": " and will be saved in this browser.",
"downloadbackup": "Download Wallet BackUp File"
"downloadbackup": "Download Wallet BackUp File",
"passwordhint": "A password must be at least 8 characters."
},
"logout": {
"logout": "LOGOUT",

View File

@ -66,6 +66,7 @@
"pleaseenter": "请输入密码!",
"notmatch": "密码不一致!",
"lessthen8": "你的密码长度少于8位! 我们不建议使用,但你仍可继续使用此密码。",
"lessthen8-2": "你的密码长度少于8位!",
"entername": "请输入一个代称",
"downloaded": "你的钱包备份文件已顺利下载!",
"loading": "加载中,请耐心等候...",
@ -76,7 +77,8 @@
"savewallet": "下载并保存钱包备份文件",
"created1": "你的账号已创建成功",
"created2": " 并会保存在UI上.",
"downloadbackup": "下载钱包备份文件"
"downloadbackup": "下载钱包备份文件",
"passwordhint": "密码必须至少为 8 个字符。"
},
"logout": {
"logout": "登出",
@ -93,6 +95,11 @@
"settings": "一般设定",
"account": "钱包",
"security": "安全性",
"qr_login_menu_item": "二维码登录",
"qr_login_description_1": "扫描此代码以使用您登录时使用的相同密码在其他设备上解锁您的钱包。",
"qr_login_description_2": "选择一个密码,您将在扫描二维码后用于在其他设备上解锁您的钱包。",
"qr_login_button_1": "显示登录二维码",
"qr_login_button_2": "生成登录二维码",
"notifications": "通知",
"accountsecurity": "钱包安全性",
"password": "密码",

View File

@ -66,6 +66,7 @@
"pleaseenter": "請輸入密碼!",
"notmatch": "密碼不一致!",
"lessthen8": "你的密碼長度少於8位! 我們不建議使用,但你仍可繼續使用此密碼。",
"lessthen8-2": "你的密碼長度少於8位!",
"entername": "請輸入一個代稱",
"downloaded": "你的錢包備份文件已順利下載!",
"loading": "加載中,請耐心等候...",
@ -76,7 +77,8 @@
"savewallet": "下載並保存錢包備份文件",
"created1": "你的賬號已創建成功",
"created2": " 並會儲存在UI上.",
"downloadbackup": "下載錢包備份文件"
"downloadbackup": "下載錢包備份文件",
"passwordhint": "密碼必須至少為 8 個字符。"
},
"logout": {
"logout": "登出",
@ -93,6 +95,11 @@
"settings": "一般設定",
"account": "錢包",
"security": "安全性",
"qr_login_menu_item": "二維碼登錄",
"qr_login_description_1": "掃描此代碼以使用您登錄時使用的相同密碼在其他設備上解鎖您的錢包。",
"qr_login_description_2": "選擇一個密碼,您將在掃描二維碼後用於在其他設備上解鎖您的錢包。",
"qr_login_button_1": "顯示登錄二維碼",
"qr_login_button_2": "生成登錄二維碼",
"notifications": "通知",
"accountsecurity": "錢包安全性",
"password": "密碼",

View File

@ -18,11 +18,11 @@
"license": "GPL-3.0",
"dependencies": {
"@hapi/hapi": "20.2.2",
"@hapi/inert": "6.0.5",
"@hapi/inert": "7.0.0",
"sass": "1.53.0"
},
"devDependencies": {
"@babel/core": "7.18.5",
"@babel/core": "7.18.9",
"@material/mwc-button": "0.26.1",
"@material/mwc-checkbox": "0.26.1",
"@material/mwc-dialog": "0.26.1",
@ -55,24 +55,24 @@
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "3.1.9",
"@rollup/plugin-babel": "5.3.1",
"@rollup/plugin-commonjs": "22.0.0",
"@rollup/plugin-commonjs": "22.0.1",
"@rollup/plugin-node-resolve": "13.3.0",
"@rollup/plugin-replace": "4.0.0",
"@vaadin/grid": "23.1.1",
"@vaadin/icons": "23.1.1",
"@vaadin/password-field": "23.1.1",
"@vaadin/grid": "23.1.4",
"@vaadin/icons": "23.1.4",
"@vaadin/password-field": "23.1.4",
"asmcrypto.js": "2.3.2",
"bcryptjs": "2.4.3",
"epml": "0.3.3",
"file-saver": "2.0.5",
"lit": "2.2.6",
"lit": "2.2.7",
"lit-translate": "2.0.1",
"postcss": "8.4.14",
"pwa-helpers": "0.9.1",
"random-sentence-generator": "0.0.8",
"redux": "4.2.0",
"redux-thunk": "2.4.1",
"rollup": "2.75.7",
"rollup": "2.77.0",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-postcss": "4.0.2",
"rollup-plugin-progress": "1.1.2",

View File

@ -617,12 +617,12 @@ class LoginSection extends connect(store)(LitElement) {
// First decrypt...
this.loadingRipple.welcomeMessage = this.renderPrepareText()
const x = e.clientX !== undefined ? e.clientX : e.explicitOriginalTarget.getBoundingClientRect().left + window.scrollX
const y = e.clientY !== undefined ? e.clientY : e.explicitOriginalTarget.getBoundingClientRect().top + window.scrollY
// const x = e.clientX !== undefined ? e.clientX : e.explicitOriginalTarget.getBoundingClientRect().left + window.scrollX
// const y = e.clientY !== undefined ? e.clientY : e.explicitOriginalTarget.getBoundingClientRect().top + window.scrollY
this.loadingRipple.open({
x: x,
y: y
x: e.clientX,
y: e.clientY
})
.then(() => {
const source = this.walletSources[type]()

View File

@ -0,0 +1,140 @@
import { css, html, LitElement } from 'lit'
import { connect } from 'pwa-helpers'
import { store } from '../../store.js'
import { translate } from 'lit-translate'
import '@material/mwc-textfield'
import '@material/mwc-icon'
import '@vaadin/password-field/vaadin-password-field.js'
import '../../../../qortal-ui-plugins/plugins/core/components/QortalQrcodeGenerator.js'
class QRLoginView extends connect(store)(LitElement) {
static get properties() {
return {
theme: { type: String, reflect: true },
savedWalletDataJson: { type: String },
translateDescriptionKey: { type: String }, // Description text
translateButtonKey: { type: String }, // Button text
}
}
static get styles() {
return css`
* {
--lumo-primary-text-color: rgb(0, 167, 245);
--lumo-primary-color-50pct: rgba(0, 167, 245, 0.5);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white);
--lumo-body-text-color: var(--black);
--lumo-secondary-text-color: var(--sectxt);
--lumo-contrast-60pct: var(--vdicon);
}
.center-box {
position: relative;
top: 45%;
left: 50%;
transform: translate(-50%, 0%);
text-align: center;
}
.q-button {
display: inline-flex;
flex-direction: column;
justify-content: center;
align-content: center;
border: none;
border-radius: 20px;
padding-left: 25px;
padding-right: 25px;
color: white;
background: #03a9f4;
width: 50%;
font-size: 17px;
cursor: pointer;
height: 50px;
margin-top: 1rem;
text-transform: uppercase;
text-decoration: none;
transition: all .2s;
position: relative;
}
.q-button.outlined {
background: unset;
border: 1px solid #03a9f4;
}
:host([theme="light"]) .q-button.outlined {
color: #03a9f4;
}
#qr-toggle-button {
margin-left: 12px;
}
#login-qr-code {
margin: auto;
}
`
}
constructor() {
super()
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.translateDescriptionKey = 'settings.qr_login_description_' + (this.isWalletStored() ? '1' : '2')
this.translateButtonKey = 'settings.qr_login_button_' + (this.isWalletStored() ? '1' : '2')
}
render() {
return html`
<div style="position: relative;" >
<div class="center-box">
<p>
${translate(this.translateDescriptionKey)}
</p>
<div style="max-width: 500px; justify-content: center; margin: auto; display: ${this.isWalletStored() ? 'none' : 'flex' }">
<mwc-icon style="padding: 10px; padding-left:0; padding-top: 42px;">password</mwc-icon>
<vaadin-password-field id="newWalletPassword" style="width: 100%; color: var(--black);" label="${translate("settings.password")}" autofocus></vaadin-password-field>
</div>
<div style="max-width: 600px; display: flex; justify-content: center; margin: auto;">
<div id="qr-toggle-button" @click=${() => this.showQRCode()} class="q-button outlined"> ${translate(this.translateButtonKey)} </div>
</div>
<div id="login-qr-code" style="display: none;">
<qortal-qrcode-generator id="login-qr-code" data="${this.savedWalletDataJson}" mode="octet" format="html" auto></qortal-qrcode-generator>
</div>
</div>
</div>
`
}
isWalletStored() {
const state = store.getState()
const address0 = state.app.wallet._addresses[0].address
const savedWalletData = state.user.storedWallets && state.user.storedWallets[address0]
return !!savedWalletData
}
async setSavedWalletDataJson() {
const state = store.getState()
let data
if (this.isWalletStored()) { // if the wallet is stored, we use the existing encrypted backup
const address0 = state.app.wallet._addresses[0].address
data = state.user.storedWallets[address0]
} else { // if the wallet is not stored, we generate new `saveWalletData` backup encrypted with the new password
const password = this.shadowRoot.getElementById('newWalletPassword').value
data = await state.app.wallet.generateSaveWalletData(password, state.config.crypto.kdfThreads, () => { })
}
this.savedWalletDataJson = JSON.stringify(data)
}
async showQRCode() {
await this.setSavedWalletDataJson()
let el = this.shadowRoot.getElementById('login-qr-code')
el.style.display = 'flex'
}
}
window.customElements.define('qr-login-view', QRLoginView)

View File

@ -1,7 +1,7 @@
import { LitElement, html, css } from 'lit'
import { connect } from 'pwa-helpers'
import { store } from '../../store.js'
import { translate, translateUnsafeHTML } from 'lit-translate'
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
import '@material/mwc-textfield'
import '@material/mwc-icon'
@ -11,7 +11,8 @@ import FileSaver from 'file-saver'
class SecurityView extends connect(store)(LitElement) {
static get properties() {
return {
theme: { type: String, reflect: true }
theme: { type: String, reflect: true },
backupErrorMessage: { type: String }
}
}
@ -63,6 +64,7 @@ class SecurityView extends connect(store)(LitElement) {
constructor() {
super()
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
this.backupErrorMessage = ''
}
render() {
@ -74,10 +76,20 @@ class SecurityView extends connect(store)(LitElement) {
</p>
<div style="max-width: 500px; display: flex; justify-content: center; margin: auto;">
<mwc-icon style="padding: 10px; padding-left:0; padding-top: 42px;">password</mwc-icon>
<vaadin-password-field style="width: 100%; color: var(--black);" label="${translate("settings.password")}" id="downloadBackupPassword" autofocus></vaadin-password-field>
<vaadin-password-field
style="width: 100%; color: var(--black);"
label="${translate("settings.password")}"
id="downloadBackupPassword"
helper-text="${translate("login.passwordhint")}"
autofocus
>
</vaadin-password-field>
</div>
<div style="text-align: center; color: var(--mdc-theme-error); text-transform: uppercase; font-size: 15px;">
${this.backupErrorMessage}
</div>
<div style="max-width: 500px; display: flex; justify-content: center; margin: auto;">
<div @click=${() => this.downloadBackup()} class="q-button"> ${translate("settings.download")} </div>
<div @click=${() => this.checkForDownload()} class="q-button"> ${translate("settings.download")} </div>
</div>
</div>
</div>
@ -87,7 +99,19 @@ class SecurityView extends connect(store)(LitElement) {
stateChanged(state) {
}
checkForDownload() {
const checkPass = this.shadowRoot.getElementById('downloadBackupPassword').value
if (checkPass === '') {
this.backupErrorMessage = get("login.pleaseenter")
} else if (checkPass.length < 8) {
this.backupErrorMessage = get("login.lessthen8-2")
} else {
this.downloadBackup()
}
}
async downloadBackup() {
this.backupErrorMessage = ''
const state = store.getState()
const password = this.shadowRoot.getElementById('downloadBackupPassword').value
const data = await state.app.wallet.generateSaveWalletData(password, state.config.crypto.kdfThreads, () => { })

View File

@ -9,6 +9,7 @@ import '@material/mwc-button'
import './account-view.js'
import './security-view.js'
import './notifications-view.js'
import './qr-login-view.js'
import { doLogout } from '../../redux/app/app-actions.js'
@ -225,6 +226,7 @@ class UserSettings extends connect(store)(LitElement) {
<ul>
<li @click=${ () => this.setSettingsView('info')} ><a class=${this.selectedView.id === 'info' ? 'active' : ''} href="javascript:void(0)">${translate("settings.account")}</a></li>
<li @click=${ () => this.setSettingsView('security')} ><a class=${this.selectedView.id === 'security' ? 'active' : ''} href="javascript:void(0)">${translate("settings.security")}</a></li>
<li @click=${ () => this.setSettingsView('qr-login')} ><a class=${this.selectedView.id === 'qr-login' ? 'active' : ''} href="javascript:void(0)">${translate("settings.qr_login_menu_item") }</a></li>
<li @click=${ () => this.setSettingsView('notification')} ><a class=${this.selectedView.id === 'notification' ? 'active' : ''} href="javascript:void(0)">${translate("settings.notifications")}</a></li>
</ul>
</div>
@ -250,6 +252,8 @@ class UserSettings extends connect(store)(LitElement) {
return html`<security-view></security-view>`;
} else if (selectedView.id === 'notification') {
return html`<notifications-view></notifications-view>`;
} else if (selectedView.id === 'qr-login') {
return html`<qr-login-view></qr-login-view>`;
}
}
@ -260,6 +264,8 @@ class UserSettings extends connect(store)(LitElement) {
return html`${translate("settings.accountsecurity")}`;
} else if (this.selectedView.id === 'notification') {
return html`UI ${translate("settings.notifications")}`;
} else if (this.selectedView.id === 'qr-login') {
return html`${translate("settings.qr_login_menu_item")}`;
}
}
@ -270,6 +276,8 @@ class UserSettings extends connect(store)(LitElement) {
return this.selectedView = { id: 'security', name: 'Account Security' }
} else if (pageId === 'notification') {
return this.selectedView = { id: 'notification', name: 'UI Notifications' }
} else if (pageId === 'qr-login') {
return this.selectedView = { id: 'qr-login', name: 'QR Login' }
}
}

View File

@ -22,7 +22,7 @@
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js"
},
"devDependencies": {
"@babel/core": "7.18.5",
"@babel/core": "7.18.9",
"@github/time-elements": "3.1.2",
"@material/mwc-button": "0.26.1",
"@material/mwc-checkbox": "0.26.1",
@ -43,17 +43,17 @@
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "3.1.9",
"@rollup/plugin-babel": "5.3.1",
"@rollup/plugin-commonjs": "22.0.0",
"@rollup/plugin-commonjs": "22.0.1",
"@rollup/plugin-node-resolve": "13.3.0",
"@rollup/plugin-replace": "4.0.0",
"@vaadin/button": "23.1.1",
"@vaadin/grid": "23.1.1",
"@vaadin/icons": "23.1.1",
"@vaadin/button": "23.1.4",
"@vaadin/grid": "23.1.4",
"@vaadin/icons": "23.1.4",
"epml": "0.3.3",
"html-escaper": "3.0.3",
"lit": "2.2.6",
"lit": "2.2.7",
"lit-translate": "2.0.1",
"rollup": "2.75.7",
"rollup": "2.77.0",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-terser": "7.0.2"

View File

@ -1934,19 +1934,19 @@ class TradePortal extends LitElement {
}
const restartPresenceWebSocket = () => {
setTimeout(() => initPresenceWebSocket(true), 2000)
setTimeout(() => initPresenceWebSocket(true), 20000)
}
const restartTradePresenceWebSocket = () => {
setTimeout(() => initTradePresenceWebSocket(true), 2000)
setTimeout(() => initTradePresenceWebSocket(true), 20000)
}
const restartTradeOffersWebSocket = () => {
setTimeout(() => initTradeOffersWebSocket(true), 2000)
setTimeout(() => initTradeOffersWebSocket(true), 20000)
}
const restartTradeBotWebSocket = () => {
setTimeout(() => initTradeBotWebSocket(true), 2000)
setTimeout(() => initTradeBotWebSocket(true), 20000)
}
// Start TradeOffersWebSocket