CAKE-40 | added text to restore wallet from keys page, restore wallet from seed details page, wallet seed page; applied wallet seed page call when new wallet was created

Oleksandr Sobol committed Sep 11, 2020 at 18:52 UTC f4b7ccf6193f7797e07e159afeff18c5e1a74b8b
21 files changed +180 -61
lib/di.dart
+3 -3
@@ -283,10 +283,10 @@ Future setup(
283 getIt
284 .registerFactory(() => WalletSeedViewModel(getIt.get<AppStore>().wallet));
285
286 - getIt.registerFactoryParam<WalletSeedPage, VoidCallback, void>(
287 - (VoidCallback callback, _) => WalletSeedPage(
286 + getIt.registerFactoryParam<WalletSeedPage, bool, void>(
287 + (bool isWalletCreated, _) => WalletSeedPage(
288 getIt.get<WalletSeedViewModel>(),
289 - onCloseCallback: callback));
289 + isNewWalletCreated: isWalletCreated));
290
291 getIt
292 .registerFactory(() => WalletKeysViewModel(getIt.get<AppStore>().wallet));
lib/generated/i18n.dart
+46
@@ -151,6 +151,7 @@ class S implements WidgetsLocalizations {
151 String get restore_description_from_keys => "Restore your wallet from generated keystrokes saved from your private keys";
152 String get restore_description_from_seed => "Restore your wallet from either the 25 word or 13 word combination code";
153 String get restore_description_from_seed_keys => "Get back your wallet from seed/keys that you've saved to secure place";
154 + String get restore_from_date_or_blockheight => "Please enter the date you created this wallet. Or if you know the blockheight, please enter it instead";
155 String get restore_from_seed_placeholder => "Please enter or paste your seed here";
156 String get restore_new_seed => "New seed";
157 String get restore_next => "Next";
@@ -180,6 +181,7 @@ class S implements WidgetsLocalizations {
181 String get seed_language_portuguese => "Portuguese";
182 String get seed_language_russian => "Russian";
183 String get seed_language_spanish => "Spanish";
184 + String get seed_reminder => "Please write these down in case you lose or wipe your phone";
185 String get seed_share => "Share seed";
186 String get seed_title => "Seed";
187 String get send => "Send";
@@ -789,6 +791,8 @@ class $de extends S {
791 @override
792 String get choose_account => "Konto auswählen";
793 @override
794 + String get restore_from_date_or_blockheight => "Bitte geben Sie das Datum ein, an dem Sie diese Brieftasche erstellt haben. Oder wenn Sie die Blockhöhe kennen, geben Sie sie stattdessen ein";
795 + @override
796 String get settings_only_trades => "Nur Trades";
797 @override
798 String get trade_state_to_be_created => "Geschaffen werden";
@@ -869,6 +873,8 @@ class $de extends S {
873 @override
874 String get settings_support => "Unterstützung";
875 @override
876 + String get seed_reminder => "Bitte notieren Sie diese, falls Sie Ihr Telefon verlieren oder abwischen";
877 + @override
878 String get restore_wallet => "Wallet wiederherstellen";
879 @override
880 String get ok => "OK";
@@ -1427,6 +1433,8 @@ class $hi extends S {
1433 @override
1434 String get choose_account => "खाता चुनें";
1435 @override
1436 + String get restore_from_date_or_blockheight => "कृपया इस वॉलेट को बनाने की तिथि दर्ज करें। या यदि आप ब्लॉकचाइट जानते हैं, तो कृपया इसके बजाय इसे दर्ज करें";
1437 + @override
1438 String get settings_only_trades => "केवल ट्रेड करता है";
1439 @override
1440 String get trade_state_to_be_created => "बनाए जाने के लिए";
@@ -1507,6 +1515,8 @@ class $hi extends S {
1515 @override
1516 String get settings_support => "समर्थन";
1517 @override
1518 + String get seed_reminder => "यदि आप अपना फोन खो देते हैं या मिटा देते हैं तो कृपया इन्हें लिख लें";
1519 + @override
1520 String get restore_wallet => "वॉलेट को पुनर्स्थापित करें";
1521 @override
1522 String get ok => "ठीक है";
@@ -2065,6 +2075,8 @@ class $ru extends S {
2075 @override
2076 String get choose_account => "Выберите аккаунт";
2077 @override
2078 + String get restore_from_date_or_blockheight => "Пожалуйста, введите дату создания кошелька. Или, если вы знаете высоту блока, введите ее значение";
2079 + @override
2080 String get settings_only_trades => "Сделки";
2081 @override
2082 String get trade_state_to_be_created => "Будет создана";
@@ -2145,6 +2157,8 @@ class $ru extends S {
2157 @override
2158 String get settings_support => "Поддержка";
2159 @override
2160 + String get seed_reminder => "Пожалуйста, запишите мнемоническую фразу на случай потери или очистки телефона";
2161 + @override
2162 String get restore_wallet => "Восстановить кошелёк";
2163 @override
2164 String get ok => "OK";
@@ -2703,6 +2717,8 @@ class $ko extends S {
2717 @override
2718 String get choose_account => "계정을 선택하십시오";
2719 @override
2720 + String get restore_from_date_or_blockheight => "이 지갑을 만든 날짜를 입력하세요. 또는 블록 높이를 알고있는 경우 대신 입력하십시오.";
2721 + @override
2722 String get settings_only_trades => "거래 만";
2723 @override
2724 String get trade_state_to_be_created => "만들려면";
@@ -2783,6 +2799,8 @@ class $ko extends S {
2799 @override
2800 String get settings_support => "지원하다";
2801 @override
2802 + String get seed_reminder => "휴대 전화를 분실하거나 닦을 경우를 대비해 적어 두세요.";
2803 + @override
2804 String get restore_wallet => "월렛 복원";
2805 @override
2806 String get ok => "승인";
@@ -3341,6 +3359,8 @@ class $pt extends S {
3359 @override
3360 String get choose_account => "Escolha uma conta";
3361 @override
3362 + String get restore_from_date_or_blockheight => "Por favor, insira a data em que você criou esta carteira. Ou se você souber a altura do bloco, insira-o";
3363 + @override
3364 String get settings_only_trades => "Somente trocas";
3365 @override
3366 String get trade_state_to_be_created => "A ser criada";
@@ -3421,6 +3441,8 @@ class $pt extends S {
3441 @override
3442 String get settings_support => "Suporte";
3443 @override
3444 + String get seed_reminder => "Anote-os para o caso de perder ou limpar seu telefone";
3445 + @override
3446 String get restore_wallet => "Restaurar carteira";
3447 @override
3448 String get ok => "Ok";
@@ -3979,6 +4001,8 @@ class $uk extends S {
4001 @override
4002 String get choose_account => "Оберіть акаунт";
4003 @override
4004 + String get restore_from_date_or_blockheight => "Будь ласка, введіть дату створення гаманця. Або, якщо ви знаєте висоту блоку, введіть її значення";
4005 + @override
4006 String get settings_only_trades => "Операції";
4007 @override
4008 String get trade_state_to_be_created => "Буде створена";
@@ -4059,6 +4083,8 @@ class $uk extends S {
4083 @override
4084 String get settings_support => "Підтримка";
4085 @override
4086 + String get seed_reminder => "Будь ласка, запишіть мнемонічну фразу на випадок втрати або очищення телефону";
4087 + @override
4088 String get restore_wallet => "Відновити гаманець";
4089 @override
4090 String get ok => "OK";
@@ -4617,6 +4643,8 @@ class $ja extends S {
4643 @override
4644 String get choose_account => "アカウントを選択";
4645 @override
4646 + String get restore_from_date_or_blockheight => "このウォレットを作成した日付を入力してください。 または、ブロックの高さがわかっている場合は、代わりに入力してください";
4647 + @override
4648 String get settings_only_trades => "取引のみ";
4649 @override
4650 String get trade_state_to_be_created => "作成される";
@@ -4697,6 +4725,8 @@ class $ja extends S {
4725 @override
4726 String get settings_support => "サポート";
4727 @override
4728 + String get seed_reminder => "スマートフォンを紛失したりワイプした場合に備えて、これらを書き留めてください";
4729 + @override
4730 String get restore_wallet => "ウォレットを復元";
4731 @override
4732 String get ok => "OK";
@@ -5259,6 +5289,8 @@ class $pl extends S {
5289 @override
5290 String get choose_account => "Wybierz konto";
5291 @override
5292 + String get restore_from_date_or_blockheight => "Wprowadź datę utworzenia tego portfela. Lub jeśli znasz wysokość bloku, wprowadź go zamiast tego";
5293 + @override
5294 String get settings_only_trades => "Tylko transakcje";
5295 @override
5296 String get trade_state_to_be_created => "Zostać stworzonym";
@@ -5339,6 +5371,8 @@ class $pl extends S {
5371 @override
5372 String get settings_support => "Wsparcie";
5373 @override
5374 + String get seed_reminder => "Zapisz je na wypadek zgubienia lub wyczyszczenia telefonu";
5375 + @override
5376 String get restore_wallet => "Przywróć portfel";
5377 @override
5378 String get ok => "Dobrze";
@@ -5897,6 +5931,8 @@ class $es extends S {
5931 @override
5932 String get choose_account => "Elegir cuenta";
5933 @override
5934 + String get restore_from_date_or_blockheight => "Ingrese la fecha en que creó esta billetera. O si conoce la altura del bloque, ingréselo en su lugar";
5935 + @override
5936 String get settings_only_trades => "Solo comercia";
5937 @override
5938 String get trade_state_to_be_created => "Ser creado";
@@ -5977,6 +6013,8 @@ class $es extends S {
6013 @override
6014 String get settings_support => "Apoyo";
6015 @override
6016 + String get seed_reminder => "Anótelos en caso de que pierda o borre su teléfono";
6017 + @override
6018 String get restore_wallet => "Restaurar billetera";
6019 @override
6020 String get ok => "OK";
@@ -6535,6 +6573,8 @@ class $nl extends S {
6573 @override
6574 String get choose_account => "Kies account";
6575 @override
6576 + String get restore_from_date_or_blockheight => "Voer de datum in waarop u deze portemonnee heeft gemaakt. Of als u de blokhoogte kent, voer deze dan in";
6577 + @override
6578 String get settings_only_trades => "Alleen handel";
6579 @override
6580 String get trade_state_to_be_created => "Om gecreëerd te worden";
@@ -6615,6 +6655,8 @@ class $nl extends S {
6655 @override
6656 String get settings_support => "Ondersteuning";
6657 @override
6658 + String get seed_reminder => "Schrijf deze op voor het geval u uw telefoon kwijtraakt of veegt";
6659 + @override
6660 String get restore_wallet => "Portemonnee herstellen";
6661 @override
6662 String get ok => "OK";
@@ -7173,6 +7215,8 @@ class $zh extends S {
7215 @override
7216 String get choose_account => "選擇帳號";
7217 @override
7218 + String get restore_from_date_or_blockheight => "請輸入創建此錢包的日期。 或者,如果您知道塊高,請改為輸入";
7219 + @override
7220 String get settings_only_trades => "只交易";
7221 @override
7222 String get trade_state_to_be_created => "待创建";
@@ -7253,6 +7297,8 @@ class $zh extends S {
7297 @override
7298 String get settings_support => "支持";
7299 @override
7300 + String get seed_reminder => "請寫下這些,以防丟失或擦拭手機";
7301 + @override
7302 String get restore_wallet => "恢复钱包";
7303 @override
7304 String get ok => "好";
lib/router.dart
+1 -1
@@ -218,7 +218,7 @@ class Router {
218 case Routes.seed:
219 return MaterialPageRoute<void>(
220 builder: (_) => getIt.get<WalletSeedPage>(
221 - param1: settings.arguments as VoidCallback));
221 + param1: settings.arguments as bool));
222
223 case Routes.restoreWalletFromSeed:
224 final args = settings.arguments as List<dynamic>;
lib/src/screens/dashboard/wallet_menu.dart
+1 -1
@@ -46,7 +46,7 @@ class WalletMenu {
46 Navigator.of(context).pushNamed(Routes.auth,
47 arguments: (bool isAuthenticatedSuccessfully, AuthPageState auth) =>
48 isAuthenticatedSuccessfully
49 - ? Navigator.of(auth.context).popAndPushNamed(Routes.seed)
49 + ? Navigator.of(auth.context).popAndPushNamed(Routes.seed, arguments: false)
50 : null);
51
52 break;
lib/src/screens/new_wallet/new_wallet_page.dart
+2 -1
@@ -1,4 +1,5 @@
1 import 'package:cake_wallet/di.dart';
2 +import 'package:cake_wallet/routes.dart';
3 import 'package:cake_wallet/store/settings_store.dart';
4 import 'package:mobx/mobx.dart';
5 import 'package:flutter_mobx/flutter_mobx.dart';
@@ -53,7 +54,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
54 _stateReaction ??=
55 reaction((_) => _walletNewVM.state, (WalletCreationState state) {
56 if (state is WalletCreatedSuccessfully) {
56 - Navigator.of(context).popUntil((route) => route.isFirst);
57 + Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true);
58 }
59
60 if (state is WalletCreationFailure) {
lib/src/screens/restore/restore_wallet_from_keys_page.dart
+13 -1
@@ -171,7 +171,19 @@ class _RestoreFromKeysFromState extends State<RestoreFromKeysFrom> {
171 onHeightChange: (height) {
172 widget.walletRestorationFromKeysVM.height = height;
173 print(height);
174 - })],
174 + }),
175 + Padding(
176 + padding: EdgeInsets.only(left: 40, right: 40, top: 24),
177 + child: Text(
178 + S.of(context).restore_from_date_or_blockheight,
179 + textAlign: TextAlign.center,
180 + style: TextStyle(
181 + fontSize: 12,
182 + fontWeight: FontWeight.normal,
183 + color: Theme.of(context).hintColor
184 + ),
185 + ),
186 + )],
187 ]),
188 ),
189 bottomSectionPadding: EdgeInsets.only(bottom: 24),
lib/src/screens/restore/restore_wallet_from_seed_details.dart
+14 -1
@@ -101,13 +101,26 @@ class _RestoreFromSeedDetailsFormState
101 ))
102 ],
103 ),
104 - if (widget.walletRestorationFromSeedVM.hasRestorationHeight)
104 + if (widget.walletRestorationFromSeedVM.hasRestorationHeight) ... [
105 BlockchainHeightWidget(
106 key: _blockchainHeightKey,
107 onHeightChange: (height) {
108 widget.walletRestorationFromSeedVM.height = height;
109 print(height);
110 }),
111 + Padding(
112 + padding: EdgeInsets.only(left: 40, right: 40, top: 24),
113 + child: Text(
114 + S.of(context).restore_from_date_or_blockheight,
115 + textAlign: TextAlign.center,
116 + style: TextStyle(
117 + fontSize: 12,
118 + fontWeight: FontWeight.normal,
119 + color: Theme.of(context).hintColor
120 + ),
121 + ),
122 + )
123 + ]
124 ]),
125 ),
126 bottomSectionPadding: EdgeInsets.only(bottom: 24),
lib/src/screens/seed/wallet_seed_page.dart
+75 -52
@@ -1,17 +1,18 @@
1 +import 'package:cake_wallet/di.dart';
2 +import 'package:cake_wallet/palette.dart';
3 +import 'package:cake_wallet/store/settings_store.dart';
4 +import 'package:flutter/cupertino.dart';
5 import 'package:flutter/material.dart';
6 import 'package:flutter/services.dart';
3 -import 'package:provider/provider.dart';
7 import 'package:esys_flutter_share/esys_flutter_share.dart';
8 import 'package:flutter_mobx/flutter_mobx.dart';
9 import 'package:cake_wallet/generated/i18n.dart';
10 import 'package:cake_wallet/src/widgets/primary_button.dart';
11 import 'package:cake_wallet/src/screens/base_page.dart';
9 -import 'package:cake_wallet/themes.dart';
10 -import 'package:cake_wallet/theme_changer.dart';
12 import 'package:cake_wallet/view_model/wallet_seed_view_model.dart';
13
14 class WalletSeedPage extends BasePage {
14 - WalletSeedPage(this.walletSeedViewModel, {this.onCloseCallback});
15 + WalletSeedPage(this.walletSeedViewModel, {@required this.isNewWalletCreated});
16
17 static final imageLight = Image.asset('assets/images/crypto_lock_light.png');
18 static final imageDark = Image.asset('assets/images/crypto_lock.png');
@@ -19,36 +20,38 @@ class WalletSeedPage extends BasePage {
20 @override
21 String get title => S.current.seed_title;
22
22 - final VoidCallback onCloseCallback;
23 + final bool isNewWalletCreated;
24 final WalletSeedViewModel walletSeedViewModel;
25
26 @override
27 void onClose(BuildContext context) =>
27 - onCloseCallback != null ? onCloseCallback() : Navigator.of(context).pop();
28 + isNewWalletCreated
29 + ? Navigator.of(context).popUntil((route) => route.isFirst)
30 + : Navigator.of(context).pop();
31
32 @override
33 Widget leading(BuildContext context) =>
31 - onCloseCallback != null ? Offstage() : super.leading(context);
34 + isNewWalletCreated ? Offstage() : super.leading(context);
35
36 @override
37 Widget trailing(BuildContext context) {
35 - return onCloseCallback != null
38 + return isNewWalletCreated
39 ? GestureDetector(
40 onTap: () => onClose(context),
41 child: Container(
42 width: 100,
40 - height: 42,
43 + height: 32,
44 alignment: Alignment.center,
45 margin: EdgeInsets.only(left: 10),
46 decoration: BoxDecoration(
47 borderRadius: BorderRadius.all(Radius.circular(16)),
45 - color: Theme.of(context).accentTextTheme.title.color),
48 + color: Theme.of(context).accentTextTheme.caption.color),
49 child: Text(
50 S.of(context).seed_language_next,
51 style: TextStyle(
52 fontSize: 14,
53 fontWeight: FontWeight.w600,
51 - color: Colors.blue),
54 + color: Palette.blueCraiola),
55 ),
56 ),
57 )
@@ -57,9 +60,7 @@ class WalletSeedPage extends BasePage {
60
61 @override
62 Widget body(BuildContext context) {
60 - final _themeChanger = Provider.of<ThemeChanger>(context);
61 - final image =
62 - _themeChanger.getTheme() == Themes.darkTheme ? imageDark : imageLight;
63 + final image = getIt.get<SettingsStore>().isDarkTheme ? imageDark : imageLight;
64
65 return Container(
66 padding: EdgeInsets.all(24),
@@ -85,22 +86,23 @@ class WalletSeedPage extends BasePage {
86 walletSeedViewModel.name,
87 style: TextStyle(
88 fontSize: 20,
88 - fontWeight: FontWeight.bold,
89 + fontWeight: FontWeight.w600,
90 color: Theme.of(context)
91 .primaryTextTheme
92 .title
93 .color),
94 ),
95 Padding(
95 - padding: EdgeInsets.only(top: 20),
96 + padding: EdgeInsets.only(top: 20, left: 16, right: 16),
97 child: Text(
98 walletSeedViewModel.seed,
99 textAlign: TextAlign.center,
100 style: TextStyle(
101 fontSize: 14,
102 + fontWeight: FontWeight.normal,
103 color: Theme.of(context)
104 .primaryTextTheme
103 - .caption
105 + .overline
106 .color),
107 ),
108 )
@@ -108,42 +110,63 @@ class WalletSeedPage extends BasePage {
110 );
111 }),
112 ),
111 - Row(
112 - mainAxisSize: MainAxisSize.max,
113 + Column(
114 children: <Widget>[
114 - Flexible(
115 - child: Container(
116 - padding: EdgeInsets.only(right: 8.0),
117 - child: PrimaryButton(
118 - onPressed: () => Share.text(
119 - S.of(context).seed_share,
120 - walletSeedViewModel.seed,
121 - 'text/plain'),
122 - text: S.of(context).save,
123 - color: Colors.green,
124 - textColor: Colors.white),
125 - )),
126 - Flexible(
127 - child: Container(
128 - padding: EdgeInsets.only(left: 8.0),
129 - child: Builder(
130 - builder: (context) => PrimaryButton(
131 - onPressed: () {
132 - Clipboard.setData(ClipboardData(
133 - text: walletSeedViewModel.seed));
134 - Scaffold.of(context).showSnackBar(
135 - SnackBar(
136 - content: Text(
137 - S.of(context).copied_to_clipboard),
138 - backgroundColor: Colors.green,
139 - duration: Duration(milliseconds: 1500),
140 - ),
141 - );
142 - },
143 - text: S.of(context).copy,
144 - color: Colors.blue,
145 - textColor: Colors.white)),
146 - ))
115 + isNewWalletCreated
116 + ? Padding(
117 + padding: EdgeInsets.only(bottom: 52, left: 43, right: 43),
118 + child: Text(
119 + S.of(context).seed_reminder,
120 + textAlign: TextAlign.center,
121 + style: TextStyle(
122 + fontSize: 12,
123 + fontWeight: FontWeight.normal,
124 + color: Theme.of(context)
125 + .primaryTextTheme
126 + .overline
127 + .color
128 + ),
129 + ),
130 + )
131 + : Offstage(),
132 + Row(
133 + mainAxisSize: MainAxisSize.max,
134 + children: <Widget>[
135 + Flexible(
136 + child: Container(
137 + padding: EdgeInsets.only(right: 8.0),
138 + child: PrimaryButton(
139 + onPressed: () => Share.text(
140 + S.of(context).seed_share,
141 + walletSeedViewModel.seed,
142 + 'text/plain'),
143 + text: S.of(context).save,
144 + color: Colors.green,
145 + textColor: Colors.white),
146 + )),
147 + Flexible(
148 + child: Container(
149 + padding: EdgeInsets.only(left: 8.0),
150 + child: Builder(
151 + builder: (context) => PrimaryButton(
152 + onPressed: () {
153 + Clipboard.setData(ClipboardData(
154 + text: walletSeedViewModel.seed));
155 + Scaffold.of(context).showSnackBar(
156 + SnackBar(
157 + content: Text(
158 + S.of(context).copied_to_clipboard),
159 + backgroundColor: Colors.green,
160 + duration: Duration(milliseconds: 1500),
161 + ),
162 + );
163 + },
164 + text: S.of(context).copy,
165 + color: Palette.blueCraiola,
166 + textColor: Colors.white)),
167 + ))
168 + ],
169 + )
170 ],
171 )
172 ],
lib/src/screens/wallet_list/wallet_menu.dart
+1 -1
@@ -116,7 +116,7 @@ class WalletMenu {
116 return;
117 }
118 auth.close();
119 - await Navigator.of(context).pushNamed(Routes.seed);
119 + await Navigator.of(context).pushNamed(Routes.seed, arguments: false);
120 });
121 break;
122 case 2:
res/values/strings_de.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Stellen Sie Ihre Brieftasche aus dem 12-Wort-Kombinationscode wieder her",
169 "restore_bitcoin_description_from_keys" : "Stellen Sie Ihre Brieftasche aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her",
170 "restore_bitcoin_title_from_keys" : "Aus WIF wiederherstellen",
171 + "restore_from_date_or_blockheight" : "Bitte geben Sie das Datum ein, an dem Sie diese Brieftasche erstellt haben. Oder wenn Sie die Blockhöhe kennen, geben Sie sie stattdessen ein",
172
173
174 + "seed_reminder" : "Bitte notieren Sie diese, falls Sie Ihr Telefon verlieren oder abwischen",
175 "seed_title" : "Seed",
176 "seed_share" : "Teilen Sie Seed",
177 "copy" : "Kopieren",
res/values/strings_en.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Restore your wallet from 12 word combination code",
169 "restore_bitcoin_description_from_keys" : "Restore your wallet from generated WIF string from your private keys",
170 "restore_bitcoin_title_from_keys" : "Restore from WIF",
171 + "restore_from_date_or_blockheight" : "Please enter the date you created this wallet. Or if you know the blockheight, please enter it instead",
172
173
174 + "seed_reminder" : "Please write these down in case you lose or wipe your phone",
175 "seed_title" : "Seed",
176 "seed_share" : "Share seed",
177 "copy" : "Copy",
res/values/strings_es.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Restaure su billetera a partir del código de combinación de 12 palabras",
169 "restore_bitcoin_description_from_keys" : "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas",
170 "restore_bitcoin_title_from_keys" : "Restaurar desde WIF",
171 + "restore_from_date_or_blockheight" : "Ingrese la fecha en que creó esta billetera. O si conoce la altura del bloque, ingréselo en su lugar",
172
173
174 + "seed_reminder" : "Anótelos en caso de que pierda o borre su teléfono",
175 "seed_title" : "Semilla",
176 "seed_share" : "Compartir semillas",
177 "copy" : "Dupdo",
res/values/strings_hi.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "12 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें",
169 "restore_bitcoin_description_from_keys" : "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें",
170 "restore_bitcoin_title_from_keys" : "WIF से पुनर्स्थापित करें",
171 + "restore_from_date_or_blockheight" : "कृपया इस वॉलेट को बनाने की तिथि दर्ज करें। या यदि आप ब्लॉकचाइट जानते हैं, तो कृपया इसके बजाय इसे दर्ज करें",
172
173
174 + "seed_reminder" : "यदि आप अपना फोन खो देते हैं या मिटा देते हैं तो कृपया इन्हें लिख लें",
175 "seed_title" : "बीज",
176 "seed_share" : "बीज साझा करें",
177 "copy" : "प्रतिलिपि",
res/values/strings_ja.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "12ワードの組み合わせコードからウォレットを復元する",
169 "restore_bitcoin_description_from_keys" : "秘密鍵から生成されたWIF文字列からウォレットを復元します",
170 "restore_bitcoin_title_from_keys" : "WIFから復元",
171 + "restore_from_date_or_blockheight" : "このウォレットを作成した日付を入力してください。 または、ブロックの高さがわかっている場合は、代わりに入力してください",
172
173
174 + "seed_reminder" : "スマートフォンを紛失したりワイプした場合に備えて、これらを書き留めてください",
175 "seed_title" : "シード",
176 "seed_share" : "シードを共有する",
177 "copy" : "コピー",
res/values/strings_ko.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "12 단어 조합 코드에서 지갑 복원",
169 "restore_bitcoin_description_from_keys" : "개인 키에서 생성 된 WIF 문자열에서 지갑 복원",
170 "restore_bitcoin_title_from_keys" : "WIF에서 복원",
171 + "restore_from_date_or_blockheight" : "이 지갑을 만든 날짜를 입력하세요. 또는 블록 높이를 알고있는 경우 대신 입력하십시오.",
172
173
174 + "seed_reminder" : "휴대 전화를 분실하거나 닦을 경우를 대비해 적어 두세요.",
175 "seed_title" : "씨",
176 "seed_share" : "시드 공유",
177 "copy" : "부",
res/values/strings_nl.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Herstel uw portemonnee met een combinatiecode van 12 woorden",
169 "restore_bitcoin_description_from_keys" : "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels",
170 "restore_bitcoin_title_from_keys" : "Herstel van WIF",
171 + "restore_from_date_or_blockheight" : "Voer de datum in waarop u deze portemonnee heeft gemaakt. Of als u de blokhoogte kent, voer deze dan in",
172
173
174 + "seed_reminder" : "Schrijf deze op voor het geval u uw telefoon kwijtraakt of veegt",
175 "seed_title" : "Zaad",
176 "seed_share" : "Deel zaad",
177 "copy" : "Kopiëren",
res/values/strings_pl.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Przywróć swój portfel z kodu złożonego z 12 słów",
169 "restore_bitcoin_description_from_keys" : "Przywróć swój portfel z wygenerowanego ciągu WIF z kluczy prywatnych",
170 "restore_bitcoin_title_from_keys" : "Przywróć z WIF",
171 + "restore_from_date_or_blockheight" : "Wprowadź datę utworzenia tego portfela. Lub jeśli znasz wysokość bloku, wprowadź go zamiast tego",
172
173
174 + "seed_reminder" : "Zapisz je na wypadek zgubienia lub wyczyszczenia telefonu",
175 "seed_title" : "Ziarno",
176 "seed_share" : "Udostępnij ziarno",
177 "copy" : "Kopiuj",
res/values/strings_pt.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Restaure sua carteira a partir de um código de combinação de 12 palavras",
169 "restore_bitcoin_description_from_keys" : "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas",
170 "restore_bitcoin_title_from_keys" : "Restaurar de WIF",
171 + "restore_from_date_or_blockheight" : "Por favor, insira a data em que você criou esta carteira. Ou se você souber a altura do bloco, insira-o",
172
173
174 + "seed_reminder" : "Anote-os para o caso de perder ou limpar seu telefone",
175 "seed_title" : "Semente",
176 "seed_share" : "Compartilhar semente",
177 "copy" : "Copiar",
res/values/strings_ru.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Вы можете восстановить кошелёк используя 12-ти значную мнемоническую фразу",
169 "restore_bitcoin_description_from_keys" : "Вы можете восстановить кошелёк с помощью WIF",
170 "restore_bitcoin_title_from_keys" : "Восстановить с помощью WIF",
171 + "restore_from_date_or_blockheight" : "Пожалуйста, введите дату создания кошелька. Или, если вы знаете высоту блока, введите ее значение",
172
173
174 + "seed_reminder" : "Пожалуйста, запишите мнемоническую фразу на случай потери или очистки телефона",
175 "seed_title" : "Мнемоническая фраза",
176 "seed_share" : "Поделиться мнемонической фразой",
177 "copy" : "Скопировать",
res/values/strings_uk.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "Ви можете відновити гаманець використовуючи 12-ти слівну мнемонічну фразу",
169 "restore_bitcoin_description_from_keys" : "Ви можете відновити гаманець за допомогою WIF",
170 "restore_bitcoin_title_from_keys" : "Відновити за допомогою WIF",
171 + "restore_from_date_or_blockheight" : "Будь ласка, введіть дату створення гаманця. Або, якщо ви знаєте висоту блоку, введіть її значення",
172
173
174 + "seed_reminder" : "Будь ласка, запишіть мнемонічну фразу на випадок втрати або очищення телефону",
175 "seed_title" : "Мнемонічна фраза",
176 "seed_share" : "Поділитися мнемонічною фразою",
177 "copy" : "Скопіювати",
res/values/strings_zh.arb
+2
@@ -168,8 +168,10 @@
168 "restore_bitcoin_description_from_seed" : "從12個單詞的組合碼恢復您的錢包",
169 "restore_bitcoin_description_from_keys" : "從私鑰中生成的WIF字符串還原您的錢包",
170 "restore_bitcoin_title_from_keys" : "從WIF還原",
171 + "restore_from_date_or_blockheight" : "請輸入創建此錢包的日期。 或者,如果您知道塊高,請改為輸入",
172
173
174 + "seed_reminder" : "請寫下這些,以防丟失或擦拭手機",
175 "seed_title" : "种子",
176 "seed_share" : "分享种子",
177 "copy" : "复制",