diff --git a/lib/core/validator.dart b/lib/core/validator.dart index fa867c1d6..055439347 100644 --- a/lib/core/validator.dart +++ b/lib/core/validator.dart @@ -40,8 +40,3 @@ class TextValidator extends Validator { bool match(String value) => RegExp(pattern).hasMatch(value); } - -class WalletNameValidator extends TextValidator { - WalletNameValidator() - : super(minLength: 1, maxLength: 15, pattern: '^[a-zA-Z0-9_]\$'); -} \ No newline at end of file diff --git a/lib/core/wallet_name_validator.dart b/lib/core/wallet_name_validator.dart new file mode 100644 index 000000000..32832ef0c --- /dev/null +++ b/lib/core/wallet_name_validator.dart @@ -0,0 +1,11 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/core/validator.dart'; + +class WalletNameValidator extends TextValidator { + WalletNameValidator() + : super( + errorMessage: S.current.error_text_wallet_name, + pattern: '^[a-zA-Z0-9\-_ ]+\$', + minLength: 1, + maxLength: 33); +} diff --git a/lib/entities/generate_name.dart b/lib/entities/generate_name.dart index 4aa570769..9376542d4 100644 --- a/lib/entities/generate_name.dart +++ b/lib/entities/generate_name.dart @@ -1,3 +1,4 @@ +import 'dart:convert'; import 'dart:math'; import 'package:flutter/services.dart'; @@ -14,8 +15,11 @@ Future generateName() async { await rootBundle.loadString('assets/text/Wallet_Adjectives.txt'); final nounStringRaw = await rootBundle.loadString('assets/text/Wallet_Nouns.txt'); - final adjectives = List.from(adjectiveStringRaw.split('\n')); - final nouns = List.from(nounStringRaw.split('\n')); + + final ls = LineSplitter(); + final adjectives = ls.convert(adjectiveStringRaw); + final nouns = ls.convert(nounStringRaw); + final chosenAdjective = adjectives[randomThing.nextInt(adjectives.length)]; final chosenNoun = nouns[randomThing.nextInt(nouns.length)]; final returnString = diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index a709dc4ce..9455a76cd 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -7,7 +7,7 @@ import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/core/wallet_name_validator.dart'; import 'package:cake_wallet/src/widgets/seed_language_selector.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; @@ -218,10 +218,21 @@ class _WalletNameFormState extends State { if (!_formKey.currentState.validate()) { return; } - - _walletNewVM.create( - options: _walletNewVM.hasLanguageSelector - ? _languageSelectorKey.currentState.selected - : null); + if (_walletNewVM.nameExists(_walletNewVM.name)) { + showPopUp( + context: context, + builder: (_) { + return AlertWithOneAction( + alertTitle: '', + alertContent: S.of(context).wallet_name_exists, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + } else { + _walletNewVM.create( + options: _walletNewVM.hasLanguageSelector + ? _languageSelectorKey.currentState.selected + : null); + } } } diff --git a/lib/src/screens/restore/restore_wallet_from_keys_page.dart b/lib/src/screens/restore/restore_wallet_from_keys_page.dart index fa5efdff6..f66c2807b 100644 --- a/lib/src/screens/restore/restore_wallet_from_keys_page.dart +++ b/lib/src/screens/restore/restore_wallet_from_keys_page.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/core/wallet_name_validator.dart'; import 'package:cake_wallet/palette.dart'; import 'package:flutter/services.dart'; import 'package:flutter/cupertino.dart'; diff --git a/lib/src/screens/restore/restore_wallet_from_seed_details.dart b/lib/src/screens/restore/restore_wallet_from_seed_details.dart index 6a245884d..c2bade522 100644 --- a/lib/src/screens/restore/restore_wallet_from_seed_details.dart +++ b/lib/src/screens/restore/restore_wallet_from_seed_details.dart @@ -3,7 +3,7 @@ import 'package:mobx/mobx.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/core/wallet_name_validator.dart'; import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart'; diff --git a/lib/src/screens/restore/wallet_restore_from_keys_form.dart b/lib/src/screens/restore/wallet_restore_from_keys_form.dart index d6f637422..1058380b7 100644 --- a/lib/src/screens/restore/wallet_restore_from_keys_form.dart +++ b/lib/src/screens/restore/wallet_restore_from_keys_form.dart @@ -8,7 +8,7 @@ import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart'; import 'package:cake_wallet/src/widgets/base_text_form_field.dart'; import 'package:cake_wallet/src/widgets/base_text_form_field.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/core/wallet_name_validator.dart'; import 'package:cake_wallet/entities/generate_name.dart'; class WalletRestoreFromKeysFrom extends StatefulWidget { diff --git a/lib/src/screens/restore/wallet_restore_from_seed_form.dart b/lib/src/screens/restore/wallet_restore_from_seed_form.dart index a54d48ee7..07405871c 100644 --- a/lib/src/screens/restore/wallet_restore_from_seed_form.dart +++ b/lib/src/screens/restore/wallet_restore_from_seed_form.dart @@ -10,7 +10,7 @@ import 'package:cake_wallet/src/widgets/base_text_form_field.dart'; import 'package:cake_wallet/src/widgets/blockchain_height_widget.dart'; import 'package:cake_wallet/src/widgets/base_text_form_field.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/core/wallet_name_validator.dart'; class WalletRestoreFromSeedForm extends StatefulWidget { WalletRestoreFromSeedForm( @@ -41,6 +41,7 @@ class WalletRestoreFromSeedFormState extends State { WalletRestoreFromSeedFormState(this.language) : seedWidgetStateKey = GlobalKey(), blockchainHeightKey = GlobalKey(), + formKey = GlobalKey(), languageController = TextEditingController(), nameTextEditingController = TextEditingController(); @@ -48,6 +49,7 @@ class WalletRestoreFromSeedFormState extends State { final GlobalKey blockchainHeightKey; final TextEditingController languageController; final TextEditingController nameTextEditingController; + final GlobalKey formKey; String language; @override @@ -61,7 +63,9 @@ class WalletRestoreFromSeedFormState extends State { return Container( padding: EdgeInsets.only(left: 24, right: 24), child: Column(children: [ - Stack( + Form( + key: formKey, + child: Stack( alignment: Alignment.centerRight, children: [ BaseTextFormField( @@ -97,7 +101,7 @@ class WalletRestoreFromSeedFormState extends State { ), ), ], - ), + )), Container(height: 20), SeedWidget( key: seedWidgetStateKey, diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index 708d3cc81..1f8e9a584 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -193,8 +193,7 @@ class WalletRestorePage extends BasePage { child: Observer( builder: (context) { return LoadingPrimaryButton( - onPressed: () => - walletRestoreViewModel.create(options: _credentials()), + onPressed: _confirmForm, text: S.of(context).restore_recover, color: Theme.of(context).accentTextTheme.subtitle.decorationColor, @@ -268,4 +267,45 @@ class WalletRestorePage extends BasePage { return credentials; } + + void _confirmForm() { + final formContext = walletRestoreViewModel.mode == WalletRestoreMode.seed + ? walletRestoreFromSeedFormKey.currentContext + : walletRestoreFromKeysFormKey.currentContext; + + final formKey = walletRestoreViewModel.mode == WalletRestoreMode.seed + ? walletRestoreFromSeedFormKey.currentState.formKey + : walletRestoreFromKeysFormKey.currentState.formKey; + + final name = walletRestoreViewModel.mode == WalletRestoreMode.seed + ? walletRestoreFromSeedFormKey + .currentState.nameTextEditingController.value.text + : walletRestoreFromKeysFormKey + .currentState.nameTextEditingController.value.text; + + if (!formKey.currentState.validate()) { + return; + } + + if (walletRestoreViewModel.nameExists(name)) { + showNameExistsAlert(formContext); + return; + } + + walletRestoreViewModel.create(options: _credentials()); + } + + Future showNameExistsAlert(BuildContext context) { + return showPopUp( + context: context, + builder: (_) { + return AlertWithOneAction( + alertTitle: '', + alertContent: S.of(context).wallet_name_exists, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + } } + + diff --git a/lib/view_model/wallet_creation_vm.dart b/lib/view_model/wallet_creation_vm.dart index a3de16c1b..8a4c76eb5 100644 --- a/lib/view_model/wallet_creation_vm.dart +++ b/lib/view_model/wallet_creation_vm.dart @@ -32,6 +32,12 @@ abstract class WalletCreationVMBase with Store { final Box _walletInfoSource; final AppStore _appStore; + bool nameExists(String name) { + final walletNameList = _walletInfoSource.values.map((e) => e.name.toLowerCase()).toList(); + + return walletNameList.contains(name.toLowerCase()); + } + Future create({dynamic options}) async { try { state = IsExecutingState(); diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 304e91a1b..6d88ae671 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein", "error_text_subaddress_name" : "Der Name der Unteradresse darf nicht die Zeichen ` , ' \" enthalten\nund muss zwischen 1 und 20 Zeichen lang sein", "error_text_amount" : "Betrag darf nur Zahlen enthalten", - "error_text_wallet_name" : "Der Walletname darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein", + "error_text_wallet_name" : "Der Wallet-Name darf nur Buchstaben, Zahlen und _- Symbole enthalten\nund muss zwischen 1 und 33 Zeichen lang sein", "error_text_keys" : "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten", "error_text_crypto_currency" : "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein.", "error_text_minimal_limit" : "Handel für ${provider} wird nicht erstellt. Menge ist unter dem Minimum: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Sprache suchen", "search_currency": "Währung suchen", "new_template" : "neue Vorlage", - "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin" + "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin", + "wallet_name_exists": "Wallet mit diesem Namen existiert bereits" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 2f9b0cf78..639c97c97 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2", "error_text_subaddress_name" : "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long", "error_text_amount" : "Amount can only contain numbers", - "error_text_wallet_name" : "Wallet name can only contain letters, numbers\nand must be between 1 and 15 characters long", + "error_text_wallet_name" : "Wallet name can only contain letters, numbers, _ - symbols \nand must be between 1 and 33 characters long", "error_text_keys" : "Wallet keys can only contain 64 chars in hex", "error_text_crypto_currency" : "The number of fraction digits\nmust be less or equal to 12", "error_text_minimal_limit" : "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Search language", "search_currency": "Search currency", "new_template" : "New Template", - "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work" + "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work", + "wallet_name_exists": "Wallet with that name has already existed" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 76284f46d..efe78c145 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2", "error_text_subaddress_name" : "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud", "error_text_amount" : "La cantidad solo puede contener números", - "error_text_wallet_name" : "El nombre de la billetera solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud", + "error_text_wallet_name" : "El nombre de la billetera solo puede contener letras, números , _ - símbolos\ny debe tener entre 1 y 33 caracteres de longitud", "error_text_keys" : "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal", "error_text_crypto_currency" : "El número de dígitos fraccionarios \ndebe ser menor o igual a 12", "error_text_minimal_limit" : "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Idioma de búsqueda", "search_currency": "Moneda de búsqueda", "new_template" : "Nueva plantilla", - "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando" + "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando", + "wallet_name_exists": "Wallet con ese nombre ya ha existido" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 32abb9ac7..01b12f791 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -325,7 +325,7 @@ "error_text_fiat" : "La valeur du montant ne peut dépasser le solde disponible.\nLa partie décimale doit comporter au plus 2 chiffres", "error_text_subaddress_name" : "Le nom de sous-adresse ne peut contenir les symboles ` , ' \"\net sa longueur doit être comprise entre 1 et 20 caractères", "error_text_amount" : "Le montant ne peut comporter que des nombres", - "error_text_wallet_name" : "Le nom du portefeuille ne peut contenir que des lettres et des chiffres\net sa longueur doit être comprise entre 1 et 15 caractères", + "error_text_wallet_name" : "Le nom du portefeuille ne peut contenir que des lettres, des chiffres, des symboles _ -\net doit comporter entre 1 et 33 caractères", "error_text_keys" : "Les clefs du portefeuille ne peuvent être constituées que de 64 caractères hexadécimaux", "error_text_crypto_currency" : "La partie décimale\ndoit comporter au plus 12 chiffres", "error_text_minimal_limit" : "Échange pour ${provider} non créé. Le montant est inférieur au minimum : ${min} ${currency}", @@ -531,5 +531,6 @@ "search_language": "Langue de recherche", "search_currency": "Devise de recherche", "new_template" : "Nouveau Modèle", - "electrum_address_disclaimer": "Nous générons de nouvelles adresses à chaque fois que vous en utilisez une, mais les adresses précédentes continuent à fonctionner" + "electrum_address_disclaimer": "Nous générons de nouvelles adresses à chaque fois que vous en utilisez une, mais les adresses précédentes continuent à fonctionner", + "wallet_name_exists": "Le portefeuille portant ce nom existe déjà" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index c8b738277..711e4d92c 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए", "error_text_subaddress_name" : "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए", "error_text_amount" : "राशि में केवल संख्याएँ हो सकती हैं", - "error_text_wallet_name" : "वॉलेट नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए", + "error_text_wallet_name" : "वॉलेट नाम में केवल अक्षर, संख्याएं, _ - प्रतीक हो सकते हैं\nऔर 1 और 33 वर्णों के बीच लंबा होना चाहिए", "error_text_keys" : "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं", "error_text_crypto_currency" : "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए", "error_text_minimal_limit" : "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "भाषा खोजें", "search_currency": "मुद्रा खोजें", "new_template" : "नया टेम्पलेट", - "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं" + "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं", + "wallet_name_exists": "उस नाम वाला वॉलेट पहले से मौजूद है" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 48a0ef4e2..209fa38b9 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Vrijednost iznosa ne smije biti veća od raspoloživog iznosa.\nBroj decimala smije biti 2 ili manji.", "error_text_subaddress_name" : "Ime podadrese ne smije sadržavati znakove ` , ' \" \ni mora biti dužine između 1 i 20 znakova", "error_text_amount" : "Iznos smije sadržavati samo brojeve", - "error_text_wallet_name" : "Ime novčanika smije sadržavati samo slova i brojeve\nte mora biti dužine između 1 i 15 znakova", + "error_text_wallet_name" : "Naziv novčanika može sadržavati samo slova, brojeve, _ - simbole\ni mora imati između 1 i 33 znaka", "error_text_keys" : "Novčanik smije sadržavati samo 64 znakova hex vrijednosti", "error_text_crypto_currency" : "Broj decimala mora\nbiti 12 ili manji", "error_text_minimal_limit" : "Razmjena za ${provider} nije izrađena. Iznos je manji od minimalnog: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Jezik pretraživanja", "search_currency": "Traži valutu", "new_template" : "novi predložak", - "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek" + "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek", + "wallet_name_exists": "Novčanik s tim nazivom već postoji" } diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index cb21d43dd..4b67fdc80 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "L'ammontare non può eccedere il saldo dispoinibile.\nIl numero di cifre decimali deve essere inferiore o uguale a 2", "error_text_subaddress_name" : "Il nome del sottoindirizzo non può contenere i simboli ` , ' \" \ne deve avere una lunghezza compresa tra 1 e 20 caratteri", "error_text_amount" : "L'ammontare può contenere solo numeri", - "error_text_wallet_name" : "Il nome del portafoglio può contenere solo lettere, numeri\ne deve avere una lunghezza compresa tra 1 e 15 caratteri", + "error_text_wallet_name" : "Il nome del portafoglio può contenere solo lettere, numeri, _ - simboli\ne deve avere una lunghezza compresa tra 1 e 33 caratteri", "error_text_keys" : "Le chiavi del portafoglio possono contenere solo 64 caratteri in hex", "error_text_crypto_currency" : "Il numero delle cifre decimali\ndeve essere inferiore o uguale a 12", "error_text_minimal_limit" : "Lo scambio per ${provider} non è stato creato. L'ammontare è inferiore al minimo: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Cerca lingua", "search_currency": "Cerca valuta", "new_template" : "Nuovo modello", - "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare" + "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare", + "wallet_name_exists": "Il portafoglio con quel nome è già esistito" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 6f162b8dc..9a3f739e5 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "金額は利用可能な残高を超えることはできません.\n小数桁の数は2以下でなければなりません", "error_text_subaddress_name" : "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります", "error_text_amount" : "金額には数字のみを含めることができます", - "error_text_wallet_name" : "ウォレット名には文字のみを含めることができます\n1〜15文字である必要があります", + "error_text_wallet_name" : "ウォレット名には、文字、数字、_-記号のみを含めることができます\n長さは1〜33文字である必要があります", "error_text_keys" : "ウォレットキーには、16進数で64文字しか含めることができません", "error_text_crypto_currency" : "小数桁数\n12以下でなければなりません", "error_text_minimal_limit" : "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "検索言語", "search_currency": "検索通貨", "new_template" : "新しいテンプレート", - "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します" + "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します", + "wallet_name_exists": "その名前のウォレットはすでに存在しています" } diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 124edbd7c..afe78fa3a 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다", "error_text_subaddress_name" : "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다", "error_text_amount" : "금액은 숫자 만 포함 할 수 있습니다", - "error_text_wallet_name" : "지갑 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다", + "error_text_wallet_name" : "지갑 이름은 문자, 숫자, _ - 기호만 포함할 수 있습니다.\n1~33자 사이여야 합니다.", "error_text_keys" : "지갑 키는 16 진수로 64 자만 포함 할 수 있습니다", "error_text_crypto_currency" : "소수 자릿수\n12 이하 여야합니다", "error_text_minimal_limit" : "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "검색 언어", "search_currency": "통화 검색", "new_template" : "새 템플릿", - "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다." + "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다.", + "wallet_name_exists": "해당 이름의 지갑이 이미 존재합니다." } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 9ac238793..5dfd9c3f2 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2", "error_text_subaddress_name" : "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn", "error_text_amount" : "Bedrag kan alleen cijfers bevatten", - "error_text_wallet_name" : "Naam portemonnee kan alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn", + "error_text_wallet_name" : "Naam portemonnee kan alleen letters, cijfers , _ - symbolen bevatten\nen moet tussen de 1 en 33 tekens lang zijn", "error_text_keys" : "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde", "error_text_crypto_currency" : "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12", "error_text_minimal_limit" : "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Zoektaal", "search_currency": "Zoek valuta", "new_template" : "Nieuwe sjabloon", - "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work" + "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work", + "wallet_name_exists": "Portemonnee met die naam bestaat al" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index d6db3d206..0fa9ac3a3 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2", "error_text_subaddress_name" : "Nazwa podadresu nie może zawierać ` , ' \" symbolika\ni musi mieć od 1 do 20 znaków", "error_text_amount" : "Kwota może zawierać tylko liczby", - "error_text_wallet_name" : "Nazwa portfela może zawierać tylko litery i cyfry\ni musi mieć od 1 do 15 znaków", + "error_text_wallet_name" : "Nazwa portfela może zawierać tylko litery, cyfry, _ - symbole\ni musi mieć od 1 do 33 znaków", "error_text_keys" : "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym", "error_text_crypto_currency" : "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12", "error_text_minimal_limit" : "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Wyszukaj język", "search_currency": "Wyszukaj walutę", "new_template" : "Nowy szablon", - "electrum_address_disclaimer": "Za każdym razem, gdy korzystasz z jednego z nich, generujemy nowe adresy, ale poprzednie adresy nadal działają" + "electrum_address_disclaimer": "Za każdym razem, gdy korzystasz z jednego z nich, generujemy nowe adresy, ale poprzednie adresy nadal działają", + "wallet_name_exists": "Portfel o tej nazwie już istnieje" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index f44ffaf6f..558884ca8 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2", "error_text_subaddress_name" : "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres", "error_text_amount" : "A quantia deve conter apenas números", - "error_text_wallet_name" : "O nome da carteira só pode conter letras, números\ne deve ter entre 1 e 15 caracteres", + "error_text_wallet_name" : "O nome da carteira só pode conter letras, números, _ - símbolos\ne deve ter entre 1 e 33 caracteres", "error_text_keys" : "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal", "error_text_crypto_currency" : "O número de dígitos decimais\ndeve ser menor ou igual a 12", "error_text_minimal_limit" : "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Idioma de pesquisa", "search_currency": "Pesquisar moeda", "new_template" : "Novo modelo", - "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando" + "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando", + "wallet_name_exists": "A carteira com esse nome já existe" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index bbb3482b2..1dbc473ab 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2", "error_text_subaddress_name" : "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину", "error_text_amount" : "Баланс может содержать только цифры", - "error_text_wallet_name" : "Имя кошелька может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину", + "error_text_wallet_name" : "Имя кошелька может содержать только буквы, цифры, _ - символы\nи должно быть от 1 до 33 символов в длину", "error_text_keys" : "Ключи кошелька могут содержать только 64 символа в hex", "error_text_crypto_currency" : "Количество цифр после запятой\nдолжно быть меньше или равно 12", "error_text_minimal_limit" : "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}", @@ -533,5 +533,6 @@ "search_language": "Язык поиска", "search_currency": "Валюта поиска", "new_template" : "Новый шаблон", - "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать." + "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать.", + "wallet_name_exists": "Кошелек с таким именем уже существует" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index ec13da291..a152e35a8 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -326,7 +326,7 @@ "error_text_fiat" : "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2", "error_text_subaddress_name" : "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину", "error_text_amount" : "Баланс може містити тільки цифри", - "error_text_wallet_name" : "Ім'я гаманця може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину", + "error_text_wallet_name" : "Ім'я гаманця може містити тільки букви, цифри, символи _ -\nі повинно бути від 1 до 33 символів в довжину", "error_text_keys" : "Ключі гаманця можуть містити тільки 64 символів в hex", "error_text_crypto_currency" : "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12", "error_text_minimal_limit" : "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}", @@ -532,5 +532,6 @@ "search_language": "Мова пошуку", "search_currency": "Шукати валюту", "new_template" : "Новий шаблон", - "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати" + "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати", + "wallet_name_exists": "Гаманець з такою назвою вже існує" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index d1cb625ee..9b9fe7a79 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -327,7 +327,7 @@ "error_text_fiat" : "金额不能超过可用余额.\n小数位数必须小于或等于2", "error_text_subaddress_name" : "子地址名称不能包含`,' \" 符号\n并且必须在1到20个字符之间", "error_text_amount" : "金额只能包含数字", - "error_text_wallet_name" : "钱包名称只能包含字母,数字\n且必须介于1到15个字符之间", + "error_text_wallet_name" : "钱包名称只能包含字母、数字、_ - 符号\n并且长度必须在 1 到 33 个字符之间", "error_text_keys" : "钱包密钥只能包含16个字符的十六进制字符", "error_text_crypto_currency" : "小数位数\n必须小于或等于12", "error_text_minimal_limit" : "未创建 ${provider} 交易。 金额小于最小值:${min} ${currency}", @@ -531,5 +531,6 @@ "search_language": "搜索语言", "search_currency": "搜索货币", "new_template" : "新模板", - "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效" + "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效", + "wallet_name_exists": "同名的钱包已经存在" }