From 306e4671b4aedf3699c7daaa24cae7f9c2482726 Mon Sep 17 00:00:00 2001 From: Serhii Date: Tue, 21 Nov 2023 14:46:11 +0200 Subject: [PATCH 01/14] add 2fa guid and how to use sections --- lib/src/screens/setup_2fa/setup_2fa.dart | 10 +++++++++- .../screens/setup_2fa/setup_2fa_qr_page.dart | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/src/screens/setup_2fa/setup_2fa.dart b/lib/src/screens/setup_2fa/setup_2fa.dart index 895fbb9c0..3bdd49f5b 100644 --- a/lib/src/screens/setup_2fa/setup_2fa.dart +++ b/lib/src/screens/setup_2fa/setup_2fa.dart @@ -19,6 +19,9 @@ class Setup2FAPage extends BasePage { @override Widget body(BuildContext context) { + final cake2FAGuideTitle = 'Cake 2FA Guide'; + final cake2FAGuideUri = + Uri.parse('https://guides.cakewallet.com/docs/advanced-features/authentication'); return SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -50,7 +53,7 @@ class Setup2FAPage extends BasePage { ], ), ), - SizedBox(height: 86), + SizedBox(height: 56), SettingsCellWithArrow( title: S.current.setup_totp_recommended, handler: (_) { @@ -59,6 +62,11 @@ class Setup2FAPage extends BasePage { }, ), StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), + SettingsCellWithArrow( + title: cake2FAGuideTitle, + handler: (_) => Navigator.of(context) + .pushNamed(Routes.webViewPage, arguments: [cake2FAGuideTitle, cake2FAGuideUri])), + StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), ], ), ); diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index 43dbab05f..a50c64aa0 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -30,6 +30,9 @@ class Setup2FAQRPage extends BasePage { width: 12, color: Color(0xFF355688), ); + final cake2FAHowToUseTitle = 'How to use'; + final cake2FAHowToUseUrl = Uri.parse( + 'https://guides.cakewallet.com/docs/advanced-features/authentication/#enabling-cake-2fa'); return Padding( padding: const EdgeInsets.symmetric(horizontal: 24), child: Column( @@ -180,6 +183,23 @@ class Setup2FAQRPage extends BasePage { ), SizedBox(height: 8), StandardListSeparator(), + SizedBox(height: 16), + GestureDetector( + onTap: () => Navigator.of(context).pushNamed(Routes.webViewPage, + arguments: [cake2FAHowToUseTitle, cake2FAHowToUseUrl]), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text(cake2FAHowToUseTitle, + style: TextStyle( + decoration: TextDecoration.underline, + fontSize: 16, + fontWeight: FontWeight.w700, + )), + Icon(Icons.info_outline,size: 20) + ], + )), Spacer(), PrimaryButton( onPressed: () { From 217c19272fb2f8262b0c213ec1370d8b72c3863f Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 22 Nov 2023 23:37:05 +0200 Subject: [PATCH 02/14] pre seed page refactoring --- lib/di.dart | 16 +++++------ lib/router.dart | 10 +++---- lib/routes.dart | 2 +- .../screens/new_wallet/new_wallet_page.dart | 2 +- .../{pre_seed_page.dart => warning_page.dart} | 28 ++++--------------- lib/view_model/wallet_new_vm.dart | 17 ++++++++++- 6 files changed, 35 insertions(+), 40 deletions(-) rename lib/src/screens/seed/{pre_seed_page.dart => warning_page.dart} (76%) diff --git a/lib/di.dart b/lib/di.dart index d6a43030a..3c2c87783 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -129,7 +129,7 @@ import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; -import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; +import 'package:cake_wallet/src/screens/seed/warning_page.dart'; import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; import 'package:cake_wallet/src/screens/send/send_template_page.dart'; import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; @@ -337,6 +337,9 @@ Future setup({ settingsStore: getIt.get(), walletInfoSource: _walletInfoSource)); + getIt.registerFactoryParam( + (type, _) => AdvancedPrivacySettingsViewModel(type, getIt.get())); + getIt.registerFactory(() => WalletLoadingService( getIt.get(), getIt.get(), @@ -345,7 +348,7 @@ Future setup({ getIt.registerFactoryParam((type, _) => WalletNewVM(getIt.get(), getIt.get(param1: type), _walletInfoSource, - type: type)); + getIt.get(param1: type),type: type)); getIt.registerFactoryParam((WalletType type, _) { return WalletRestorationFromQRVM(getIt.get(), @@ -900,9 +903,9 @@ Future setup({ getIt.registerFactoryParam( (param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); - getIt.registerFactoryParam( - (WalletType type, AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel) - => PreSeedPage(type, advancedPrivacySettingsViewModel)); + getIt.registerFactoryParam( + (seedPhraseLength, _) + => WarningPage(seedPhraseLength)); getIt.registerFactoryParam((trade, _) => TradeDetailsViewModel( @@ -1149,9 +1152,6 @@ Future setup({ IoniaPaymentStatusPage( getIt.get(param1: paymentInfo, param2: committedInfo))); - getIt.registerFactoryParam( - (type, _) => AdvancedPrivacySettingsViewModel(type, getIt.get())); - getIt.registerFactoryParam((balanceViewModel, _) => HomeSettingsPage(getIt.get(param1: balanceViewModel))); diff --git a/lib/router.dart b/lib/router.dart index 75f491dfc..f51a0a6db 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -40,7 +40,7 @@ import 'package:cake_wallet/src/screens/order_details/order_details_page.dart'; import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; -import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; +import 'package:cake_wallet/src/screens/seed/warning_page.dart'; import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/settings/tor_page.dart'; @@ -417,12 +417,10 @@ Route createRoute(RouteSettings settings) { case Routes.faq: return MaterialPageRoute(builder: (_) => getIt.get()); - case Routes.preSeed: + case Routes.warningPage: return MaterialPageRoute( - builder: (_) => getIt.get( - param1: settings.arguments as WalletType, - param2: getIt.get( - param1: settings.arguments as WalletType))); + builder: (_) => getIt.get( + param1: settings.arguments as int)); case Routes.backup: return CupertinoPageRoute( diff --git a/lib/routes.dart b/lib/routes.dart index 4c1a917ab..9b3e8fbba 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -47,7 +47,7 @@ class Routes { static const exchangeTemplate = '/exchange_template'; static const restoreWalletType = '/restore_wallet_type'; static const restoreWallet = '/restore_wallet'; - static const preSeed = '/pre_seed'; + static const warningPage = '/warning_page'; static const backup = '/backup'; static const editBackupPassword = '/edit_backup_passowrd'; static const restoreFromBackup = '/restore_from_backup'; diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index 5577fcd88..040aa85ea 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -67,7 +67,7 @@ class _WalletNameFormState extends State { _stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async { if (state is ExecutedSuccessfullyState) { Navigator.of(navigatorKey.currentContext!) - .pushNamed(Routes.preSeed, arguments: _walletNewVM.type); + .pushNamed(Routes.warningPage, arguments: _walletNewVM.seedPhraseWordsLength); } if (state is FailureState) { diff --git a/lib/src/screens/seed/pre_seed_page.dart b/lib/src/screens/seed/warning_page.dart similarity index 76% rename from lib/src/screens/seed/pre_seed_page.dart rename to lib/src/screens/seed/warning_page.dart index 947099983..24e476373 100644 --- a/lib/src/screens/seed/pre_seed_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -9,20 +9,14 @@ import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:flutter/material.dart'; -class PreSeedPage extends BasePage { - PreSeedPage(this.type, this.advancedPrivacySettingsViewModel) +class WarningPage extends BasePage { + WarningPage(this.seedPhraseLength) : imageLight = Image.asset('assets/images/pre_seed_light.png'), - imageDark = Image.asset('assets/images/pre_seed_dark.png'), - seedPhraseLength = advancedPrivacySettingsViewModel.seedPhraseLength.value { - wordsCount = _wordsCount(type, seedPhraseLength); - } + imageDark = Image.asset('assets/images/pre_seed_dark.png'); final Image imageDark; final Image imageLight; - final WalletType type; - final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel; - final int seedPhraseLength; - late final int wordsCount; + final int? seedPhraseLength; @override Widget? leading(BuildContext context) => null; @@ -53,7 +47,7 @@ class PreSeedPage extends BasePage { Padding( padding: EdgeInsets.all(10), child: Text( - S.of(context).pre_seed_description(wordsCount.toString()), + S.of(context).pre_seed_description(seedPhraseLength.toString()), textAlign: TextAlign.center, style: TextStyle( fontSize: 14, @@ -72,16 +66,4 @@ class PreSeedPage extends BasePage { ), )); } - - static int _wordsCount(WalletType type, int seedPhraseLength) { - switch (type) { - case WalletType.monero: - return 25; - case WalletType.ethereum: - case WalletType.bitcoinCash: - return seedPhraseLength; - default: - return 24; - } - } } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index 9b1f0834d..d210f1aab 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -15,6 +15,7 @@ import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/view_model/wallet_creation_vm.dart'; import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/haven/haven.dart'; +import 'advanced_privacy_settings_view_model.dart'; part 'wallet_new_vm.g.dart'; @@ -22,16 +23,30 @@ class WalletNewVM = WalletNewVMBase with _$WalletNewVM; abstract class WalletNewVMBase extends WalletCreationVM with Store { WalletNewVMBase(AppStore appStore, WalletCreationService walletCreationService, - Box walletInfoSource, + Box walletInfoSource, this.advancedPrivacySettingsViewModel, {required WalletType type}) : selectedMnemonicLanguage = '', super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: false); + final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel; + @observable String selectedMnemonicLanguage; bool get hasLanguageSelector => type == WalletType.monero || type == WalletType.haven; + int get seedPhraseWordsLength { + switch (type) { + case WalletType.monero: + return 25; + case WalletType.ethereum: + case WalletType.bitcoinCash: + return advancedPrivacySettingsViewModel.seedPhraseLength.value; + default: + return 24; + } + } + @override WalletCredentials getCredentials(dynamic options) { switch (type) { From b87c11bbe47b84fa762f776c6c3ac1cb7c929c84 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 23 Nov 2023 16:51:22 +0200 Subject: [PATCH 03/14] fix 2fa UI --- assets/images/setup_2fa_img.png | Bin 0 -> 20129 bytes lib/di.dart | 2 +- lib/router.dart | 2 +- lib/src/screens/receive/widgets/qr_image.dart | 8 +- lib/src/screens/seed/warning_page.dart | 40 ++++--- .../settings/security_backup_page.dart | 2 +- lib/src/screens/setup_2fa/setup_2fa.dart | 60 +++++----- .../screens/setup_2fa/setup_2fa_qr_page.dart | 109 +++++++++--------- res/values/strings_ar.arb | 1 - res/values/strings_bg.arb | 1 - res/values/strings_cs.arb | 1 - res/values/strings_de.arb | 1 - res/values/strings_en.arb | 1 - res/values/strings_es.arb | 1 - res/values/strings_fr.arb | 1 - res/values/strings_hi.arb | 1 - res/values/strings_hr.arb | 1 - res/values/strings_id.arb | 1 - res/values/strings_it.arb | 1 - res/values/strings_ja.arb | 1 - res/values/strings_ko.arb | 1 - res/values/strings_my.arb | 1 - res/values/strings_nl.arb | 1 - res/values/strings_pl.arb | 1 - res/values/strings_pt.arb | 1 - res/values/strings_ru.arb | 1 - res/values/strings_th.arb | 1 - res/values/strings_tl.arb | 1 - res/values/strings_tr.arb | 1 - res/values/strings_uk.arb | 1 - res/values/strings_ur.arb | 1 - res/values/strings_yo.arb | 1 - res/values/strings_zh.arb | 1 - 33 files changed, 114 insertions(+), 134 deletions(-) create mode 100644 assets/images/setup_2fa_img.png diff --git a/assets/images/setup_2fa_img.png b/assets/images/setup_2fa_img.png new file mode 100644 index 0000000000000000000000000000000000000000..3df3bdaddaa907f7d908892dd15d3978db38519c GIT binary patch literal 20129 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 setup({ getIt.registerFactoryParam( (param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); - getIt.registerFactoryParam( + getIt.registerFactoryParam( (seedPhraseLength, _) => WarningPage(seedPhraseLength)); diff --git a/lib/router.dart b/lib/router.dart index f51a0a6db..f622006e2 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -420,7 +420,7 @@ Route createRoute(RouteSettings settings) { case Routes.warningPage: return MaterialPageRoute( builder: (_) => getIt.get( - param1: settings.arguments as int)); + param1: settings.arguments as int?)); case Routes.backup: return CupertinoPageRoute( diff --git a/lib/src/screens/receive/widgets/qr_image.dart b/lib/src/screens/receive/widgets/qr_image.dart index f4c1eb177..f388fdd0b 100644 --- a/lib/src/screens/receive/widgets/qr_image.dart +++ b/lib/src/screens/receive/widgets/qr_image.dart @@ -4,12 +4,16 @@ import 'package:qr_flutter/qr_flutter.dart' as qr; class QrImage extends StatelessWidget { QrImage({ required this.data, + this.foregroundColor = Colors.black, + this.backgroundColor = Colors.white, this.size = 100.0, this.version, this.errorCorrectionLevel = qr.QrErrorCorrectLevel.L, }); final double size; + final Color foregroundColor; + final Color backgroundColor; final String data; final int? version; final int errorCorrectionLevel; @@ -21,8 +25,8 @@ class QrImage extends StatelessWidget { errorCorrectionLevel: errorCorrectionLevel, version: version ?? 9, // Previous value: 7 something happened after flutter upgrade monero wallets addresses are longer than ver. 7 ??? size: size, - foregroundColor: Colors.black, - backgroundColor: Colors.white, + foregroundColor: foregroundColor, + backgroundColor: backgroundColor, padding: const EdgeInsets.all(8.0), ); } diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index 24e476373..cd7c3b1f6 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -11,15 +11,17 @@ import 'package:flutter/material.dart'; class WarningPage extends BasePage { WarningPage(this.seedPhraseLength) - : imageLight = Image.asset('assets/images/pre_seed_light.png'), + : isPreSeedPage = seedPhraseLength != null, + imageLight = Image.asset('assets/images/pre_seed_light.png'), imageDark = Image.asset('assets/images/pre_seed_dark.png'); final Image imageDark; final Image imageLight; final int? seedPhraseLength; + final bool isPreSeedPage; @override - Widget? leading(BuildContext context) => null; + Widget? leading(BuildContext context) => isPreSeedPage ? null : super.leading(context); @override String? get title => S.current.pre_seed_title; @@ -28,37 +30,43 @@ class WarningPage extends BasePage { Widget body(BuildContext context) { final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; + final text = + "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage. If you lose access to your 2FA app or passkeys, you WILL lose access to this wallet. You will need to restore your wallet from the mnemonic seed. Cake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds. Before using Cake 2FA, we recommend reading through the guide here."; + return WillPopScope( onWillPop: () async => false, child: Container( alignment: Alignment.center, padding: EdgeInsets.all(24), child: ConstrainedBox( - constraints: BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + constraints: + BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ ConstrainedBox( - constraints: BoxConstraints( - maxHeight: MediaQuery.of(context).size.height * 0.3 - ), + constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), child: AspectRatio(aspectRatio: 1, child: image), ), Padding( padding: EdgeInsets.all(10), child: Text( - S.of(context).pre_seed_description(seedPhraseLength.toString()), - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.normal, - color: Theme.of(context).extension()!.secondaryTextColor), - ), + isPreSeedPage + ? S.of(context).pre_seed_description(seedPhraseLength.toString()) + : text, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.normal, + color: isPreSeedPage + ? Theme.of(context).extension()!.secondaryTextColor + : Theme.of(context).extension()!.titleColor)), ), PrimaryButton( - onPressed: () => - Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true), - text: S.of(context).pre_seed_button_text, + onPressed: () => isPreSeedPage + ? Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true) + : Navigator.of(context).popAndPushNamed(Routes.setup_2faPage), + text: isPreSeedPage ? S.of(context).pre_seed_button_text : 'Neeeeeeee', color: Theme.of(context).primaryColor, textColor: Colors.white) ], diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index a0fb16cb6..c6fa939de 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -108,7 +108,7 @@ class SecurityBackupPage extends BasePage { context, route: _securitySettingsViewModel.useTotp2FA ? Routes.modify2FAPage - : Routes.setup_2faPage, + : Routes.warningPage, conditionToDetermineIfToUse2FA: _securitySettingsViewModel .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), diff --git a/lib/src/screens/setup_2fa/setup_2fa.dart b/lib/src/screens/setup_2fa/setup_2fa.dart index 3bdd49f5b..9d8ffe839 100644 --- a/lib/src/screens/setup_2fa/setup_2fa.dart +++ b/lib/src/screens/setup_2fa/setup_2fa.dart @@ -1,13 +1,12 @@ import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; -import 'package:flutter/material.dart'; - import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; +import 'package:cake_wallet/src/widgets/standard_list.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/view_model/set_up_2fa_viewmodel.dart'; - -import '../../widgets/standard_list.dart'; +import 'package:flutter/material.dart'; +import 'package:url_launcher/url_launcher.dart'; class Setup2FAPage extends BasePage { Setup2FAPage({required this.setup2FAViewModel}); @@ -21,36 +20,27 @@ class Setup2FAPage extends BasePage { Widget body(BuildContext context) { final cake2FAGuideTitle = 'Cake 2FA Guide'; final cake2FAGuideUri = - Uri.parse('https://guides.cakewallet.com/docs/advanced-features/authentication'); + Uri.parse('https://guides.cakewallet.com/docs/advanced-features/authentication'); return SingleChildScrollView( child: Column( - crossAxisAlignment: CrossAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, children: [ + ConstrainedBox( + constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), + child: + AspectRatio(aspectRatio: 1, child: Image.asset('assets/images/setup_2fa_img.png')), + ), Padding( padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - S.current.important_note, - style: TextStyle( - fontWeight: FontWeight.w700, - fontSize: 14, - height: 1.571, - color: Theme.of(context).extension()!.titleColor, - ), - ), - SizedBox(height: 16), - Text( - S.current.setup_2fa_text, - style: TextStyle( - fontWeight: FontWeight.w400, - fontSize: 14, - height: 1.571, - color: Theme.of(context).extension()!.titleColor, - ), - ), - ], + child: Text( + S.current.setup_2fa_text, + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.w400, + fontSize: 14, + height: 1.571, + color: Theme.of(context).extension()!.titleColor, + ), ), ), SizedBox(height: 56), @@ -63,12 +53,16 @@ class Setup2FAPage extends BasePage { ), StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), SettingsCellWithArrow( - title: cake2FAGuideTitle, - handler: (_) => Navigator.of(context) - .pushNamed(Routes.webViewPage, arguments: [cake2FAGuideTitle, cake2FAGuideUri])), + title: cake2FAGuideTitle, handler: (_) => _launchUrl(cake2FAGuideUri)), StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), ], ), ); } + + static void _launchUrl(Uri url) async { + try { + await launchUrl(url); + } catch (e) {} + } } diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index a50c64aa0..620f13670 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -4,8 +4,8 @@ import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/standard_list.dart'; import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/utils/clipboard_util.dart'; import 'package:cake_wallet/utils/show_bar.dart'; @@ -13,6 +13,7 @@ import 'package:cake_wallet/view_model/set_up_2fa_viewmodel.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:qr_flutter/qr_flutter.dart' as qr; +import 'package:url_launcher/url_launcher.dart'; class Setup2FAQRPage extends BasePage { Setup2FAQRPage({required this.setup2FAViewModel}); @@ -24,12 +25,8 @@ class Setup2FAQRPage extends BasePage { @override Widget body(BuildContext context) { - final copyImage = Image.asset( - 'assets/images/copy_content.png', - height: 12, - width: 12, - color: Color(0xFF355688), - ); + final copyImage = Image.asset('assets/images/copy_content.png', + height: 16, width: 16, color: Theme.of(context).extension()!.titleColor); final cake2FAHowToUseTitle = 'How to use'; final cake2FAHowToUseUrl = Uri.parse( 'https://guides.cakewallet.com/docs/advanced-features/authentication/#enabling-cake-2fa'); @@ -37,41 +34,49 @@ class Setup2FAQRPage extends BasePage { padding: const EdgeInsets.symmetric(horizontal: 24), child: Column( children: [ - SizedBox(height: 58), + Spacer(), Text( S.current.add_secret_code, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w700, height: 1.5714, - color: Palette.darkBlueCraiola, + color: Theme.of(context).extension()!.titleColor, ), ), SizedBox(height: 10), - AspectRatio( - aspectRatio: 1.0, - child: Container( - padding: EdgeInsets.all(5), - decoration: BoxDecoration( - border: Border.all( - width: 3, - color: Theme.of(context).extension()!.textColor, - ), - ), + ConstrainedBox( + constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.4), + child: AspectRatio( + aspectRatio: 1.0, child: Container( - decoration: BoxDecoration( - border: Border.all( - width: 3, - color: Colors.white, - ), + padding: EdgeInsets.all(5), + decoration: BoxDecoration( + border: Border.all( + width: 3, + color: Theme.of(context).extension()!.textColor, ), - child: QrImage( - data: setup2FAViewModel.totpVersionOneLink, - version: qr.QrVersions.auto, - )), + ), + child: Container( + child: QrImage( + data: setup2FAViewModel.totpVersionOneLink, + version: qr.QrVersions.auto, + foregroundColor: Theme.of(context).extension()!.titleColor, + backgroundColor: Colors.transparent, + )), + ), + ), + ), + SizedBox(height: 26), + Text( + S.current.add_secret_code, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w700, + height: 1.5714, + color: Theme.of(context).extension()!.titleColor, ), ), - SizedBox(height: 13), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, @@ -86,7 +91,7 @@ class Setup2FAQRPage extends BasePage { style: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, - color: Palette.darkGray, + color: Theme.of(context).extension()!.secondaryTextColor, height: 1.8333, ), ), @@ -94,10 +99,8 @@ class Setup2FAQRPage extends BasePage { Text( '${setup2FAViewModel.totpSecretKey}', style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w700, - height: 1.375, - ), + fontSize: 18, + color: Theme.of(context).extension()!.titleColor), maxLines: 1, overflow: TextOverflow.ellipsis, ), @@ -115,10 +118,6 @@ class Setup2FAQRPage extends BasePage { showBar(context, S.of(context).copied_to_clipboard); }, child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6), - color: Color(0xFFF2F0FA), - ), child: copyImage, ), ), @@ -142,7 +141,7 @@ class Setup2FAQRPage extends BasePage { style: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, - color: Palette.darkGray, + color: Theme.of(context).extension()!.secondaryTextColor, height: 1.8333, ), ), @@ -150,10 +149,8 @@ class Setup2FAQRPage extends BasePage { Text( '${setup2FAViewModel.totpVersionOneLink}', style: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w700, - height: 1.375, - ), + fontSize: 18, + color: Theme.of(context).extension()!.titleColor), maxLines: 1, overflow: TextOverflow.ellipsis, ), @@ -171,10 +168,6 @@ class Setup2FAQRPage extends BasePage { showBar(context, S.of(context).copied_to_clipboard); }, child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(6), - color: Color(0xFFF2F0FA), - ), child: copyImage, ), ), @@ -185,22 +178,22 @@ class Setup2FAQRPage extends BasePage { StandardListSeparator(), SizedBox(height: 16), GestureDetector( - onTap: () => Navigator.of(context).pushNamed(Routes.webViewPage, - arguments: [cake2FAHowToUseTitle, cake2FAHowToUseUrl]), + onTap: () => _launchUrl(cake2FAHowToUseUrl), child: Row( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ Text(cake2FAHowToUseTitle, style: TextStyle( - decoration: TextDecoration.underline, - fontSize: 16, - fontWeight: FontWeight.w700, - )), - Icon(Icons.info_outline,size: 20) + decoration: TextDecoration.underline, + fontSize: 16, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.titleColor)), + Icon(Icons.info_outline, + size: 20, color: Theme.of(context).extension()!.titleColor) ], )), - Spacer(), + Spacer(flex: 5), PrimaryButton( onPressed: () { Navigator.of(context).pushReplacementNamed(Routes.totpAuthCodePage, @@ -217,4 +210,10 @@ class Setup2FAQRPage extends BasePage { ), ); } + + static void _launchUrl(Uri url) async { + try { + await launchUrl(url); + } catch (e) {} + } } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 84a0a72f5..257ad2d6d 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -623,7 +623,6 @@ "enter_totp_code": "الرجاء إدخال رمز TOTP.", "add_secret_code": "أضف هذا الرمز السري إلى جهاز آخر", "totp_secret_code": "كود TOTP السري", - "important_note": "ملاحظة مهمة", "setup_2fa_text": "كعكة 2FA ليست آمنة مثل التخزين البارد. تحمي 2FA من الأنواع الأساسية للهجمات ، مثل قيام صديقك بتقديم بصمة إصبعك أثناء نومك. لا تحمي Cake 2FA من جهاز مخترق من قِبل مهاجم متطور. إذا فقدت الوصول إلى رموز 2FA الخاصة بك ، ستفقد إمكانية الوصول إلى هذه المحفظة. سوف تحتاج إلى استعادة محفظتك من بذرة ذاكري. يجب عليك بالتالي الاحتفاظ بنسخة احتياطية من بذور الذاكرة الخاصة بك! علاوة على ذلك ، سيتمكن أي شخص لديه حق الوصول إلى بذرة (بذور) ذاكري من سرقة أموالك ، متجاوزًا Cake 2FA. لن يتمكن فريق دعم الكيك من مساعدتك إذا فقدت الوصول إلى بذرتك ، نظرًا لأن Cake هي المحفظة غير الحافظة.", "setup_totp_recommended": "إعداد TOTP (موصى به)", "disable_buy": "تعطيل إجراء الشراء", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index b1851156c..3dcd335e5 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -619,7 +619,6 @@ "enter_totp_code": "Моля, въведете TOTP кода.", "add_secret_code": "Добавете този таен код към друго устройство", "totp_secret_code": "TOTP таен код", - "important_note": "Важна забележка", "setup_2fa_text": "Тортата 2FA НЕ е толкова сигурна, колкото хладилното съхранение. 2FA защитава срещу основни видове атаки, като например вашият приятел да предостави вашия пръстов отпечатък, докато спите.\n\n Cake 2FA НЕ защитава срещу компрометирано устройство от сложен хакер.\n\n Ако загубите достъп до своите 2FA кодове , ЩЕ ЗАГУБИТЕ ДОСТЪП ДО ТОЗИ ПОРТФЕЙЛ. Ще трябва да възстановите портфейла си от мнемонично семе. ЗАТОВА ТРЯБВА ДА НАПРАВИТЕ РЕЗЕРВНО КОПИЕ НА ВАШИТЕ МНЕМОНИЧНИ СЕМЕНА! Освен това, някой с достъп до вашите мнемонични начални точки ще може да открадне вашите средства, заобикаляйки Cake 2FA.\n\n Персоналът по поддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите мнемонични начални стойности, тъй като Cake е портфейл без попечителство.", "setup_totp_recommended": "Настройка на TOTP (препоръчително)", "disable_buy": "Деактивирайте действието за покупка", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 2e59f5fc5..bc360ebb7 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -619,7 +619,6 @@ "enter_totp_code": "Zadejte kód TOTP.", "add_secret_code": "Přidejte tento tajný kód do jiného zařízení", "totp_secret_code": "Tajný kód TOTP", - "important_note": "Důležitá poznámka", "setup_2fa_text": "Cake 2FA NENÍ tak bezpečný jako skladování v chladu. 2FA chrání před základními typy útoků, jako je váš přítel, který vám poskytne otisk prstu, když spíte.\n\n Cake 2FA nechrání před napadením zařízení sofistikovaným útočníkem.\n\n Pokud ztratíte přístup ke svým kódům 2FA , ZTRÁTÍTE PŘÍSTUP K TÉTO PENĚŽENCE. Budete muset obnovit svou peněženku z mnemotechnického semínka. MUSÍTE TEDY ZÁLOHOVAT SVÉ MNEMONICKÉ SEMÉNKY! Kromě toho někdo s přístupem k vašemu mnemotechnickému semenu bude moci ukrást vaše finanční prostředky a obejít Cake 2FA.\n\n Pracovníci podpory Cake vám nebudou schopni pomoci, pokud ztratíte přístup k vašemu mnemotechnickému semenu, protože Cake je nevazební peněženka.", "setup_totp_recommended": "Nastavit TOTP (doporučeno)", "disable_buy": "Zakázat akci nákupu", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 7868553be..c7e104713 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Bitte geben Sie den TOTP-Code ein.", "add_secret_code": "Fügen Sie diesen Geheimcode einem anderen Gerät hinzu", "totp_secret_code": "TOTP-Geheimcode", - "important_note": "Wichtiger Hinweis", "setup_2fa_text": "Cake 2FA ist NICHT so sicher wie eine Cold Wallet. 2FA schützt vor grundlegenden Arten von Angriffen, z.B. wenn Ihr Freund Ihren Fingerabdruck verwendet, während Sie schlafen.\n\n Cake 2FA schützt NICHT vor einem kompromittierten Gerät durch einen raffinierten Angreifer.\n\n Wenn Sie den Zugriff auf Ihre 2FA-Codes verlieren , VERLIEREN SIE DEN ZUGANG ZU DIESEM WALLET. Sie müssen Ihre Wallet aus mnemonic Seed wiederherstellen. SIE MÜSSEN DESHALB IHRE MNEMONISCHEN SEEDS SICHERN! Außerdem kann jemand mit Zugriff auf Ihre mnemonischen Seed(s) Ihr Geld stehlen und Cake 2FA umgehen.\n\n Cake-Supportmitarbeiter können Ihnen nicht helfen, wenn Sie den Zugriff auf Ihre mnemonischen Seed(s) verlieren, da Cake Wallet eine Wallet ohne treuhänderische Verwahrung ist.", "setup_totp_recommended": "TOTP einrichten (empfohlen)", "disable_buy": "Kaufaktion deaktivieren", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index c3cd256d9..d5de6688f 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -628,7 +628,6 @@ "enter_totp_code": "Please enter the TOTP Code.", "add_secret_code": "Add this secret code to another device", "totp_secret_code": "TOTP Secret Code", - "important_note": "Important note", "setup_2fa_text": "Cake 2FA is NOT as secure as cold storage. 2FA protects against basic types of attacks, such as your friend providing your fingerprint while you are sleeping.\n\n Cake 2FA does NOT protect against a compromised device by a sophisticated attacker.\n\n If you lose access to your 2FA codes, YOU WILL LOSE ACCESS TO THIS WALLET. You will need to restore your wallet from mnemonic seed. YOU MUST THEREFORE BACK UP YOUR MNEMONIC SEEDS! Further, someone with access to your mnemonic seed(s) will be able to steal your funds, bypassing Cake 2FA.\n\n Cake support staff will be unable to assist you if you lose access to your mnemonic seed, since Cake is a noncustodial wallet.", "setup_totp_recommended": "Set up TOTP (Recommended)", "disable_buy": "Disable buy action", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4e624a9b4..765ca7074 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Ingrese el código TOTP.", "add_secret_code": "Agregue este código secreto a otro dispositivo", "totp_secret_code": "Código secreto TOTP", - "important_note": "Nota IMPORTANTE", "setup_2fa_text": "Cake 2FA NO es tan seguro como el almacenamiento en frío. 2FA protege contra tipos básicos de ataques, como cuando un amigo proporciona su huella digital mientras usted duerme.\n\n Cake 2FA NO protege contra un dispositivo comprometido por un atacante sofisticado.\n\n Si pierde el acceso a sus códigos 2FA , PERDERÁS EL ACCESO A ESTA BILLETERA. Deberá restaurar su billetera desde la semilla mnemotécnica. ¡POR LO TANTO, DEBE HACER UNA COPIA DE SEGURIDAD DE SUS SEMILLAS MNEMÓNICAS! Además, alguien con acceso a sus semillas mnemotécnicas podrá robar sus fondos, sin pasar por Cake 2FA.\n\n El personal de soporte de Cake no podrá ayudarlo si pierde el acceso a su semilla mnemotécnica, ya que Cake es un billetera sin custodia.", "setup_totp_recommended": "Configurar TOTP (Recomendado)", "disable_buy": "Desactivar acción de compra", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index d4d414029..1898071df 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Veuillez entrer le code TOTP.", "add_secret_code": "Configurer un autre appareil à l'aide de ce secret TOTP", "totp_secret_code": "Secret TOTP", - "important_note": "Note importante", "setup_2fa_text": "Cake 2FA (Authentification à 2 Facteurs) n'est PAS aussi sûr que le stockage à froid. Cake 2FA protège contre les attaques basiques, comme un ami fournissant votre empreinte digitale pendant que vous dormez.\n\n Cake 2FA ne protège PAS contre un appareil compromis par un attaquant sophistiqué.\n\n Si vous perdez l'accès à vos codes 2FA , VOUS PERDREZ L'ACCÈS À CE PORTEFEUILLE (WALLET). Vous devrez restaurer votre portefeuille à partir de sa phrase secrète (seed). VOUS DEVEZ DONC SAUVEGARDER VOTRE PHRASE SECRÈTE ! De plus, quelqu'un ayant accès à votre phrase secrète pourra voler vos fonds, en contournant Cake 2FA.\n\n Le personnel d'assistance de Cake ne pourra pas vous aider si vous perdez l'accès à votre phrase secrète, puisque Cake est un portefeuille non dépositaire (non custodial).", "setup_totp_recommended": "Configurer TOTP (recommandé)", "disable_buy": "Désactiver l'action d'achat", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 19467af09..156e4ed92 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -627,7 +627,6 @@ "enter_totp_code": "कृपया TOTP कोड दर्ज करें।", "add_secret_code": "इस गुप्त कोड को किसी अन्य डिवाइस में जोड़ें", "totp_secret_code": "टीओटीपी गुप्त कोड", - "important_note": "महत्वपूर्ण लेख", "setup_2fa_text": "केक 2FA कोल्ड स्टोरेज जितना सुरक्षित नहीं है। 2FA बुनियादी प्रकार के हमलों से बचाता है, जैसे कि आपका मित्र सोते समय आपको अपना फ़िंगरप्रिंट प्रदान करता है।\n\n Cake 2FA परिष्कृत हमलावर द्वारा किसी डिवाइस से छेड़छाड़ से रक्षा नहीं करता है।\n\n यदि आप अपने 2FA कोड तक पहुंच खो देते हैं , आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरणीय बीज से पुनर्स्थापित करने की आवश्यकता होगी। इसलिए आपको अपने स्मरणीय बीजों का बैकअप लेना चाहिए! इसके अलावा, आपके स्मरक बीज (बीजों) तक पहुंच रखने वाला कोई व्यक्ति केक 2FA को दरकिनार कर आपके धन की चोरी करने में सक्षम होगा। अप्रबंधित बटुआ।", "setup_totp_recommended": "टीओटीपी सेट अप करें (अनुशंसित)", "disable_buy": "खरीद कार्रवाई अक्षम करें", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 30eea10dc..9a14cd2d9 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Unesite TOTP kod.", "add_secret_code": "Dodajte ovaj tajni kod na drugi uređaj", "totp_secret_code": "TOTP tajni kod", - "important_note": "Važna nota", "setup_2fa_text": "Torta 2FA NIJE sigurna kao hladno skladište. 2FA štiti od osnovnih vrsta napada, kao što je vaš prijatelj koji vam daje otisak prsta dok spavate.\n\n Cake 2FA NE štiti od kompromitiranog uređaja od strane sofisticiranog napadača.\n\n Ako izgubite pristup svojim 2FA kodovima , IZGUBIT ĆETE PRISTUP OVOM NOVČANIKU. Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena. STOGA MORATE NAPRAVITI SIGURNOSNE KOPIJE SVOJIH MNEMONIČKIH SJEMENA! Nadalje, netko tko ima pristup vašem mnemoničkom seedu(ima) moći će ukrasti vaša sredstva, zaobilazeći Cake 2FA.\n\n Cake osoblje za podršku neće vam moći pomoći ako izgubite pristup svom mnemoničkom seedu, budući da je Cake neskrbnički novčanik.", "setup_totp_recommended": "Postavite TOTP (preporučeno)", "disable_buy": "Onemogući kupnju", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index c10feffbc..e6f8eb5bd 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -615,7 +615,6 @@ "enter_totp_code": "Masukkan Kode TOTP.", "add_secret_code": "Tambahkan kode rahasia ini ke perangkat lain", "totp_secret_code": "Kode Rahasia TOTP", - "important_note": "Catatan penting", "setup_2fa_text": "Cake 2FA TIDAK seaman cold storage. 2FA melindungi dari jenis serangan dasar, seperti teman Anda memberikan sidik jari saat Anda sedang tidur.\n\n Cake 2FA TIDAK melindungi dari perangkat yang disusupi oleh penyerang canggih.\n\n Jika Anda kehilangan akses ke kode 2FA , ANDA AKAN KEHILANGAN AKSES KE DOMPET INI. Anda perlu memulihkan dompet Anda dari benih mnemonik. OLEH KARENA ITU, ANDA HARUS MENYIMPAN BIJI MNEMONIK ANDA! Selanjutnya, seseorang yang memiliki akses ke benih mnemonik Anda akan dapat mencuri dana Anda, melewati Cake 2FA.\n\n Staf pendukung Cake tidak akan dapat membantu Anda jika Anda kehilangan akses ke benih mnemonik Anda, karena Cake adalah dompet tanpa hak asuh.", "setup_totp_recommended": "Siapkan TOTP (Disarankan)", "disable_buy": "Nonaktifkan tindakan beli", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index a13930666..fc4254599 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Inserisci il codice TOTP.", "add_secret_code": "Aggiungi questo codice segreto a un altro dispositivo", "totp_secret_code": "TOTP codice segreto", - "important_note": "Nota importante", "setup_2fa_text": "Cake 2FA NON è sicuro come la cella frigorifera. 2FA protegge da tipi di attacchi di base, come il tuo amico che fornisce la tua impronta digitale mentre dormi.\n\n Cake 2FA NON protegge da un dispositivo compromesso da un aggressore sofisticato.\n\n Se perdi l'accesso ai tuoi codici 2FA , PERDERAI L'ACCESSO A QUESTO PORTAFOGLIO. Dovrai ripristinare il tuo portafoglio dal seme mnemonico. DOVETE QUINDI SOSTITUIRE I VOSTRI SEMI MNEMONICI! Inoltre, qualcuno con accesso ai tuoi seed mnemonici sarà in grado di rubare i tuoi fondi, aggirando Cake 2FA.\n\n Il personale di supporto di Cake non sarà in grado di aiutarti se perdi l'accesso al tuo seed mnemonico, poiché Cake è un portafoglio non detentivo.", "setup_totp_recommended": "Imposta TOTP (consigliato)", "disable_buy": "Disabilita l'azione di acquisto", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 3e61dbd9d..b4aece35f 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -627,7 +627,6 @@ "enter_totp_code": "TOTPコードを入力してください。", "add_secret_code": "このシークレット コードを別のデバイスに追加する", "totp_secret_code": "TOTPシークレットコード", - "important_note": "重要な注意点", "setup_2fa_text": "Cake 2FA は、コールド ストレージほど安全ではありません。 2FA は、あなたが寝ているときに友人が指紋を提供するなどの基本的なタイプの攻撃から保護します。\n\n Cake 2FA は、巧妙な攻撃者による侵害されたデバイスから保護しません。\n\n 2FA コードにアクセスできなくなった場合、このウォレットにアクセスできなくなります。ニーモニック シードからウォレットを復元する必要があります。したがって、ニーモニック シードをバックアップする必要があります。さらに、あなたのニーモニック シードにアクセスできる誰かが、Cake 2FA をバイパスして、あなたの資金を盗むことができます。\n\n Cake は無印の財布。", "setup_totp_recommended": "TOTP を設定する (推奨)", "disable_buy": "購入アクションを無効にする", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index de09c65d1..e048ca2c5 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -627,7 +627,6 @@ "enter_totp_code": "TOTP 코드를 입력하세요.", "add_secret_code": "이 비밀 코드를 다른 장치에 추가", "totp_secret_code": "TOTP 비밀 코드", - "important_note": "중요 사항", "setup_2fa_text": "케이크 2FA는 냉장 보관만큼 안전하지 않습니다. 2FA는 당신이 잠자는 동안 친구가 지문을 제공하는 것과 같은 기본적인 유형의 공격으로부터 보호합니다.\n\n Cake 2FA는 정교한 공격자에 의해 손상된 장치로부터 보호하지 않습니다.\n\n 2FA 코드에 대한 액세스 권한을 잃으면 , 이 지갑에 대한 액세스 권한을 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다. 따라서 니모닉 시드를 백업해야 합니다! 또한 니모닉 시드에 액세스할 수 있는 사람이 Cake 2FA를 우회하여 자금을 훔칠 수 있습니다.\n\n 니모닉 시드에 대한 액세스 권한을 잃으면 Cake 지원 직원이 도와줄 수 없습니다. 비수탁 지갑.", "setup_totp_recommended": "TOTP 설정(권장)", "disable_buy": "구매 행동 비활성화", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 1853c0eff..f6593fa04 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -625,7 +625,6 @@ "enter_totp_code": "ကျေးဇူးပြု၍ TOTP ကုဒ်ကို ထည့်ပါ။", "add_secret_code": "ဤလျှို့ဝှက်ကုဒ်ကို အခြားစက်ပစ္စည်းသို့ ထည့်ပါ။", "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", - "important_note": "အရေးကြီးသောမှတ်ချက်", "setup_2fa_text": "ကိတ်မုန့် 2FA သည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။ 2FA သည် သင်အိပ်နေစဉ်တွင် သင့်သူငယ်ချင်းသည် သင့်လက်ဗွေရာကို ပေးဆောင်ခြင်းကဲ့သို့သော အခြေခံတိုက်ခိုက်မှုအမျိုးအစားများကို ကာကွယ်ပေးပါသည်။\n\n Cake 2FA သည် ခေတ်မီဆန်းပြားသော တိုက်ခိုက်သူ၏ အန္တရာယ်ပြုသည့်စက်ပစ္စည်းကို မကာကွယ်ပါ။\n\n သင်၏ 2FA ကုဒ်များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက၊ ဤပိုက်ဆံအိတ်ကို သင်ဝင်ရောက်ခွင့်ဆုံးရှုံးလိမ့်မည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။ ထို့ကြောင့် သင်၏ MNEMONIC မျိုးစေ့များကို အရန်သိမ်းထားရပါမည်။ ထို့အပြင်၊ သင်၏ mnemonic မျိုးစေ့(များ) ကို အသုံးပြုခွင့်ရှိသူတစ်ဦးက Cake 2FA ကိုကျော်ဖြတ်ကာ သင့်ရန်ပုံငွေများကို ခိုးယူနိုင်ပါမည်။\n\n ကိတ်မုန့်သည် သင့် mnemonic မျိုးစေ့သို့ ဝင်ရောက်ခွင့်ဆုံးရှုံးသွားပါက သင့်အား ကူညီပေးနိုင်မည်မဟုတ်ပါ၊ အထိန်းအချုပ်မရှိသော ပိုက်ဆံအိတ်။", "setup_totp_recommended": "TOTP ကို ​​စနစ်ထည့်သွင်းပါ (အကြံပြုထားသည်)", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a497c20ab..e5b4856d0 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Voer de TOTP-code in.", "add_secret_code": "Voeg deze geheime code toe aan een ander apparaat", "totp_secret_code": "TOTP-geheime code", - "important_note": "Belangrijke notitie", "setup_2fa_text": "Cake 2FA is NIET zo veilig als koude opslag. 2FA beschermt tegen basistypen aanvallen, zoals uw vriend die uw vingerafdruk geeft terwijl u slaapt.\n\n Cake 2FA biedt GEEN bescherming tegen een gecompromitteerd apparaat door een geavanceerde aanvaller.\n\n Als u de toegang tot uw 2FA-codes kwijtraakt , VERLIEST U DE TOEGANG TOT DEZE PORTEFEUILLE. U moet uw portemonnee herstellen van mnemonic seed. JE MOET DAAROM EEN BACK-UP MAKEN VAN JE MNEMONISCHE ZADEN! Verder kan iemand met toegang tot je geheugensteuntje(s) je geld stelen, waarbij Cake 2FA wordt omzeild.\n\n Het ondersteunend personeel van Cake kan je niet helpen als je de toegang tot je geheugensteuntje kwijtraakt, aangezien Cake een niet-bewaarbare portemonnee.", "setup_totp_recommended": "TOTP instellen (aanbevolen)", "disable_buy": "Koopactie uitschakelen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index dc69468bd..8f337210f 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Wprowadź kod TOTP.", "add_secret_code": "Dodaj ten tajny kod do innego urządzenia", "totp_secret_code": "Tajny kod TOTP", - "important_note": "Ważna uwaga", "setup_2fa_text": "Cake 2FA NIE jest tak bezpieczny jak przechowywanie w chłodni. 2FA chroni przed podstawowymi typami ataków, takimi jak udostępnienie odcisku palca przez znajomego podczas snu.\n\n Cake 2FA NIE chroni przed zhakowanym urządzeniem przez wyrafinowanego atakującego.\n\n Jeśli utracisz dostęp do swoich kodów 2FA , UTRACISZ DOSTĘP DO TEGO PORTFELA. Będziesz musiał przywrócić swój portfel z mnemonicznego materiału siewnego. DLATEGO MUSISZ ZROBIĆ KOPIĘ SWOICH NASION MNEMONICZNYCH! Co więcej, ktoś z dostępem do twoich mnemonicznych nasion będzie mógł ukraść twoje fundusze, omijając Cake 2FA.\n\n Personel pomocniczy Cake nie będzie mógł ci pomóc, jeśli stracisz dostęp do swojego mnemonicznego seeda, ponieważ Cake jest portfel niezabezpieczony.", "setup_totp_recommended": "Skonfiguruj TOTP (zalecane)", "disable_buy": "Wyłącz akcję kupna", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index c6d22ae23..8cc574362 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -626,7 +626,6 @@ "enter_totp_code": "Digite o código TOTP.", "add_secret_code": "Adicione este código secreto a outro dispositivo", "totp_secret_code": "Código Secreto TOTP", - "important_note": "Nota importante", "setup_2fa_text": "O Cake 2FA NÃO é tão seguro quanto o armazenamento a frio. O 2FA protege contra tipos básicos de ataques, como seu amigo fornecer sua impressão digital enquanto você está dormindo.\n\n O Cake 2FA NÃO protege contra um dispositivo comprometido por um invasor sofisticado.\n\n Se você perder o acesso aos seus códigos 2FA , VOCÊ PERDERÁ O ACESSO A ESTA CARTEIRA. Você precisará restaurar sua carteira da semente mnemônica. VOCÊ DEVE, PORTANTO, FAZER BACKUP DE SUAS SEMENTES MNEMÔNICAS! Além disso, alguém com acesso às suas sementes mnemônicas poderá roubar seus fundos, ignorando o Cake 2FA.\n\n A equipe de suporte do Cake não poderá ajudá-lo se você perder o acesso à sua semente mnemônica, pois o Cake é um carteira não custodial.", "setup_totp_recommended": "Configurar TOTP (recomendado)", "disable_buy": "Desativar ação de compra", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 50bef718d..e7178dc2e 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Пожалуйста, введите TOTP-код.", "add_secret_code": "Добавьте этот секретный код на другое устройство", "totp_secret_code": "Секретный код ТОТП", - "important_note": "Важная заметка", "setup_2fa_text": "Cake 2FA НЕ так безопасен, как холодное хранилище. Двухфакторная аутентификация защищает от основных типов атак, таких как отпечаток вашего друга, когда вы спите.\n\n Двухфакторная аутентификация Cake НЕ защищает от взлома устройства опытным злоумышленником.\n\n Если вы потеряете доступ к своим кодам двухфакторной аутентификации. , ВЫ ПОТЕРЯЕТЕ ДОСТУП К ЭТОМУ КОШЕЛЬКУ. Вам нужно будет восстановить свой кошелек из мнемонической семени. ПОЭТОМУ ВЫ ДОЛЖНЫ СОЗДАТЬ РЕЗЕРВНУЮ ВЕРСИЮ СВОИХ МНЕМОНИКОВ! Кроме того, кто-то, имеющий доступ к вашему мнемоническому семени, сможет украсть ваши средства, минуя Cake 2FA.\n\n Персонал службы поддержки Cake не сможет помочь вам, если вы потеряете доступ к своему мнемоническому семени, поскольку Cake — это некастодиальный кошелек.", "setup_totp_recommended": "Настроить TOTP (рекомендуется)", "disable_buy": "Отключить действие покупки", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 95a1cd406..2c7255e33 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -625,7 +625,6 @@ "enter_totp_code": "กรุณาใส่รหัสทีโอที", "add_secret_code": "เพิ่มรหัสลับนี้ไปยังอุปกรณ์อื่น", "totp_secret_code": "รหัสลับ TOTP", - "important_note": "โน๊ตสำคัญ", "setup_2fa_text": "Cake 2FA ไม่ปลอดภัยเท่าห้องเย็น 2FA ป้องกันการโจมตีประเภทพื้นฐาน เช่น เพื่อนของคุณให้ลายนิ้วมือขณะที่คุณนอนหลับ\n\n Cake 2FA ไม่ป้องกันอุปกรณ์ที่ถูกบุกรุกโดยผู้โจมตีที่เชี่ยวชาญ\n\n หากคุณสูญเสียการเข้าถึงรหัส 2FA ของคุณ คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยจำ คุณต้องสำรองเมล็ดความจำของคุณ! นอกจากนี้ ผู้ที่สามารถเข้าถึงเมล็ดช่วยจำของคุณจะสามารถขโมยเงินของคุณ โดยผ่าน Cake 2FA\n\n เจ้าหน้าที่ช่วยเหลือของ Cake จะไม่สามารถช่วยเหลือคุณได้ หากคุณสูญเสียการเข้าถึงเมล็ดช่วยจำ เนื่องจาก Cake เป็น กระเป๋าสตางค์ที่ไม่เป็นผู้ดูแล", "setup_totp_recommended": "ตั้งค่า TOTP (แนะนำ)", "disable_buy": "ปิดการใช้งานการซื้อ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 960432a1b..03ca14497 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -628,7 +628,6 @@ "enter_totp_code": "Mangyaring ipasok ang TOTP code.", "add_secret_code": "Idagdag ang lihim na code na ito sa isa pang aparato", "totp_secret_code": "TOTP Secret Code", - "important_note": "Mahalagang paalaala", "setup_2fa_text": "Ang cake 2FA ay hindi ligtas tulad ng malamig na imbakan. Pinoprotektahan ng 2FA laban sa mga pangunahing uri ng pag -atake, tulad ng iyong kaibigan na nagbibigay ng iyong fingerprint habang natutulog ka.\n\n Hindi pinoprotektahan ng cake 2FA laban sa isang nakompromiso na aparato ng isang sopistikadong umaatake.\n\n Kung nawalan ka ng pag -access sa iyong 2FA code, mawawalan ka ng access sa pitaka na ito. Kakailanganin mong ibalik ang iyong pitaka mula sa binhi ng mnemonic. Dapat mong i -back up ang iyong mga buto ng mnemonic! Dagdag pa, ang isang tao na may access sa iyong (mga) binhi ng mnemonic ay maaaring magnakaw ng iyong mga pondo, na lumampas sa cake 2FA.\n\n Ang mga kawani ng suporta sa cake ay hindi makakatulong sa iyo kung nawalan ka ng pag -access sa iyong mnemonic seed, dahil ang cake ay isang noncustodial wallet.", "setup_totp_recommended": "I -set up ang TOTP (inirerekomenda)", "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 1b7982504..2cd0691a1 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -625,7 +625,6 @@ "enter_totp_code": "Lütfen TOTP Kodunu giriniz.", "add_secret_code": "Bu gizli kodu başka bir cihaza ekleyin", "totp_secret_code": "TOTP Gizli Kodu", - "important_note": "Önemli Not", "setup_2fa_text": "Cake 2FA, soğuk hava deposu kadar güvenli DEĞİLDİR. 2FA, siz uyurken arkadaşınızın parmak izinizi sağlaması gibi temel saldırı türlerine karşı koruma sağlar.\n\n Cake 2FA, gelişmiş bir saldırgan tarafından güvenliği ihlal edilmiş bir cihaza karşı koruma SAĞLAMAZ.\n\n 2FA kodlarınıza erişimi kaybederseniz , BU CÜZDANA ERİŞİMİNİZİ KAYBEDECEKSİNİZ. Mnemonic seed'den cüzdanınızı geri yüklemeniz gerekecek. BU NEDENLE HATIRLAYICI TOHUMLARINIZI YEDEKLEMELİSİNİZ! Ayrıca anımsatıcı tohumlarınıza erişimi olan biri, Cake 2FA'yı atlayarak paranızı çalabilir.\n\n Cake, anımsatıcı tohumlarınıza erişimi kaybederseniz size yardımcı olamaz, çünkü Cake bir saklama dışı cüzdan.", "setup_totp_recommended": "TOTP'yi kurun (Önerilir)", "disable_buy": "Satın alma işlemini devre dışı bırak", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 849542e6f..5d5a2bfbe 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -627,7 +627,6 @@ "enter_totp_code": "Будь ласка, введіть код TOTP.", "add_secret_code": "Додайте цей секретний код на інший пристрій", "totp_secret_code": "Секретний код TOTP", - "important_note": "Важливе зауваження", "setup_2fa_text": "Торт 2FA НЕ такий безпечний, як холодне зберігання. 2FA захищає від основних типів атак, наприклад ваш друг надає ваш відбиток пальця, поки ви спите.\n\n Cake 2FA НЕ захищає від скомпрометованого пристрою досвідченим зловмисником.\n\n Якщо ви втратите доступ до своїх кодів 2FA , ВИ ВТРАТИТЕ ДОСТУП ДО ЦЬОГО ГАМАНЦЯ. Вам потрібно буде відновити свій гаманець з мнемонічного коду. ТОМУ ВИ ПОВИННІ СТВОРИТИ РЕЗЕРВНУ КОПІЮ СВОЇХ МНЕМОНІЧНИХ НАСІН! Крім того, хтось із доступом до ваших мнемонічних початкових значень зможе викрасти ваші кошти, оминаючи Cake 2FA.\n\n Співробітники служби підтримки Cake не зможуть вам допомогти, якщо ви втратите доступ до своїх мнемонічних вихідних даних, оскільки Cake є гаманець без опіки.", "setup_totp_recommended": "Налаштувати TOTP (рекомендовано)", "disable_buy": "Вимкнути дію покупки", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 0b7e4c0a7..62ce60061 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -619,7 +619,6 @@ "enter_totp_code": "براہ کرم TOTP کوڈ درج کریں۔", "add_secret_code": "اس خفیہ کوڈ کو کسی اور ڈیوائس میں شامل کریں۔", "totp_secret_code": "TOTP خفیہ کوڈ", - "important_note": "اہم نوٹ", "setup_2fa_text": "کیک 2FA کولڈ اسٹوریج کی طرح محفوظ نہیں ہے۔ 2FA بنیادی قسم کے حملوں سے حفاظت کرتا ہے، جیسے کہ آپ کا دوست آپ کے سوتے وقت آپ کے فنگر پرنٹ فراہم کرتا ہے۔\n\n کیک 2FA کسی جدید حملہ آور کے ذریعے سمجھوتہ کرنے والے آلہ سے حفاظت نہیں کرتا ہے۔\n\n اگر آپ اپنے 2FA کوڈز تک رسائی کھو دیتے ہیں ، آپ اس بٹوے تک رسائی سے محروم ہو جائیں گے۔ آپ کو یادداشت کے بیج سے اپنے بٹوے کو بحال کرنے کی ضرورت ہوگی۔ اس لیے آپ کو اپنے یادداشت کے بیجوں کا بیک اپ لینا چاہیے! اس کے علاوہ، آپ کے یادداشت کے بیج تک رسائی رکھنے والا کوئی شخص کیک 2FA کو نظرانداز کرتے ہوئے آپ کے فنڈز چرا سکے گا۔\n\n اگر آپ اپنے یادداشت کے بیج تک رسائی کھو دیتے ہیں تو کیک کا معاون عملہ آپ کی مدد نہیں کر سکے گا، کیونکہ کیک ایک ہے غیر نگہداشت پرس.", "setup_totp_recommended": "TOTP ترتیب دیں (تجویز کردہ)", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 57962b38e..e0bc8a0ef 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -621,7 +621,6 @@ "enter_totp_code": "Jọwọ pọ koodu TOTP.", "add_secret_code": "Fọya koodu iye yii si eto miiran", "totp_secret_code": "Koodu iye TOTP", - "important_note": "Iwọ nikan nipasẹ iwe iṣẹ kan", "setup_2fa_text": "Cake 2FA kii ṣe nipasẹ aisan tabi ni akoso aisan. 2FA ti ṣe pada ninu awọn iṣẹ pataki, bi atilẹyin ti o fun iṣẹ rẹ ti o ti jẹ saanu.\n\n Cake 2FA kii ṣe pada ninu atilẹyin ti o ti ba alabara kan ti o sise gidi gan.\n\n Ti o ba pọ akosile rẹ 2FA, O YOO RI ATOJU SI IWE IWE NA. O yoo nilo lati yan pẹlu iwe iwe ni o ba ṣe iṣẹ rẹ. O ni aṣẹ iru ki o gba asise akojọ iwe iwe rẹ! Nitori a ko ni aṣẹ pẹlu ohun ti o ba ṣe iṣẹ rẹ lati yan pẹlu akojọ iwe iwe rẹ, nitori Cake ni iwe iwe ti ko se iṣẹ itumọ.", "setup_totp_recommended": "Sọ TOTP (Kẹṣọdọ)", "disable_buy": "Ko iṣọrọ ọja", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 0862f20e2..2ad656317 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -626,7 +626,6 @@ "enter_totp_code": "请输入 TOTP 代码。", "add_secret_code": "将此密码添加到另一台设备", "totp_secret_code": "TOTP密码", - "important_note": "重要的提示", "setup_2fa_text": "Cake 2FA 不如冷藏安全。 2FA 可防止基本类型的攻击,例如您的朋友在您睡觉时提供您的指纹。\n\n Cake 2FA 无法防止老练的攻击者破坏设备。\n\n 如果您无法访问您的 2FA 代码, 您将无法访问此钱包。您将需要从助记词种子恢复您的钱包。因此,您必须备份您的助记词种子!此外,有权访问您的助记种子的人将能够绕过 Cake 2FA 窃取您的资金。\n\n 如果您无法访问您的助记种子,Cake 支持人员将无法帮助您,因为 Cake 是一个非托管钱包。", "setup_totp_recommended": "设置 TOTP(推荐)", "disable_buy": "禁用购买操作", From 7fe1091b4c16f01bd47a160f3c6c6e5dc1555778 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 23 Nov 2023 19:33:21 +0200 Subject: [PATCH 04/14] fix text --- lib/src/screens/seed/warning_page.dart | 43 ++++++++-------- lib/src/screens/setup_2fa/setup_2fa.dart | 49 +++++++++++-------- .../screens/setup_2fa/setup_2fa_qr_page.dart | 2 +- res/values/strings_en.arb | 6 ++- 4 files changed, 57 insertions(+), 43 deletions(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index cd7c3b1f6..7bd87113b 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -30,9 +30,6 @@ class WarningPage extends BasePage { Widget body(BuildContext context) { final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; - final text = - "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage. If you lose access to your 2FA app or passkeys, you WILL lose access to this wallet. You will need to restore your wallet from the mnemonic seed. Cake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds. Before using Cake 2FA, we recommend reading through the guide here."; - return WillPopScope( onWillPop: () async => false, child: Container( @@ -44,29 +41,35 @@ class WarningPage extends BasePage { child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - ConstrainedBox( - constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), - child: AspectRatio(aspectRatio: 1, child: image), + Expanded( + child: ConstrainedBox( + constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), + child: AspectRatio(aspectRatio: 1, child: image), + ), ), - Padding( - padding: EdgeInsets.all(10), - child: Text( - isPreSeedPage - ? S.of(context).pre_seed_description(seedPhraseLength.toString()) - : text, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.normal, - color: isPreSeedPage - ? Theme.of(context).extension()!.secondaryTextColor - : Theme.of(context).extension()!.titleColor)), + Expanded( + child: Padding( + padding: EdgeInsets.all(10), + child: Text( + isPreSeedPage + ? S.of(context).pre_seed_description(seedPhraseLength.toString()) + : S.of(context).setup_warning_2fa_text, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.normal, + color: isPreSeedPage + ? Theme.of(context).extension()!.secondaryTextColor + : Theme.of(context).extension()!.titleColor)), + ), ), PrimaryButton( onPressed: () => isPreSeedPage ? Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true) : Navigator.of(context).popAndPushNamed(Routes.setup_2faPage), - text: isPreSeedPage ? S.of(context).pre_seed_button_text : 'Neeeeeeee', + text: isPreSeedPage + ? S.of(context).pre_seed_button_text + : S.of(context).understand, color: Theme.of(context).primaryColor, textColor: Colors.white) ], diff --git a/lib/src/screens/setup_2fa/setup_2fa.dart b/lib/src/screens/setup_2fa/setup_2fa.dart index 9d8ffe839..d38de1f8c 100644 --- a/lib/src/screens/setup_2fa/setup_2fa.dart +++ b/lib/src/screens/setup_2fa/setup_2fa.dart @@ -14,23 +14,27 @@ class Setup2FAPage extends BasePage { final Setup2FAViewModel setup2FAViewModel; @override - String get title => S.current.setup_2fa; + String get title => 'CAKE 2FA'; @override Widget body(BuildContext context) { final cake2FAGuideTitle = 'Cake 2FA Guide'; final cake2FAGuideUri = Uri.parse('https://guides.cakewallet.com/docs/advanced-features/authentication'); - return SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - ConstrainedBox( + return Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + flex: 2, + child: ConstrainedBox( constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), child: AspectRatio(aspectRatio: 1, child: Image.asset('assets/images/setup_2fa_img.png')), ), - Padding( + ), + Expanded( + flex: 2, + child: Padding( padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), child: Text( S.current.setup_2fa_text, @@ -43,20 +47,25 @@ class Setup2FAPage extends BasePage { ), ), ), - SizedBox(height: 56), - SettingsCellWithArrow( - title: S.current.setup_totp_recommended, - handler: (_) { - setup2FAViewModel.generateSecretKey(); - return Navigator.of(context).pushReplacementNamed(Routes.setup_2faQRPage); - }, + ), + Expanded( + child: Column( + children: [ + SettingsCellWithArrow( + title: S.current.setup_totp_recommended, + handler: (_) { + setup2FAViewModel.generateSecretKey(); + return Navigator.of(context).pushReplacementNamed(Routes.setup_2faQRPage); + }, + ), + StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), + SettingsCellWithArrow( + title: cake2FAGuideTitle, handler: (_) => _launchUrl(cake2FAGuideUri)), + StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), + ], ), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), - SettingsCellWithArrow( - title: cake2FAGuideTitle, handler: (_) => _launchUrl(cake2FAGuideUri)), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), - ], - ), + ), + ], ); } diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index 620f13670..237107783 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -36,7 +36,7 @@ class Setup2FAQRPage extends BasePage { children: [ Spacer(), Text( - S.current.add_secret_code, + S.current.scan_qr_on_device, style: TextStyle( fontSize: 14, fontWeight: FontWeight.w700, diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index d5de6688f..24fa9f9e6 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -626,9 +626,11 @@ "totp_verification_success": "Verification Successful!", "totp_2fa_failure": "Incorrect code. Please try a different code or generate a new secret key. Use a compatible 2FA app that supports 8-digit codes and SHA512.", "enter_totp_code": "Please enter the TOTP Code.", - "add_secret_code": "Add this secret code to another device", + "scan_qr_on_device": "Scan this QR code on another device", + "add_secret_code": "Or, add this secret code to an authenticator app", "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Cake 2FA is NOT as secure as cold storage. 2FA protects against basic types of attacks, such as your friend providing your fingerprint while you are sleeping.\n\n Cake 2FA does NOT protect against a compromised device by a sophisticated attacker.\n\n If you lose access to your 2FA codes, YOU WILL LOSE ACCESS TO THIS WALLET. You will need to restore your wallet from mnemonic seed. YOU MUST THEREFORE BACK UP YOUR MNEMONIC SEEDS! Further, someone with access to your mnemonic seed(s) will be able to steal your funds, bypassing Cake 2FA.\n\n Cake support staff will be unable to assist you if you lose access to your mnemonic seed, since Cake is a noncustodial wallet.", + "setup_2fa_text": "Cake 2FA works through TOTP as the second authentication factor.\n\nCake 2FA's TOTP requires SHA-512 and 8 digit support; this provides increased security. More information and supported apps can be found in the guide here.", + "setup_warning_2fa_text": "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage.\n If you lose access to your 2FA app or passkeys, you WILL lose access to this wallet.\n You will need to restore your wallet from the mnemonic seed.\n Cake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds. Before using Cake 2FA, we recommend reading through the guide.", "setup_totp_recommended": "Set up TOTP (Recommended)", "disable_buy": "Disable buy action", "disable_sell": "Disable sell action", From d5b9af1c193a130264b4a1d8336ac2f9a23126ab Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 13 Dec 2023 13:55:22 +0200 Subject: [PATCH 05/14] update localization --- lib/src/screens/setup_2fa/setup_2fa_qr_page.dart | 3 +-- res/values/strings_ar.arb | 9 ++++++--- res/values/strings_bg.arb | 9 ++++++--- res/values/strings_cs.arb | 9 ++++++--- res/values/strings_de.arb | 9 ++++++--- res/values/strings_en.arb | 3 ++- res/values/strings_es.arb | 9 ++++++--- res/values/strings_fr.arb | 13 +++++++------ res/values/strings_ha.arb | 7 ++++++- res/values/strings_hi.arb | 9 ++++++--- res/values/strings_hr.arb | 9 ++++++--- res/values/strings_id.arb | 9 ++++++--- res/values/strings_it.arb | 9 ++++++--- res/values/strings_ja.arb | 9 ++++++--- res/values/strings_ko.arb | 9 ++++++--- res/values/strings_my.arb | 9 ++++++--- res/values/strings_nl.arb | 9 ++++++--- res/values/strings_pl.arb | 9 ++++++--- res/values/strings_pt.arb | 9 ++++++--- res/values/strings_ru.arb | 9 ++++++--- res/values/strings_th.arb | 9 ++++++--- res/values/strings_tl.arb | 9 ++++++--- res/values/strings_tr.arb | 9 ++++++--- res/values/strings_uk.arb | 9 ++++++--- res/values/strings_ur.arb | 9 ++++++--- res/values/strings_yo.arb | 9 ++++++--- res/values/strings_zh.arb | 9 ++++++--- 27 files changed, 154 insertions(+), 79 deletions(-) diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index 237107783..408e9e14d 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -27,7 +27,6 @@ class Setup2FAQRPage extends BasePage { Widget body(BuildContext context) { final copyImage = Image.asset('assets/images/copy_content.png', height: 16, width: 16, color: Theme.of(context).extension()!.titleColor); - final cake2FAHowToUseTitle = 'How to use'; final cake2FAHowToUseUrl = Uri.parse( 'https://guides.cakewallet.com/docs/advanced-features/authentication/#enabling-cake-2fa'); return Padding( @@ -183,7 +182,7 @@ class Setup2FAQRPage extends BasePage { mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, children: [ - Text(cake2FAHowToUseTitle, + Text(S.current.how_to_use, style: TextStyle( decoration: TextDecoration.underline, fontSize: 16, diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 207e95968..7119d1796 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -621,9 +621,9 @@ "totp_verification_success": "تم التحقق بنجاح!", "totp_2fa_failure": "شفرة خاطئة. يرجى تجربة رمز مختلف أو إنشاء مفتاح سري جديد. استخدم تطبيق 2FA متوافقًا يدعم الرموز المكونة من 8 أرقام و SHA512.", "enter_totp_code": "الرجاء إدخال رمز TOTP.", - "add_secret_code": "أضف هذا الرمز السري إلى جهاز آخر", + "add_secret_code": " ﺔﻗﺩﺎﺼﻤﻟﺍ ﻖﻴﺒﻄﺗ ﻰﻟﺇ ﻱﺮﺴﻟﺍ ﺰﻣﺮﻟﺍ ﺍﺬﻫ ﻒﺿﺃ ﻭﺃ", "totp_secret_code": "كود TOTP السري", - "setup_2fa_text": "كعكة 2FA ليست آمنة مثل التخزين البارد. تحمي 2FA من الأنواع الأساسية للهجمات ، مثل قيام صديقك بتقديم بصمة إصبعك أثناء نومك. لا تحمي Cake 2FA من جهاز مخترق من قِبل مهاجم متطور. إذا فقدت الوصول إلى رموز 2FA الخاصة بك ، ستفقد إمكانية الوصول إلى هذه المحفظة. سوف تحتاج إلى استعادة محفظتك من بذرة ذاكري. يجب عليك بالتالي الاحتفاظ بنسخة احتياطية من بذور الذاكرة الخاصة بك! علاوة على ذلك ، سيتمكن أي شخص لديه حق الوصول إلى بذرة (بذور) ذاكري من سرقة أموالك ، متجاوزًا Cake 2FA. لن يتمكن فريق دعم الكيك من مساعدتك إذا فقدت الوصول إلى بذرتك ، نظرًا لأن Cake هي المحفظة غير الحافظة.", + "setup_2fa_text": " .ﻲﻧﺎﺜﻟﺍ ﺔﻗﺩﺎﺼﻤﻟﺍ ﻞﻣﺎﻌﻛ TOTP ﻝﻼﺧ ﻦﻣ Cake 2FA ﻞﻤﻌﻳ", "setup_totp_recommended": "إعداد TOTP (موصى به)", "disable_buy": "تعطيل إجراء الشراء", "disable_sell": "قم بتعطيل إجراء البيع", @@ -737,5 +737,8 @@ "unavailable_balance": "ﺮﻓﻮﺘﻣ ﺮﻴﻏ ﺪﻴﺻﺭ", "unavailable_balance_description": ".ﺎﻫﺪﻴﻤﺠﺗ ءﺎﻐﻟﺇ ﺭﺮﻘﺗ ﻰﺘﺣ ﺕﻼﻣﺎﻌﻤﻠﻟ ﻝﻮﺻﻮﻠﻟ ﺔﻠﺑﺎﻗ ﺮﻴﻏ ﺓﺪﻤﺠﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﻞﻈﺗ ﺎﻤﻨﻴﺑ ،ﺎﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻣﺎﻌﻤﻟﺍ ﻝﺎﻤﺘﻛﺍ ﺩﺮﺠﻤﺑ ﺔﺣﺎﺘﻣ ﺔﻠﻔﻘﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﺢﺒﺼﺘﺳ .ﻚﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻤﻌﻟﺍ ﻲﻓ ﻢﻜﺤﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻂﺸﻧ ﻞﻜﺸﺑ ﺎﻫﺪﻴﻤﺠﺘﺑ ﺖﻤﻗ", "unspent_change": "يتغير", - "tor_connection": "ﺭﻮﺗ ﻝﺎﺼﺗﺍ" + "tor_connection": "ﺭﻮﺗ ﻝﺎﺼﺗﺍ", + "setup_warning_2fa_text": ".ﺩﺭﺎﺒﻟﺍ ﻦﻳﺰﺨﺘﻟﺍ ﻞﺜﻣ ﺔﻨﻣﺁ ﺖﺴﻴﻟ ﺎﻬﻧﺇ .ﺔﻈﻔﺤﻤﻟﺍ ﻲﻓ ﺔﻨﻴﻌﻣ ﺕﺍءﺍﺮﺟﻹ ﺔﻴﻧﺎﺛ ﺔﻗﺩﺎﺼﻣ ﺔﺑﺎﺜ", + "scan_qr_on_device": " ﺮﺧﺁ ﺯﺎﻬﺟ ﻰﻠﻋ ﺎﻴًﺋﻮﺿ ﺍﺬﻫ ﺔﻌﻳﺮﺴﻟﺍ ﺔﺑﺎﺠﺘﺳﻻﺍ ﺰﻣﺭ ﺢﺴﻤﺑ ﻢﻗ", + "how_to_use": " ﻞﻤﻌﺘﺴﺗ ﻒﻴﻛ" } diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index d253d19f3..536907a85 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -617,9 +617,9 @@ "totp_verification_success": "Проверката е успешна!", "totp_2fa_failure": "Грешен код. Моля, опитайте с различен код или генерирайте нов таен ключ. Използвайте съвместимо 2FA приложение, което поддържа 8-цифрени кодове и SHA512.", "enter_totp_code": "Моля, въведете TOTP кода.", - "add_secret_code": "Добавете този таен код към друго устройство", + "add_secret_code": "Или добавете този таен код към приложение за удостоверяване", "totp_secret_code": "TOTP таен код", - "setup_2fa_text": "Тортата 2FA НЕ е толкова сигурна, колкото хладилното съхранение. 2FA защитава срещу основни видове атаки, като например вашият приятел да предостави вашия пръстов отпечатък, докато спите.\n\n Cake 2FA НЕ защитава срещу компрометирано устройство от сложен хакер.\n\n Ако загубите достъп до своите 2FA кодове , ЩЕ ЗАГУБИТЕ ДОСТЪП ДО ТОЗИ ПОРТФЕЙЛ. Ще трябва да възстановите портфейла си от мнемонично семе. ЗАТОВА ТРЯБВА ДА НАПРАВИТЕ РЕЗЕРВНО КОПИЕ НА ВАШИТЕ МНЕМОНИЧНИ СЕМЕНА! Освен това, някой с достъп до вашите мнемонични начални точки ще може да открадне вашите средства, заобикаляйки Cake 2FA.\n\n Персоналът по поддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите мнемонични начални стойности, тъй като Cake е портфейл без попечителство.", + "setup_2fa_text": "Cake 2FA работи чрез TOTP като втори фактор за удостоверяване.\n\nTOTP на Cake 2FA изисква SHA-512 и поддръжка на 8 цифри; това осигурява повишена сигурност. Повече информация и поддържани приложения можете да намерите в ръководството тук.", "setup_totp_recommended": "Настройка на TOTP (препоръчително)", "disable_buy": "Деактивирайте действието за покупка", "disable_sell": "Деактивирайте действието за продажба", @@ -733,5 +733,8 @@ "unavailable_balance": "Неналично салдо", "unavailable_balance_description": "Неналично салдо: Тази обща сума включва средства, които са заключени в чакащи транзакции и тези, които сте замразили активно в настройките за контрол на монетите. Заключените баланси ще станат достъпни, след като съответните им транзакции бъдат завършени, докато замразените баланси остават недостъпни за транзакции, докато не решите да ги размразите.", "unspent_change": "Промяна", - "tor_connection": "Tor връзка" + "tor_connection": "Tor връзка", + "setup_warning_2fa_text": "Cake 2FA е второ удостоверяване за определени действия в портфейла. НЕ е толкова сигурно, колкото хладилното съхранение.\n Ако загубите достъп до вашето 2FA приложение или пароли, ЩЕ загубите достъп до този портфейл.\n Ще трябва да възстановите портфейла си от мнемоничното семе.\n Поддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите 2FA или мнемонични семена. Преди да използвате Cake 2FA, препоръчваме да прочетете ръководството.", + "scan_qr_on_device": "Сканирайте този QR код на друго устройство", + "how_to_use": "Как да използвам" } diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 1bc65f213..99fb6d3e3 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -617,9 +617,9 @@ "totp_verification_success": "Ověření proběhlo úspěšně!", "totp_2fa_failure": "Nesprávný kód. Zkuste prosím jiný kód nebo vygenerujte nový tajný klíč. Použijte kompatibilní aplikaci 2FA, která podporuje 8místné kódy a SHA512.", "enter_totp_code": "Zadejte kód TOTP.", - "add_secret_code": "Přidejte tento tajný kód do jiného zařízení", + "add_secret_code": "Nebo přidejte tento tajný kód do ověřovací aplikace", "totp_secret_code": "Tajný kód TOTP", - "setup_2fa_text": "Cake 2FA NENÍ tak bezpečný jako skladování v chladu. 2FA chrání před základními typy útoků, jako je váš přítel, který vám poskytne otisk prstu, když spíte.\n\n Cake 2FA nechrání před napadením zařízení sofistikovaným útočníkem.\n\n Pokud ztratíte přístup ke svým kódům 2FA , ZTRÁTÍTE PŘÍSTUP K TÉTO PENĚŽENCE. Budete muset obnovit svou peněženku z mnemotechnického semínka. MUSÍTE TEDY ZÁLOHOVAT SVÉ MNEMONICKÉ SEMÉNKY! Kromě toho někdo s přístupem k vašemu mnemotechnickému semenu bude moci ukrást vaše finanční prostředky a obejít Cake 2FA.\n\n Pracovníci podpory Cake vám nebudou schopni pomoci, pokud ztratíte přístup k vašemu mnemotechnickému semenu, protože Cake je nevazební peněženka.", + "setup_2fa_text": "Cake 2FA funguje přes TOTP jako druhý autentizační faktor.\n\nTOTP Cake 2FA vyžaduje SHA-512 a podporu 8 číslic; to poskytuje zvýšenou bezpečnost. Další informace a podporované aplikace naleznete v průvodci zde.", "setup_totp_recommended": "Nastavit TOTP (doporučeno)", "disable_buy": "Zakázat akci nákupu", "disable_sell": "Zakázat akci prodeje", @@ -733,5 +733,8 @@ "unavailable_balance": "Nedostupný zůstatek", "unavailable_balance_description": "Nedostupný zůstatek: Tento součet zahrnuje prostředky, které jsou uzamčeny v nevyřízených transakcích a ty, které jste aktivně zmrazili v nastavení kontroly mincí. Uzamčené zůstatky budou k dispozici po dokončení příslušných transakcí, zatímco zmrazené zůstatky zůstanou pro transakce nepřístupné, dokud se nerozhodnete je uvolnit.", "unspent_change": "Změna", - "tor_connection": "Připojení Tor" + "tor_connection": "Připojení Tor", + "setup_warning_2fa_text": "Cake 2FA je druhá autentizace pro určité akce v peněžence. NENÍ tak bezpečný jako skladování v chladu.\n Pokud ztratíte přístup ke své aplikaci 2FA nebo přístupovým klíčům, ztratíte přístup k této peněžence.\n Budete muset obnovit svou peněženku z mnemotechnického semínka.\n Podpora dortů vám nebude schopna pomoci, pokud ztratíte přístup ke svým 2FA nebo mnemotechnickým semenům. Před použitím Cake 2FA doporučujeme přečíst si průvodce.", + "scan_qr_on_device": "Naskenujte tento QR kód na jiném zařízení", + "how_to_use": "Jak používat" } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 41488a6f9..3e35f2a2a 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Verifizierung erfolgreich!", "totp_2fa_failure": "Falscher Code. Bitte versuchen Sie es mit einem anderen Code oder generieren Sie einen neuen geheimen Schlüssel. Verwenden Sie eine kompatible 2FA-App, die 8-stellige Codes und SHA512 unterstützt.", "enter_totp_code": "Bitte geben Sie den TOTP-Code ein.", - "add_secret_code": "Fügen Sie diesen Geheimcode einem anderen Gerät hinzu", + "add_secret_code": "Oder fügen Sie diesen Geheimcode einer Authentifizierungs-App hinzu", "totp_secret_code": "TOTP-Geheimcode", - "setup_2fa_text": "Cake 2FA ist NICHT so sicher wie eine Cold Wallet. 2FA schützt vor grundlegenden Arten von Angriffen, z.B. wenn Ihr Freund Ihren Fingerabdruck verwendet, während Sie schlafen.\n\n Cake 2FA schützt NICHT vor einem kompromittierten Gerät durch einen raffinierten Angreifer.\n\n Wenn Sie den Zugriff auf Ihre 2FA-Codes verlieren , VERLIEREN SIE DEN ZUGANG ZU DIESEM WALLET. Sie müssen Ihre Wallet aus mnemonic Seed wiederherstellen. SIE MÜSSEN DESHALB IHRE MNEMONISCHEN SEEDS SICHERN! Außerdem kann jemand mit Zugriff auf Ihre mnemonischen Seed(s) Ihr Geld stehlen und Cake 2FA umgehen.\n\n Cake-Supportmitarbeiter können Ihnen nicht helfen, wenn Sie den Zugriff auf Ihre mnemonischen Seed(s) verlieren, da Cake Wallet eine Wallet ohne treuhänderische Verwahrung ist.", + "setup_2fa_text": "Cake 2FA funktioniert über TOTP als zweiten Authentifizierungsfaktor.\n\nDas TOTP von Cake 2FA erfordert SHA-512 und 8-stellige Unterstützung; Dies sorgt für erhöhte Sicherheit. Weitere Informationen und unterstützte Apps finden Sie im Leitfaden hier.", "setup_totp_recommended": "TOTP einrichten (empfohlen)", "disable_buy": "Kaufaktion deaktivieren", "disable_sell": "Verkaufsaktion deaktivieren", @@ -741,5 +741,8 @@ "unavailable_balance": "Nicht verfügbares Guthaben", "unavailable_balance_description": "Nicht verfügbares Guthaben: Diese Summe umfasst Gelder, die in ausstehenden Transaktionen gesperrt sind, und solche, die Sie in Ihren Münzkontrolleinstellungen aktiv eingefroren haben. Gesperrte Guthaben werden verfügbar, sobald die entsprechenden Transaktionen abgeschlossen sind, während eingefrorene Guthaben für Transaktionen nicht zugänglich bleiben, bis Sie sich dazu entschließen, sie wieder freizugeben.", "unspent_change": "Wechselgeld", - "tor_connection": "Tor-Verbindung" + "tor_connection": "Tor-Verbindung", + "setup_warning_2fa_text": "Cake 2FA ist eine zweite Authentifizierung für bestimmte Aktionen im Wallet. Es ist NICHT so sicher wie eine Kühllagerung.\n Wenn Sie den Zugriff auf Ihre 2FA-App oder Ihre Passkeys verlieren, verlieren Sie auch den Zugriff auf dieses Wallet.\n Sie müssen Ihr Wallet aus dem mnemonischen Seed wiederherstellen.\n Der Cake-Support kann Ihnen nicht weiterhelfen, wenn Sie den Zugriff auf Ihre 2FA- oder Mnemonik-Seeds verlieren. Bevor Sie Cake 2FA verwenden, empfehlen wir Ihnen, die Anleitung durchzulesen.", + "scan_qr_on_device": "Scannen Sie diesen QR-Code auf einem anderen Gerät", + "how_to_use": "Wie benutzt man" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 54a78863f..35c2ef890 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -744,5 +744,6 @@ "unavailable_balance": "Unavailable balance", "unavailable_balance_description": "Unavailable Balance: This total includes funds that are locked in pending transactions and those you have actively frozen in your coin control settings. Locked balances will become available once their respective transactions are completed, while frozen balances remain inaccessible for transactions until you decide to unfreeze them.", "unspent_change": "Change", - "tor_connection": "Tor connection" + "tor_connection": "Tor connection", + "how_to_use": "How to use" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 41a13288e..446a8f376 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -625,9 +625,9 @@ "totp_verification_success": "¡Verificación exitosa!", "totp_2fa_failure": "Código incorrecto. Intente con un código diferente o genere una nueva clave secreta. Use una aplicación 2FA compatible que admita códigos de 8 dígitos y SHA512.", "enter_totp_code": "Ingrese el código TOTP.", - "add_secret_code": "Agregue este código secreto a otro dispositivo", + "add_secret_code": "O agregue este código secreto a una aplicación de autenticación", "totp_secret_code": "Código secreto TOTP", - "setup_2fa_text": "Cake 2FA NO es tan seguro como el almacenamiento en frío. 2FA protege contra tipos básicos de ataques, como cuando un amigo proporciona su huella digital mientras usted duerme.\n\n Cake 2FA NO protege contra un dispositivo comprometido por un atacante sofisticado.\n\n Si pierde el acceso a sus códigos 2FA , PERDERÁS EL ACCESO A ESTA BILLETERA. Deberá restaurar su billetera desde la semilla mnemotécnica. ¡POR LO TANTO, DEBE HACER UNA COPIA DE SEGURIDAD DE SUS SEMILLAS MNEMÓNICAS! Además, alguien con acceso a sus semillas mnemotécnicas podrá robar sus fondos, sin pasar por Cake 2FA.\n\n El personal de soporte de Cake no podrá ayudarlo si pierde el acceso a su semilla mnemotécnica, ya que Cake es un billetera sin custodia.", + "setup_2fa_text": "Cake 2FA funciona a través de TOTP como segundo factor de autenticación.\n\nEl TOTP de Cake 2FA requiere SHA-512 y soporte de 8 dígitos; esto proporciona una mayor seguridad. Puede encontrar más información y aplicaciones compatibles en la guía aquí.", "setup_totp_recommended": "Configurar TOTP (Recomendado)", "disable_buy": "Desactivar acción de compra", "disable_sell": "Desactivar acción de venta", @@ -741,5 +741,8 @@ "unavailable_balance": "Saldo no disponible", "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", "unspent_change": "Cambiar", - "tor_connection": "conexión tor" + "tor_connection": "conexión tor", + "setup_warning_2fa_text": "Cake 2FA es una segunda autenticación para ciertas acciones en la billetera. NO es tan seguro como el almacenamiento en frío.\n Si pierde el acceso a su aplicación 2FA o a sus claves de acceso, perderá el acceso a esta billetera.\n Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n El soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas. Antes de usar Cake 2FA, recomendamos leer la guía.", + "scan_qr_on_device": "Escanea este código QR en otro dispositivo", + "how_to_use": "Cómo utilizar" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 1c44c9513..acb3c2706 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Vérification réussie !", "totp_2fa_failure": "Code incorrect. Veuillez essayer un code différent ou générer un nouveau secret TOTP. Utilisez une application 2FA compatible qui prend en charge les codes à 8 chiffres et SHA512.", "enter_totp_code": "Veuillez entrer le code TOTP.", - "add_secret_code": "Configurer un autre appareil à l'aide de ce secret TOTP", + "add_secret_code": "Ou ajoutez ce code secret à une application d'authentification", "totp_secret_code": "Secret TOTP", - "setup_2fa_text": "Cake 2FA (Authentification à 2 Facteurs) n'est PAS aussi sûr que le stockage à froid. Cake 2FA protège contre les attaques basiques, comme un ami fournissant votre empreinte digitale pendant que vous dormez.\n\n Cake 2FA ne protège PAS contre un appareil compromis par un attaquant sophistiqué.\n\n Si vous perdez l'accès à vos codes 2FA , VOUS PERDREZ L'ACCÈS À CE PORTEFEUILLE (WALLET). Vous devrez restaurer votre portefeuille à partir de sa phrase secrète (seed). VOUS DEVEZ DONC SAUVEGARDER VOTRE PHRASE SECRÈTE ! De plus, quelqu'un ayant accès à votre phrase secrète pourra voler vos fonds, en contournant Cake 2FA.\n\n Le personnel d'assistance de Cake ne pourra pas vous aider si vous perdez l'accès à votre phrase secrète, puisque Cake est un portefeuille non dépositaire (non custodial).", + "setup_2fa_text": "Cake 2FA fonctionne via TOTP comme deuxième facteur d'authentification.\n\nLe TOTP de Cake 2FA nécessite la prise en charge de SHA-512 et de 8 chiffres ; cela offre une sécurité accrue. Plus d’informations et les applications prises en charge peuvent être trouvées dans le guide ici.", "setup_totp_recommended": "Configurer TOTP (recommandé)", "disable_buy": "Désactiver l'action d'achat", "disable_sell": "Désactiver l'action de vente", @@ -728,7 +728,7 @@ "exchange_provider_unsupported": "${providerName} n'est plus pris en charge !", "domain_looks_up": "Résolution de nom", "require_for_exchanges_to_external_wallets": "Exiger pour les échanges vers des portefeuilles externes", - "camera_permission_is_required": "L'autorisation de la caméra est requise.\nVeuillez l'activer à partir des paramètres de l'application.", + "camera_permission_is_required": "L'autorisation d'accès à la caméra est requise.\nVeuillez l'activer depuis les paramètres de l'application.", "switchToETHWallet": "Veuillez passer à un portefeuille (wallet) Ethereum et réessayer", "importNFTs": "Importer des NFT", "noNFTYet": "Pas encore de NFT", @@ -740,8 +740,9 @@ "seed_phrase_length": "Longueur de la phrase de départ", "unavailable_balance": "Solde indisponible", "unavailable_balance_description": "Solde indisponible : ce total comprend les fonds bloqués dans les transactions en attente et ceux que vous avez activement gelés dans vos paramètres de contrôle des pièces. Les soldes bloqués deviendront disponibles une fois leurs transactions respectives terminées, tandis que les soldes gelés resteront inaccessibles aux transactions jusqu'à ce que vous décidiez de les débloquer.", - "camera_permission_is_required": "L'autorisation d'accès à la caméra est requise.\nVeuillez l'activer depuis les paramètres de l'application.", - "switchToETHWallet": "Veuillez passer à un portefeuille (wallet) Ethereum et réessayer", "unspent_change": "Changement", - "tor_connection": "Connexion Tor" + "tor_connection": "Connexion Tor", + "setup_warning_2fa_text": "Cake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n Si vous perdez l'accès à votre application 2FA ou à vos mots de passe, vous perdrez l'accès à ce portefeuille.\n Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n Le support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.", + "scan_qr_on_device": "Scannez ce code QR sur un autre appareil", + "how_to_use": "Comment utiliser" } diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 8b6f38d05..9c25ce24c 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -720,5 +720,10 @@ "unavailable_balance": "Ma'aunin da ba ya samuwa", "unavailable_balance_description": "Ma'auni Babu: Wannan jimlar ya haɗa da kuɗi waɗanda ke kulle a cikin ma'amaloli da ke jiran aiki da waɗanda kuka daskare sosai a cikin saitunan sarrafa kuɗin ku. Ma'auni da aka kulle za su kasance da zarar an kammala ma'amalolinsu, yayin da daskararrun ma'auni ba za su iya samun damar yin ciniki ba har sai kun yanke shawarar cire su.", "unspent_change": "Canza", - "tor_connection": "Tor haɗin gwiwa" + "tor_connection": "Tor haɗin gwiwa", + "setup_2fa_text": "Cake 2FA yana aiki ta hanyar TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da aikace-aikacen tallafi a cikin jagorar nan.", + "setup_warning_2fa_text": "Cake 2FA tabbaci ne na biyu don wasu ayyuka a cikin walat. BA shi da tsaro kamar ajiyar sanyi.\n Idan ka rasa damar yin amfani da app ɗinka na 2FA ko maɓallan wucewa, ZA KA rasa damar shiga wannan wallet ɗin.\n Kuna buƙatar dawo da walat ɗin ku daga zuriyar mnemonic.\n Tallafin kek ba zai iya taimaka muku ba idan kun rasa damar yin amfani da 2FA ko tsaba na mnemonic. Kafin amfani da Cake 2FA, muna ba da shawarar karanta ta cikin jagorar.", + "add_secret_code": "Ko, ƙara wannan lambar sirrin zuwa ƙa'idar mai tabbatarwa", + "scan_qr_on_device": "Duba wannan lambar QR akan wata na'ura", + "how_to_use": "Yadda ake amfani da shi" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 075fe14da..31fa7656a 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -625,9 +625,9 @@ "totp_verification_success": "सत्यापन सफल!", "totp_2fa_failure": "गलत कोड़। कृपया एक अलग कोड का प्रयास करें या एक नई गुप्त कुंजी उत्पन्न करें। 8-अंकीय कोड और SHA512 का समर्थन करने वाले संगत 2FA ऐप का उपयोग करें।", "enter_totp_code": "कृपया TOTP कोड दर्ज करें।", - "add_secret_code": "इस गुप्त कोड को किसी अन्य डिवाइस में जोड़ें", + "add_secret_code": "या, इस गुप्त कोड को प्रमाणक ऐप में जोड़ें", "totp_secret_code": "टीओटीपी गुप्त कोड", - "setup_2fa_text": "केक 2FA कोल्ड स्टोरेज जितना सुरक्षित नहीं है। 2FA बुनियादी प्रकार के हमलों से बचाता है, जैसे कि आपका मित्र सोते समय आपको अपना फ़िंगरप्रिंट प्रदान करता है।\n\n Cake 2FA परिष्कृत हमलावर द्वारा किसी डिवाइस से छेड़छाड़ से रक्षा नहीं करता है।\n\n यदि आप अपने 2FA कोड तक पहुंच खो देते हैं , आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरणीय बीज से पुनर्स्थापित करने की आवश्यकता होगी। इसलिए आपको अपने स्मरणीय बीजों का बैकअप लेना चाहिए! इसके अलावा, आपके स्मरक बीज (बीजों) तक पहुंच रखने वाला कोई व्यक्ति केक 2FA को दरकिनार कर आपके धन की चोरी करने में सक्षम होगा। अप्रबंधित बटुआ।", + "setup_2fa_text": "केक 2FA दूसरे प्रमाणीकरण कारक के रूप में TOTP के माध्यम से काम करता है।\n\nकेक 2FA के TOTP को SHA-512 और 8 अंकों के समर्थन की आवश्यकता है; इससे अधिक सुरक्षा मिलती है. अधिक जानकारी और समर्थित ऐप्स यहां गाइड में पाए जा सकते हैं।", "setup_totp_recommended": "टीओटीपी सेट अप करें (अनुशंसित)", "disable_buy": "खरीद कार्रवाई अक्षम करें", "disable_sell": "बेचने की कार्रवाई अक्षम करें", @@ -741,5 +741,8 @@ "unavailable_balance": "अनुपलब्ध शेष", "unavailable_balance_description": "अनुपलब्ध शेष राशि: इस कुल में वे धनराशि शामिल हैं जो लंबित लेनदेन में बंद हैं और जिन्हें आपने अपनी सिक्का नियंत्रण सेटिंग्स में सक्रिय रूप से जमा कर रखा है। लॉक किए गए शेष उनके संबंधित लेन-देन पूरे होने के बाद उपलब्ध हो जाएंगे, जबकि जमे हुए शेष लेन-देन के लिए अप्राप्य रहेंगे जब तक कि आप उन्हें अनफ्रीज करने का निर्णय नहीं लेते।", "unspent_change": "परिवर्तन", - "tor_connection": "टोर कनेक्शन" + "tor_connection": "टोर कनेक्शन", + "setup_warning_2fa_text": "केक 2एफए वॉलेट में कुछ कार्यों के लिए दूसरा प्रमाणीकरण है। यह कोल्ड स्टोरेज जितना सुरक्षित नहीं है।\n यदि आप अपने 2एफए ऐप या पासकी तक पहुंच खो देते हैं, तो आप इस वॉलेट तक पहुंच खो देंगे।\n आपको अपने बटुए को स्मरक बीज से पुनर्स्थापित करने की आवश्यकता होगी।\n यदि आप अपने 2एफए या निमोनिक बीजों तक पहुंच खो देते हैं तो केक समर्थन आपकी सहायता करने में असमर्थ होगा। केक 2एफए का उपयोग करने से पहले, हम गाइड को पढ़ने की सलाह देते हैं।", + "scan_qr_on_device": "इस QR कोड को किसी अन्य डिवाइस पर स्कैन करें", + "how_to_use": "का उपयोग कैसे करें" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 9d5e2af2b..a877a5030 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Provjera uspješna!", "totp_2fa_failure": "Neispravan kod. Pokušajte s drugim kodom ili generirajte novi tajni ključ. Koristite kompatibilnu 2FA aplikaciju koja podržava 8-znamenkasti kod i SHA512.", "enter_totp_code": "Unesite TOTP kod.", - "add_secret_code": "Dodajte ovaj tajni kod na drugi uređaj", + "add_secret_code": "Ili dodajte ovaj tajni kod u aplikaciju za autentifikaciju", "totp_secret_code": "TOTP tajni kod", - "setup_2fa_text": "Torta 2FA NIJE sigurna kao hladno skladište. 2FA štiti od osnovnih vrsta napada, kao što je vaš prijatelj koji vam daje otisak prsta dok spavate.\n\n Cake 2FA NE štiti od kompromitiranog uređaja od strane sofisticiranog napadača.\n\n Ako izgubite pristup svojim 2FA kodovima , IZGUBIT ĆETE PRISTUP OVOM NOVČANIKU. Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena. STOGA MORATE NAPRAVITI SIGURNOSNE KOPIJE SVOJIH MNEMONIČKIH SJEMENA! Nadalje, netko tko ima pristup vašem mnemoničkom seedu(ima) moći će ukrasti vaša sredstva, zaobilazeći Cake 2FA.\n\n Cake osoblje za podršku neće vam moći pomoći ako izgubite pristup svom mnemoničkom seedu, budući da je Cake neskrbnički novčanik.", + "setup_2fa_text": "Cake 2FA radi preko TOTP-a kao drugog faktora provjere autentičnosti.\n\nCake 2FA TOTP zahtijeva SHA-512 i podršku za 8 znamenki; ovo osigurava povećanu sigurnost. Više informacija i podržanih aplikacija možete pronaći u vodiču ovdje.", "setup_totp_recommended": "Postavite TOTP (preporučeno)", "disable_buy": "Onemogući kupnju", "disable_sell": "Onemogući akciju prodaje", @@ -739,5 +739,8 @@ "unavailable_balance": "Nedostupno stanje", "unavailable_balance_description": "Nedostupno stanje: Ovaj ukupni iznos uključuje sredstva koja su zaključana u transakcijama na čekanju i ona koja ste aktivno zamrznuli u postavkama kontrole novčića. Zaključani saldi postat će dostupni kada se dovrše njihove transakcije, dok zamrznuti saldi ostaju nedostupni za transakcije sve dok ih ne odlučite odmrznuti.", "unspent_change": "Promijeniti", - "tor_connection": "Tor veza" + "tor_connection": "Tor veza", + "setup_warning_2fa_text": "Cake 2FA je druga provjera autentičnosti za određene radnje u novčaniku. NIJE siguran kao hladno skladište.\n Ako izgubite pristup svojoj 2FA aplikaciji ili pristupnim ključevima, IZGUBIT ĆETE pristup ovom novčaniku.\n Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena.\n Podrška za kolače neće vam moći pomoći ako izgubite pristup svojim 2FA ili mnemoničkim izvorima. Prije uporabe Cake 2FA preporučujemo da pročitate vodič.", + "scan_qr_on_device": "Skenirajte ovaj QR kod na drugom uređaju", + "how_to_use": "Kako koristiti" } diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 234585064..a84ad29de 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -613,9 +613,9 @@ "totp_verification_success": "Verifikasi Berhasil!", "totp_2fa_failure": "Kode salah. Silakan coba kode lain atau buat kunci rahasia baru. Gunakan aplikasi 2FA yang kompatibel yang mendukung kode 8 digit dan SHA512.", "enter_totp_code": "Masukkan Kode TOTP.", - "add_secret_code": "Tambahkan kode rahasia ini ke perangkat lain", + "add_secret_code": "Atau, tambahkan kode rahasia ini ke aplikasi autentikator", "totp_secret_code": "Kode Rahasia TOTP", - "setup_2fa_text": "Cake 2FA TIDAK seaman cold storage. 2FA melindungi dari jenis serangan dasar, seperti teman Anda memberikan sidik jari saat Anda sedang tidur.\n\n Cake 2FA TIDAK melindungi dari perangkat yang disusupi oleh penyerang canggih.\n\n Jika Anda kehilangan akses ke kode 2FA , ANDA AKAN KEHILANGAN AKSES KE DOMPET INI. Anda perlu memulihkan dompet Anda dari benih mnemonik. OLEH KARENA ITU, ANDA HARUS MENYIMPAN BIJI MNEMONIK ANDA! Selanjutnya, seseorang yang memiliki akses ke benih mnemonik Anda akan dapat mencuri dana Anda, melewati Cake 2FA.\n\n Staf pendukung Cake tidak akan dapat membantu Anda jika Anda kehilangan akses ke benih mnemonik Anda, karena Cake adalah dompet tanpa hak asuh.", + "setup_2fa_text": "Cake 2FA bekerja melalui TOTP sebagai faktor otentikasi kedua.\n\nTOTP Cake 2FA memerlukan SHA-512 dan dukungan 8 digit; ini memberikan peningkatan keamanan. Informasi lebih lanjut dan aplikasi yang didukung dapat ditemukan dalam panduan di sini.", "setup_totp_recommended": "Siapkan TOTP (Disarankan)", "disable_buy": "Nonaktifkan tindakan beli", "disable_sell": "Nonaktifkan aksi jual", @@ -729,5 +729,8 @@ "unavailable_balance": "Saldo tidak tersedia", "unavailable_balance_description": "Saldo Tidak Tersedia: Total ini termasuk dana yang terkunci dalam transaksi yang tertunda dan dana yang telah Anda bekukan secara aktif di pengaturan kontrol koin Anda. Saldo yang terkunci akan tersedia setelah transaksi masing-masing selesai, sedangkan saldo yang dibekukan tetap tidak dapat diakses untuk transaksi sampai Anda memutuskan untuk mencairkannya.", "unspent_change": "Mengubah", - "tor_connection": "koneksi Tor" + "tor_connection": "koneksi Tor", + "setup_warning_2fa_text": "Cake 2FA adalah otentikasi kedua untuk tindakan tertentu di dompet. Ini TIDAK seaman penyimpanan dingin.\n Jika Anda kehilangan akses ke aplikasi 2FA atau kunci sandi, Anda AKAN kehilangan akses ke dompet ini.\n Anda perlu memulihkan dompet Anda dari benih mnemonik.\n Dukungan kue tidak akan dapat membantu Anda jika Anda kehilangan akses ke 2FA atau benih mnemonik. Sebelum menggunakan Cake 2FA, kami sarankan untuk membaca panduannya.", + "scan_qr_on_device": "Pindai kode QR ini di perangkat lain", + "how_to_use": "Cara Penggunaan" } diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 73e5d01bb..77ff9a14f 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Verifica riuscita!", "totp_2fa_failure": "Codice non corretto. Prova un codice diverso o genera una nuova chiave segreta. Utilizza un'app 2FA compatibile che supporti codici a 8 cifre e SHA512.", "enter_totp_code": "Inserisci il codice TOTP.", - "add_secret_code": "Aggiungi questo codice segreto a un altro dispositivo", + "add_secret_code": "Oppure aggiungi questo codice segreto a un'app di autenticazione", "totp_secret_code": "TOTP codice segreto", - "setup_2fa_text": "Cake 2FA NON è sicuro come la cella frigorifera. 2FA protegge da tipi di attacchi di base, come il tuo amico che fornisce la tua impronta digitale mentre dormi.\n\n Cake 2FA NON protegge da un dispositivo compromesso da un aggressore sofisticato.\n\n Se perdi l'accesso ai tuoi codici 2FA , PERDERAI L'ACCESSO A QUESTO PORTAFOGLIO. Dovrai ripristinare il tuo portafoglio dal seme mnemonico. DOVETE QUINDI SOSTITUIRE I VOSTRI SEMI MNEMONICI! Inoltre, qualcuno con accesso ai tuoi seed mnemonici sarà in grado di rubare i tuoi fondi, aggirando Cake 2FA.\n\n Il personale di supporto di Cake non sarà in grado di aiutarti se perdi l'accesso al tuo seed mnemonico, poiché Cake è un portafoglio non detentivo.", + "setup_2fa_text": "Cake 2FA funziona tramite TOTP come secondo fattore di autenticazione.\n\nIl TOTP di Cake 2FA richiede il supporto SHA-512 e 8 cifre; ciò fornisce una maggiore sicurezza. Maggiori informazioni e app supportate sono disponibili nella guida qui.", "setup_totp_recommended": "Imposta TOTP (consigliato)", "disable_buy": "Disabilita l'azione di acquisto", "disable_sell": "Disabilita l'azione di vendita", @@ -741,5 +741,8 @@ "unavailable_balance": "Saldo non disponibile", "unavailable_balance_description": "Saldo non disponibile: questo totale include i fondi bloccati nelle transazioni in sospeso e quelli che hai congelato attivamente nelle impostazioni di controllo delle monete. I saldi bloccati diventeranno disponibili una volta completate le rispettive transazioni, mentre i saldi congelati rimarranno inaccessibili per le transazioni finché non deciderai di sbloccarli.", "unspent_change": "Modifica", - "tor_connection": "Connessione Tor" + "tor_connection": "Connessione Tor", + "setup_warning_2fa_text": "Cake 2FA è una seconda autenticazione per determinate azioni nel portafoglio. NON è sicuro come la conservazione a freddo.\n Se perdi l'accesso alla tua app 2FA o alle passkey, perderai l'accesso a questo portafoglio.\n Dovrai ripristinare il tuo portafoglio dal seme mnemonico.\n Il supporto di Cake non sarà in grado di assisterti se perdi l'accesso ai tuoi seed 2FA o mnemonici. Prima di utilizzare Cake 2FA, ti consigliamo di leggere la guida.", + "scan_qr_on_device": "Scansiona questo codice QR su un altro dispositivo", + "how_to_use": "Come usare" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 7cd82ef14..38f1f2b7a 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -625,9 +625,9 @@ "totp_verification_success": "検証成功!", "totp_2fa_failure": "コードが正しくありません。 別のコードを試すか、新しい秘密鍵を生成してください。 8 桁のコードと SHA512 をサポートする互換性のある 2FA アプリを使用してください。", "enter_totp_code": "TOTPコードを入力してください。", - "add_secret_code": "このシークレット コードを別のデバイスに追加する", + "add_secret_code": "または、このシークレット コードを認証アプリに追加します", "totp_secret_code": "TOTPシークレットコード", - "setup_2fa_text": "Cake 2FA は、コールド ストレージほど安全ではありません。 2FA は、あなたが寝ているときに友人が指紋を提供するなどの基本的なタイプの攻撃から保護します。\n\n Cake 2FA は、巧妙な攻撃者による侵害されたデバイスから保護しません。\n\n 2FA コードにアクセスできなくなった場合、このウォレットにアクセスできなくなります。ニーモニック シードからウォレットを復元する必要があります。したがって、ニーモニック シードをバックアップする必要があります。さらに、あなたのニーモニック シードにアクセスできる誰かが、Cake 2FA をバイパスして、あなたの資金を盗むことができます。\n\n Cake は無印の財布。", + "setup_2fa_text": "Cake 2FA は、TOTP を通じて 2 番目の認証要素として機能します。\n\nCake 2FA の TOTP には SHA-512 と 8 桁のサポートが必要です。これによりセキュリティが強化されます。詳細とサポートされているアプリについては、こちらのガイドをご覧ください。", "setup_totp_recommended": "TOTP を設定する (推奨)", "disable_buy": "購入アクションを無効にする", "disable_sell": "販売アクションを無効にする", @@ -741,5 +741,8 @@ "unavailable_balance": "利用できない残高", "unavailable_balance_description": "利用不可能な残高: この合計には、保留中のトランザクションにロックされている資金と、コイン管理設定でアクティブに凍結した資金が含まれます。ロックされた残高は、それぞれの取引が完了すると利用可能になりますが、凍結された残高は、凍結を解除するまで取引にアクセスできません。", "unspent_change": "変化", - "tor_connection": "Tor接続" + "tor_connection": "Tor接続", + "setup_warning_2fa_text": "Cake 2FA は、ウォレット内の特定のアクションに対する 2 番目の認証です。冷蔵保存ほど安全ではありません。\n 2FA アプリまたはパスキーにアクセスできなくなると、このウォレットにもアクセスできなくなります。\n ニーモニックシードからウォレットを復元する必要があります。\n 2FA またはニーモニック シードにアクセスできなくなった場合、Cake サポートはサポートできません。 Cake 2FA を使用する前に、ガイドを一読することをお勧めします。", + "scan_qr_on_device": "別のデバイスでこの QR コードをスキャンします", + "how_to_use": "使い方" } diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 2ef5d3577..e6c140d74 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -625,9 +625,9 @@ "totp_verification_success": "확인 성공!", "totp_2fa_failure": "잘못된 코드입니다. 다른 코드를 시도하거나 새 비밀 키를 생성하십시오. 8자리 코드와 SHA512를 지원하는 호환되는 2FA 앱을 사용하세요.", "enter_totp_code": "TOTP 코드를 입력하세요.", - "add_secret_code": "이 비밀 코드를 다른 장치에 추가", + "add_secret_code": "또는 이 비밀 코드를 인증 앱에 추가하세요.", "totp_secret_code": "TOTP 비밀 코드", - "setup_2fa_text": "케이크 2FA는 냉장 보관만큼 안전하지 않습니다. 2FA는 당신이 잠자는 동안 친구가 지문을 제공하는 것과 같은 기본적인 유형의 공격으로부터 보호합니다.\n\n Cake 2FA는 정교한 공격자에 의해 손상된 장치로부터 보호하지 않습니다.\n\n 2FA 코드에 대한 액세스 권한을 잃으면 , 이 지갑에 대한 액세스 권한을 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다. 따라서 니모닉 시드를 백업해야 합니다! 또한 니모닉 시드에 액세스할 수 있는 사람이 Cake 2FA를 우회하여 자금을 훔칠 수 있습니다.\n\n 니모닉 시드에 대한 액세스 권한을 잃으면 Cake 지원 직원이 도와줄 수 없습니다. 비수탁 지갑.", + "setup_2fa_text": "Cake 2FA는 TOTP를 두 번째 인증 요소로 사용합니다.\n\nCake 2FA의 TOTP에는 SHA-512 및 8자리 지원이 필요합니다. 이는 보안을 강화합니다. 자세한 내용과 지원되는 앱은 여기 가이드에서 확인할 수 있습니다.", "setup_totp_recommended": "TOTP 설정(권장)", "disable_buy": "구매 행동 비활성화", "disable_sell": "판매 조치 비활성화", @@ -739,5 +739,8 @@ "unavailable_balance": "사용할 수 없는 잔액", "unavailable_balance_description": "사용할 수 없는 잔액: 이 총계에는 보류 중인 거래에 잠겨 있는 자금과 코인 관리 설정에서 적극적으로 동결된 자금이 포함됩니다. 잠긴 잔액은 해당 거래가 완료되면 사용할 수 있게 되며, 동결된 잔액은 동결을 해제하기 전까지 거래에 액세스할 수 없습니다.", "unspent_change": "변화", - "tor_connection": "토르 연결" + "tor_connection": "토르 연결", + "setup_warning_2fa_text": "Cake 2FA는 지갑의 특정 작업에 대한 두 번째 인증입니다. 냉장 보관만큼 안전하지 않습니다.\n 2FA 앱이나 비밀번호 키에 접근할 수 없게 되면 이 지갑에 접근할 수 없게 됩니다.\n 니모닉 시드에서 지갑을 복원해야 합니다.\n 2FA 또는 니모닉 시드에 액세스할 수 없는 경우 Cake 지원팀에서 도움을 드릴 수 없습니다. Cake 2FA를 사용하기 전에 가이드를 읽어 보시기 바랍니다.", + "scan_qr_on_device": "다른 기기에서 이 QR 코드를 스캔하세요.", + "how_to_use": "사용하는 방법" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index e409d1ad9..fa8867636 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -623,9 +623,9 @@ "totp_verification_success": "အတည်ပြုခြင်း အောင်မြင်ပါသည်။", "totp_2fa_failure": "ကုဒ်မမှန်ပါ။ ကျေးဇူးပြု၍ အခြားကုဒ်တစ်ခုကို စမ်းကြည့်ပါ သို့မဟုတ် လျှို့ဝှက်သော့အသစ်တစ်ခု ဖန်တီးပါ။ ဂဏန်း ၈ လုံးကုဒ်များနှင့် SHA512 ကို ပံ့ပိုးပေးသည့် တွဲဖက်အသုံးပြုနိုင်သော 2FA အက်ပ်ကို အသုံးပြုပါ။", "enter_totp_code": "ကျေးဇူးပြု၍ TOTP ကုဒ်ကို ထည့်ပါ။", - "add_secret_code": "ဤလျှို့ဝှက်ကုဒ်ကို အခြားစက်ပစ္စည်းသို့ ထည့်ပါ။", + "add_secret_code": "သို့မဟုတ် ဤလျှို့ဝှက်ကုဒ်ကို အထောက်အထားစိစစ်ခြင်းအက်ပ်တစ်ခုသို့ ထည့်ပါ။", "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", - "setup_2fa_text": "ကိတ်မုန့် 2FA သည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။ 2FA သည် သင်အိပ်နေစဉ်တွင် သင့်သူငယ်ချင်းသည် သင့်လက်ဗွေရာကို ပေးဆောင်ခြင်းကဲ့သို့သော အခြေခံတိုက်ခိုက်မှုအမျိုးအစားများကို ကာကွယ်ပေးပါသည်။\n\n Cake 2FA သည် ခေတ်မီဆန်းပြားသော တိုက်ခိုက်သူ၏ အန္တရာယ်ပြုသည့်စက်ပစ္စည်းကို မကာကွယ်ပါ။\n\n သင်၏ 2FA ကုဒ်များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက၊ ဤပိုက်ဆံအိတ်ကို သင်ဝင်ရောက်ခွင့်ဆုံးရှုံးလိမ့်မည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။ ထို့ကြောင့် သင်၏ MNEMONIC မျိုးစေ့များကို အရန်သိမ်းထားရပါမည်။ ထို့အပြင်၊ သင်၏ mnemonic မျိုးစေ့(များ) ကို အသုံးပြုခွင့်ရှိသူတစ်ဦးက Cake 2FA ကိုကျော်ဖြတ်ကာ သင့်ရန်ပုံငွေများကို ခိုးယူနိုင်ပါမည်။\n\n ကိတ်မုန့်သည် သင့် mnemonic မျိုးစေ့သို့ ဝင်ရောက်ခွင့်ဆုံးရှုံးသွားပါက သင့်အား ကူညီပေးနိုင်မည်မဟုတ်ပါ၊ အထိန်းအချုပ်မရှိသော ပိုက်ဆံအိတ်။", + "setup_2fa_text": "ကိတ်မုန့် 2FA သည် TOTP မှတစ်ဆင့် ဒုတိယအထောက်အထားစိစစ်ခြင်းအချက်အဖြစ် လုပ်ဆောင်သည်။\n\nကိတ်မုန့် 2FA ၏ TOTP သည် SHA-512 နှင့် 8 ဂဏန်းပံ့ပိုးမှု လိုအပ်သည်။ ဒါက လုံခြုံရေးကို တိုးမြှင့်ပေးတယ်။ နောက်ထပ်အချက်အလက်များနှင့် ပံ့ပိုးပေးထားသောအက်ပ်များကို ဤနေရာတွင် လမ်းညွှန်တွင် တွေ့နိုင်ပါသည်။", "setup_totp_recommended": "TOTP ကို ​​စနစ်ထည့်သွင်းပါ (အကြံပြုထားသည်)", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", @@ -739,5 +739,8 @@ "unavailable_balance": "လက်ကျန်ငွေ မရရှိနိုင်ပါ။", "unavailable_balance_description": "မရရှိနိုင်သော လက်ကျန်ငွေ- ဤစုစုပေါင်းတွင် ဆိုင်းငံ့ထားသော ငွေပေးငွေယူများတွင် သော့ခတ်ထားသော ငွေကြေးများနှင့် သင်၏ coin ထိန်းချုပ်မှုဆက်တင်များတွင် သင် တက်ကြွစွာ အေးခဲထားသော ငွေများ ပါဝင်သည်။ သော့ခတ်ထားသော လက်ကျန်ငွေများကို ၎င်းတို့၏ သက်ဆိုင်ရာ ငွေပေးငွေယူများ ပြီးမြောက်သည်နှင့် တပြိုင်နက် ရရှိနိုင်မည်ဖြစ်ပြီး၊ အေးခဲထားသော လက်ကျန်များကို ၎င်းတို့အား ပြန်ဖြုတ်ရန် သင်ဆုံးဖြတ်သည်အထိ ငွေပေးငွေယူများအတွက် ဆက်လက်၍မရနိုင်ပါ။", "unspent_change": "ပေြာင်းလဲခြင်း", - "tor_connection": "Tor ချိတ်ဆက်မှု" + "tor_connection": "Tor ချိတ်ဆက်မှု", + "setup_warning_2fa_text": "ကိတ်မုန့် 2FA သည် ပိုက်ဆံအိတ်ရှိ အချို့သော လုပ်ဆောင်ချက်များ အတွက် ဒုတိယ စစ်မှန်ကြောင်း အထောက်အထား ဖြစ်သည်။ ၎င်းသည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။\n သင်၏ 2FA အက်ပ် သို့မဟုတ် သော့တံများကို အသုံးပြုခွင့် ဆုံးရှုံးပါက၊ သင်သည် ဤပိုက်ဆံအိတ်ကို အသုံးပြုခွင့် ဆုံးရှုံးမည်ဖြစ်သည်။\n သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။\n သင်သည် သင်၏ 2FA သို့မဟုတ် mnemonic အစေ့များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက ကိတ်မုန့်ပံ့ပိုးကူညီမှု မပေးနိုင်ပါ။ Cake 2FA ကို အသုံးမပြုမီ၊ လမ်းညွှန်ချက်မှတစ်ဆင့် ဖတ်ရန် အကြံပြုအပ်ပါသည်။", + "scan_qr_on_device": "အခြားစက်တွင် ဤ QR ကုဒ်ကို စကင်ဖတ်ပါ။", + "how_to_use": "အသုံးပြုနည်း" } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a1afb796b..22d8a7289 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Verificatie geslaagd!", "totp_2fa_failure": "Foute code. Probeer een andere code of genereer een nieuwe geheime sleutel. Gebruik een compatibele 2FA-app die 8-cijferige codes en SHA512 ondersteunt.", "enter_totp_code": "Voer de TOTP-code in.", - "add_secret_code": "Voeg deze geheime code toe aan een ander apparaat", + "add_secret_code": "Of voeg deze geheime code toe aan een authenticator-app", "totp_secret_code": "TOTP-geheime code", - "setup_2fa_text": "Cake 2FA is NIET zo veilig als koude opslag. 2FA beschermt tegen basistypen aanvallen, zoals uw vriend die uw vingerafdruk geeft terwijl u slaapt.\n\n Cake 2FA biedt GEEN bescherming tegen een gecompromitteerd apparaat door een geavanceerde aanvaller.\n\n Als u de toegang tot uw 2FA-codes kwijtraakt , VERLIEST U DE TOEGANG TOT DEZE PORTEFEUILLE. U moet uw portemonnee herstellen van mnemonic seed. JE MOET DAAROM EEN BACK-UP MAKEN VAN JE MNEMONISCHE ZADEN! Verder kan iemand met toegang tot je geheugensteuntje(s) je geld stelen, waarbij Cake 2FA wordt omzeild.\n\n Het ondersteunend personeel van Cake kan je niet helpen als je de toegang tot je geheugensteuntje kwijtraakt, aangezien Cake een niet-bewaarbare portemonnee.", + "setup_2fa_text": "Cake 2FA werkt via TOTP als tweede authenticatiefactor.\n\nCake 2FA's TOTP vereist SHA-512 en 8-cijferige ondersteuning; dit zorgt voor meer veiligheid. Meer informatie en ondersteunde apps vindt u in de gids hier.", "setup_totp_recommended": "TOTP instellen (aanbevolen)", "disable_buy": "Koopactie uitschakelen", "disable_sell": "Verkoopactie uitschakelen", @@ -741,5 +741,8 @@ "unavailable_balance": "Onbeschikbaar saldo", "unavailable_balance_description": "Niet-beschikbaar saldo: Dit totaal omvat het geld dat is vergrendeld in lopende transacties en het geld dat u actief hebt bevroren in uw muntcontrole-instellingen. Vergrendelde saldi komen beschikbaar zodra de betreffende transacties zijn voltooid, terwijl bevroren saldi ontoegankelijk blijven voor transacties totdat u besluit ze weer vrij te geven.", "unspent_change": "Wijziging", - "tor_connection": "Tor-verbinding" + "tor_connection": "Tor-verbinding", + "setup_warning_2fa_text": "Cake 2FA is een tweede authenticatie voor bepaalde acties in de portemonnee. Het is NIET zo veilig als koude opslag.\n Als u de toegang tot uw 2FA-app of toegangscodes verliest, verliest u de toegang tot deze portemonnee.\n U moet uw portemonnee herstellen vanuit het geheugensteuntje.\n Cake Support kan u niet helpen als u de toegang tot uw 2FA- of mnemonic-zaden verliest. Voordat u Cake 2FA gebruikt, raden wij u aan de handleiding door te lezen.", + "scan_qr_on_device": "Scan deze QR-code op een ander apparaat", + "how_to_use": "Hoe te gebruiken" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 4cb30bb1c..33a540477 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Weryfikacja powiodła się!", "totp_2fa_failure": "Błędny kod. Spróbuj użyć innego kodu lub wygeneruj nowy tajny klucz. Użyj kompatybilnej aplikacji 2FA, która obsługuje 8-cyfrowe kody i SHA512.", "enter_totp_code": "Wprowadź kod TOTP.", - "add_secret_code": "Dodaj ten tajny kod do innego urządzenia", + "add_secret_code": "Możesz też dodać ten tajny kod do aplikacji uwierzytelniającej", "totp_secret_code": "Tajny kod TOTP", - "setup_2fa_text": "Cake 2FA NIE jest tak bezpieczny jak przechowywanie w chłodni. 2FA chroni przed podstawowymi typami ataków, takimi jak udostępnienie odcisku palca przez znajomego podczas snu.\n\n Cake 2FA NIE chroni przed zhakowanym urządzeniem przez wyrafinowanego atakującego.\n\n Jeśli utracisz dostęp do swoich kodów 2FA , UTRACISZ DOSTĘP DO TEGO PORTFELA. Będziesz musiał przywrócić swój portfel z mnemonicznego materiału siewnego. DLATEGO MUSISZ ZROBIĆ KOPIĘ SWOICH NASION MNEMONICZNYCH! Co więcej, ktoś z dostępem do twoich mnemonicznych nasion będzie mógł ukraść twoje fundusze, omijając Cake 2FA.\n\n Personel pomocniczy Cake nie będzie mógł ci pomóc, jeśli stracisz dostęp do swojego mnemonicznego seeda, ponieważ Cake jest portfel niezabezpieczony.", + "setup_2fa_text": "Cake 2FA działa poprzez TOTP jako drugi czynnik uwierzytelniający.\n\nTOTP Cake 2FA wymaga obsługi SHA-512 i 8 cyfr; zapewnia to większe bezpieczeństwo. Więcej informacji i obsługiwane aplikacje można znaleźć w przewodniku tutaj.", "setup_totp_recommended": "Skonfiguruj TOTP (zalecane)", "disable_buy": "Wyłącz akcję kupna", "disable_sell": "Wyłącz akcję sprzedaży", @@ -741,5 +741,8 @@ "unavailable_balance": "Niedostępne saldo", "unavailable_balance_description": "Niedostępne saldo: Suma ta obejmuje środki zablokowane w transakcjach oczekujących oraz te, które aktywnie zamroziłeś w ustawieniach kontroli monet. Zablokowane salda staną się dostępne po zakończeniu odpowiednich transakcji, natomiast zamrożone salda pozostaną niedostępne dla transakcji, dopóki nie zdecydujesz się ich odblokować.", "unspent_change": "Zmiana", - "tor_connection": "Połączenie Torem" + "tor_connection": "Połączenie Torem", + "setup_warning_2fa_text": "Cake 2FA to drugie uwierzytelnienie niektórych działań w portfelu. NIE jest tak bezpieczne jak przechowywanie w chłodni.\n Jeśli utracisz dostęp do aplikacji 2FA lub kluczy, UTRAcisz dostęp do tego portfela.\n Będziesz musiał przywrócić swój portfel z nasion mnemonicznych.\n Wsparcie Cake nie będzie w stanie Ci pomóc, jeśli utracisz dostęp do swoich nasion 2FA lub mnemoników. Przed użyciem Cake 2FA zalecamy zapoznanie się z instrukcją.", + "scan_qr_on_device": "Zeskanuj ten kod QR na innym urządzeniu", + "how_to_use": "Jak używać" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 98cc0caec..9f761c799 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -624,9 +624,9 @@ "totp_verification_success": "Verificação bem-sucedida!", "totp_2fa_failure": "Código incorreto. Tente um código diferente ou gere uma nova chave secreta. Use um aplicativo 2FA compatível com códigos de 8 dígitos e SHA512.", "enter_totp_code": "Digite o código TOTP.", - "add_secret_code": "Adicione este código secreto a outro dispositivo", + "add_secret_code": "Ou adicione este código secreto a um aplicativo autenticador", "totp_secret_code": "Código Secreto TOTP", - "setup_2fa_text": "O Cake 2FA NÃO é tão seguro quanto o armazenamento a frio. O 2FA protege contra tipos básicos de ataques, como seu amigo fornecer sua impressão digital enquanto você está dormindo.\n\n O Cake 2FA NÃO protege contra um dispositivo comprometido por um invasor sofisticado.\n\n Se você perder o acesso aos seus códigos 2FA , VOCÊ PERDERÁ O ACESSO A ESTA CARTEIRA. Você precisará restaurar sua carteira da semente mnemônica. VOCÊ DEVE, PORTANTO, FAZER BACKUP DE SUAS SEMENTES MNEMÔNICAS! Além disso, alguém com acesso às suas sementes mnemônicas poderá roubar seus fundos, ignorando o Cake 2FA.\n\n A equipe de suporte do Cake não poderá ajudá-lo se você perder o acesso à sua semente mnemônica, pois o Cake é um carteira não custodial.", + "setup_2fa_text": "Cake 2FA funciona através do TOTP como segundo fator de autenticação.\n\nO TOTP do Cake 2FA requer suporte SHA-512 e 8 dígitos; isso proporciona maior segurança. Mais informações e aplicativos suportados podem ser encontrados no guia aqui.", "setup_totp_recommended": "Configurar TOTP (recomendado)", "disable_buy": "Desativar ação de compra", "disable_sell": "Desativar ação de venda", @@ -740,5 +740,8 @@ "unavailable_balance": "Saldo indisponível", "unavailable_balance_description": "Saldo Indisponível: Este total inclui fundos bloqueados em transações pendentes e aqueles que você congelou ativamente nas configurações de controle de moedas. Os saldos bloqueados ficarão disponíveis assim que suas respectivas transações forem concluídas, enquanto os saldos congelados permanecerão inacessíveis para transações até que você decida descongelá-los.", "unspent_change": "Mudar", - "tor_connection": "Conexão Tor" + "tor_connection": "Conexão Tor", + "setup_warning_2fa_text": "Cake 2FA é uma segunda autenticação para determinadas ações na carteira. NÃO é tão seguro quanto o armazenamento refrigerado.\n Se você perder o acesso ao seu aplicativo 2FA ou às chaves de acesso, você perderá o acesso a esta carteira.\n Você precisará restaurar sua carteira a partir da semente mnemônica.\n O suporte do Cake não poderá ajudá-lo se você perder o acesso ao seu 2FA ou sementes mnemônicas. Antes de usar o Cake 2FA, recomendamos a leitura do guia.", + "scan_qr_on_device": "Digitalize este código QR em outro dispositivo", + "how_to_use": "Como usar" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 83227b70f..795e5f83c 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Проверка прошла успешно!", "totp_2fa_failure": "Неверный код. Пожалуйста, попробуйте другой код или создайте новый секретный ключ. Используйте совместимое приложение 2FA, которое поддерживает 8-значные коды и SHA512.", "enter_totp_code": "Пожалуйста, введите TOTP-код.", - "add_secret_code": "Добавьте этот секретный код на другое устройство", + "add_secret_code": "Или добавьте этот секретный код в приложение для аутентификации.", "totp_secret_code": "Секретный код ТОТП", - "setup_2fa_text": "Cake 2FA НЕ так безопасен, как холодное хранилище. Двухфакторная аутентификация защищает от основных типов атак, таких как отпечаток вашего друга, когда вы спите.\n\n Двухфакторная аутентификация Cake НЕ защищает от взлома устройства опытным злоумышленником.\n\n Если вы потеряете доступ к своим кодам двухфакторной аутентификации. , ВЫ ПОТЕРЯЕТЕ ДОСТУП К ЭТОМУ КОШЕЛЬКУ. Вам нужно будет восстановить свой кошелек из мнемонической семени. ПОЭТОМУ ВЫ ДОЛЖНЫ СОЗДАТЬ РЕЗЕРВНУЮ ВЕРСИЮ СВОИХ МНЕМОНИКОВ! Кроме того, кто-то, имеющий доступ к вашему мнемоническому семени, сможет украсть ваши средства, минуя Cake 2FA.\n\n Персонал службы поддержки Cake не сможет помочь вам, если вы потеряете доступ к своему мнемоническому семени, поскольку Cake — это некастодиальный кошелек.", + "setup_2fa_text": "Cake 2FA работает через TOTP в качестве второго фактора аутентификации.\n\nTOTP Cake 2FA требует SHA-512 и поддержки 8 цифр; это обеспечивает повышенную безопасность. Дополнительную информацию и поддерживаемые приложения можно найти в руководстве здесь.", "setup_totp_recommended": "Настроить TOTP (рекомендуется)", "disable_buy": "Отключить действие покупки", "disable_sell": "Отключить действие продажи", @@ -741,5 +741,8 @@ "unavailable_balance": "Недоступный баланс", "unavailable_balance_description": "Недоступный баланс: в эту сумму входят средства, заблокированные в ожидающих транзакциях, и средства, которые вы активно заморозили в настройках управления монетами. Заблокированные балансы станут доступны после завершения соответствующих транзакций, а замороженные балансы останутся недоступными для транзакций, пока вы не решите их разморозить.", "unspent_change": "Изменять", - "tor_connection": "Тор соединение" + "tor_connection": "Тор соединение", + "setup_warning_2fa_text": "Cake 2FA — это вторая аутентификация для определенных действий в кошельке. Это НЕ так безопасно, как холодное хранение.\n Если вы потеряете доступ к своему приложению 2FA или паролям, вы потеряете доступ к этому кошельку.\n Вам нужно будет восстановить свой кошелек из мнемонического сида.\n Служба поддержки Cake не сможет вам помочь, если вы потеряете доступ к своим 2FA или мнемоническим идентификаторам. Прежде чем использовать Cake 2FA, мы рекомендуем прочитать руководство.", + "scan_qr_on_device": "Отсканируйте этот QR-код на другом устройстве", + "how_to_use": "Как использовать" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index f47b11d24..d564f7ac1 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -623,9 +623,9 @@ "totp_verification_success": "การยืนยันสำเร็จ!", "totp_2fa_failure": "รหัสไม่ถูกต้อง. โปรดลองใช้รหัสอื่นหรือสร้างรหัสลับใหม่ ใช้แอพ 2FA ที่เข้ากันได้ซึ่งรองรับรหัส 8 หลักและ SHA512", "enter_totp_code": "กรุณาใส่รหัสทีโอที", - "add_secret_code": "เพิ่มรหัสลับนี้ไปยังอุปกรณ์อื่น", + "add_secret_code": "หรือเพิ่มรหัสลับนี้ลงในแอปตรวจสอบความถูกต้อง", "totp_secret_code": "รหัสลับ TOTP", - "setup_2fa_text": "Cake 2FA ไม่ปลอดภัยเท่าห้องเย็น 2FA ป้องกันการโจมตีประเภทพื้นฐาน เช่น เพื่อนของคุณให้ลายนิ้วมือขณะที่คุณนอนหลับ\n\n Cake 2FA ไม่ป้องกันอุปกรณ์ที่ถูกบุกรุกโดยผู้โจมตีที่เชี่ยวชาญ\n\n หากคุณสูญเสียการเข้าถึงรหัส 2FA ของคุณ คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยจำ คุณต้องสำรองเมล็ดความจำของคุณ! นอกจากนี้ ผู้ที่สามารถเข้าถึงเมล็ดช่วยจำของคุณจะสามารถขโมยเงินของคุณ โดยผ่าน Cake 2FA\n\n เจ้าหน้าที่ช่วยเหลือของ Cake จะไม่สามารถช่วยเหลือคุณได้ หากคุณสูญเสียการเข้าถึงเมล็ดช่วยจำ เนื่องจาก Cake เป็น กระเป๋าสตางค์ที่ไม่เป็นผู้ดูแล", + "setup_2fa_text": "Cake 2FA ทำงานผ่าน TOTP เป็นปัจจัยการตรวจสอบสิทธิ์ที่สอง\n\nTOTP ของ Cake 2FA ต้องการการสนับสนุน SHA-512 และ 8 หลัก สิ่งนี้ให้ความปลอดภัยเพิ่มขึ้น สามารถดูข้อมูลเพิ่มเติมและแอปที่รองรับได้ในคำแนะนำที่นี่", "setup_totp_recommended": "ตั้งค่า TOTP (แนะนำ)", "disable_buy": "ปิดการใช้งานการซื้อ", "disable_sell": "ปิดการใช้งานการขาย", @@ -739,5 +739,8 @@ "unavailable_balance": "ยอดคงเหลือไม่พร้อมใช้งาน", "unavailable_balance_description": "ยอดคงเหลือที่ไม่พร้อมใช้งาน: ยอดรวมนี้รวมถึงเงินทุนที่ถูกล็อคในการทำธุรกรรมที่รอดำเนินการและที่คุณได้แช่แข็งไว้ในการตั้งค่าการควบคุมเหรียญของคุณ ยอดคงเหลือที่ถูกล็อคจะพร้อมใช้งานเมื่อธุรกรรมที่เกี่ยวข้องเสร็จสมบูรณ์ ในขณะที่ยอดคงเหลือที่แช่แข็งจะไม่สามารถเข้าถึงได้สำหรับธุรกรรมจนกว่าคุณจะตัดสินใจยกเลิกการแช่แข็ง", "unspent_change": "เปลี่ยน", - "tor_connection": "การเชื่อมต่อทอร์" + "tor_connection": "การเชื่อมต่อทอร์", + "setup_warning_2fa_text": "Cake 2FA เป็นการรับรองความถูกต้องครั้งที่สองสำหรับการกระทำบางอย่างในกระเป๋าเงิน มันไม่ปลอดภัยเท่ากับห้องเย็น\n หากคุณสูญเสียการเข้าถึงแอป 2FA หรือรหัสผ่าน คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้\n คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยในการจำ\n การสนับสนุนเค้กจะไม่สามารถช่วยเหลือคุณได้หากคุณสูญเสียการเข้าถึง 2FA หรือเมล็ดช่วยในการจำ ก่อนใช้ Cake 2FA เราขอแนะนำให้อ่านคำแนะนำโดยละเอียด", + "scan_qr_on_device": "สแกนโค้ด QR นี้บนอุปกรณ์อื่น", + "how_to_use": "วิธีใช้" } diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index d68124fb1..bf15c0c09 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -626,9 +626,9 @@ "totp_verification_success": "Matagumpay ang pagpapatunay!", "totp_2fa_failure": "Maling code. Mangyaring subukan ang ibang code o makabuo ng isang bagong lihim na susi. Gumamit ng isang katugmang 2FA app na sumusuporta sa 8-digit na mga code at SHA512.", "enter_totp_code": "Mangyaring ipasok ang TOTP code.", - "add_secret_code": "Idagdag ang lihim na code na ito sa isa pang aparato", + "add_secret_code": "O, idagdag ang sikretong code na ito sa isang authenticator app", "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Ang cake 2FA ay hindi ligtas tulad ng malamig na imbakan. Pinoprotektahan ng 2FA laban sa mga pangunahing uri ng pag -atake, tulad ng iyong kaibigan na nagbibigay ng iyong fingerprint habang natutulog ka.\n\n Hindi pinoprotektahan ng cake 2FA laban sa isang nakompromiso na aparato ng isang sopistikadong umaatake.\n\n Kung nawalan ka ng pag -access sa iyong 2FA code, mawawalan ka ng access sa pitaka na ito. Kakailanganin mong ibalik ang iyong pitaka mula sa binhi ng mnemonic. Dapat mong i -back up ang iyong mga buto ng mnemonic! Dagdag pa, ang isang tao na may access sa iyong (mga) binhi ng mnemonic ay maaaring magnakaw ng iyong mga pondo, na lumampas sa cake 2FA.\n\n Ang mga kawani ng suporta sa cake ay hindi makakatulong sa iyo kung nawalan ka ng pag -access sa iyong mnemonic seed, dahil ang cake ay isang noncustodial wallet.", + "setup_2fa_text": "Gumagana ang Cake 2FA sa pamamagitan ng TOTP bilang pangalawang kadahilanan sa pagpapatunay.\n\nAng TOTP ng Cake 2FA ay nangangailangan ng SHA-512 at 8 digit na suporta; nagbibigay ito ng mas mataas na seguridad. Higit pang impormasyon at suportadong app ay matatagpuan sa gabay dito.", "setup_totp_recommended": "I -set up ang TOTP (inirerekomenda)", "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", @@ -736,5 +736,8 @@ "unavailable_balance": "Hindi available na balanse", "unavailable_balance_description": "Hindi Available na Balanse: Kasama sa kabuuang ito ang mga pondong naka-lock sa mga nakabinbing transaksyon at ang mga aktibong na-freeze mo sa iyong mga setting ng kontrol ng coin. Magiging available ang mga naka-lock na balanse kapag nakumpleto na ang kani-kanilang mga transaksyon, habang ang mga nakapirming balanse ay nananatiling hindi naa-access para sa mga transaksyon hanggang sa magpasya kang i-unfreeze ang mga ito.", "unspent_change": "Baguhin", - "tor_connection": "Koneksyon ng Tor" + "tor_connection": "Koneksyon ng Tor", + "setup_warning_2fa_text": "Ang Cake 2FA ay pangalawang pagpapatotoo para sa ilang partikular na pagkilos sa wallet. HINDI ito kasing-secure ng malamig na imbakan.\n Kung nawalan ka ng access sa iyong 2FA app o mga passkey, MAWAWALA ka ng access sa wallet na ito.\n Kakailanganin mong ibalik ang iyong wallet mula sa mnemonic seed.\n Hindi ka matutulungan ng suporta sa cake kung mawawalan ka ng access sa iyong 2FA o mnemonic seeds. Bago gamitin ang Cake 2FA, inirerekomenda naming basahin ang gabay.", + "scan_qr_on_device": "I-scan ang QR code na ito sa ibang device", + "how_to_use": "Paano gamitin" } diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 3207c2c01..8d400900d 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -623,9 +623,9 @@ "totp_verification_success": "Doğrulama Başarılı!", "totp_2fa_failure": "Yanlış kod. Lütfen farklı bir kod deneyin veya yeni bir gizli anahtar oluşturun. 8 basamaklı kodları ve SHA512'yi destekleyen uyumlu bir 2FA uygulaması kullanın.", "enter_totp_code": "Lütfen TOTP Kodunu giriniz.", - "add_secret_code": "Bu gizli kodu başka bir cihaza ekleyin", + "add_secret_code": "Veya bu gizli kodu bir kimlik doğrulama uygulamasına ekleyin", "totp_secret_code": "TOTP Gizli Kodu", - "setup_2fa_text": "Cake 2FA, soğuk hava deposu kadar güvenli DEĞİLDİR. 2FA, siz uyurken arkadaşınızın parmak izinizi sağlaması gibi temel saldırı türlerine karşı koruma sağlar.\n\n Cake 2FA, gelişmiş bir saldırgan tarafından güvenliği ihlal edilmiş bir cihaza karşı koruma SAĞLAMAZ.\n\n 2FA kodlarınıza erişimi kaybederseniz , BU CÜZDANA ERİŞİMİNİZİ KAYBEDECEKSİNİZ. Mnemonic seed'den cüzdanınızı geri yüklemeniz gerekecek. BU NEDENLE HATIRLAYICI TOHUMLARINIZI YEDEKLEMELİSİNİZ! Ayrıca anımsatıcı tohumlarınıza erişimi olan biri, Cake 2FA'yı atlayarak paranızı çalabilir.\n\n Cake, anımsatıcı tohumlarınıza erişimi kaybederseniz size yardımcı olamaz, çünkü Cake bir saklama dışı cüzdan.", + "setup_2fa_text": "Cake 2FA, ikinci kimlik doğrulama faktörü olarak TOTP üzerinden çalışır.\n\nCake 2FA'nın TOTP'si SHA-512 ve 8 haneli destek gerektirir; bu daha fazla güvenlik sağlar. Daha fazla bilgiyi ve desteklenen uygulamaları buradaki kılavuzda bulabilirsiniz.", "setup_totp_recommended": "TOTP'yi kurun (Önerilir)", "disable_buy": "Satın alma işlemini devre dışı bırak", "disable_sell": "Satış işlemini devre dışı bırak", @@ -739,5 +739,8 @@ "unavailable_balance": "Kullanılamayan bakiye", "unavailable_balance_description": "Kullanılamayan Bakiye: Bu toplam, bekleyen işlemlerde kilitlenen fonları ve jeton kontrol ayarlarınızda aktif olarak dondurduğunuz fonları içerir. Kilitli bakiyeler, ilgili işlemleri tamamlandıktan sonra kullanılabilir hale gelir; dondurulmuş bakiyeler ise siz onları dondurmaya karar verene kadar işlemler için erişilemez durumda kalır.", "unspent_change": "Değiştirmek", - "tor_connection": "Tor bağlantısı" + "tor_connection": "Tor bağlantısı", + "setup_warning_2fa_text": "Cake 2FA, cüzdandaki belirli eylemler için ikinci bir kimlik doğrulamadır. Soğuk hava deposu kadar güvenli DEĞİLDİR.\n 2FA uygulamanıza veya şifre anahtarlarınıza erişiminizi kaybederseniz bu cüzdana erişimi KAYBEDECEKSİNİZ.\n Cüzdanınızı anımsatıcı tohumdan geri yüklemeniz gerekecek.\n 2FA veya anımsatıcı tohumlarınıza erişiminizi kaybederseniz pasta desteği size yardımcı olamayacaktır. Cake 2FA'yı kullanmadan önce kılavuzu okumanızı öneririz.", + "scan_qr_on_device": "Bu QR kodunu başka bir cihazda tarayın", + "how_to_use": "Nasıl kullanılır" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index c53aa59ae..2789f9347 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -625,9 +625,9 @@ "totp_verification_success": "Перевірка успішна!", "totp_2fa_failure": "Невірний код. Спробуйте інший код або створіть новий секретний ключ. Використовуйте сумісний додаток 2FA, який підтримує 8-значні коди та SHA512.", "enter_totp_code": "Будь ласка, введіть код TOTP.", - "add_secret_code": "Додайте цей секретний код на інший пристрій", + "add_secret_code": "Або додайте цей секретний код до програми автентифікації", "totp_secret_code": "Секретний код TOTP", - "setup_2fa_text": "Торт 2FA НЕ такий безпечний, як холодне зберігання. 2FA захищає від основних типів атак, наприклад ваш друг надає ваш відбиток пальця, поки ви спите.\n\n Cake 2FA НЕ захищає від скомпрометованого пристрою досвідченим зловмисником.\n\n Якщо ви втратите доступ до своїх кодів 2FA , ВИ ВТРАТИТЕ ДОСТУП ДО ЦЬОГО ГАМАНЦЯ. Вам потрібно буде відновити свій гаманець з мнемонічного коду. ТОМУ ВИ ПОВИННІ СТВОРИТИ РЕЗЕРВНУ КОПІЮ СВОЇХ МНЕМОНІЧНИХ НАСІН! Крім того, хтось із доступом до ваших мнемонічних початкових значень зможе викрасти ваші кошти, оминаючи Cake 2FA.\n\n Співробітники служби підтримки Cake не зможуть вам допомогти, якщо ви втратите доступ до своїх мнемонічних вихідних даних, оскільки Cake є гаманець без опіки.", + "setup_2fa_text": "Cake 2FA працює через TOTP як другий фактор автентифікації.\n\nДля TOTP Cake 2FA потрібен SHA-512 і підтримка 8 цифр; це забезпечує підвищену безпеку. Додаткову інформацію та підтримувані програми можна знайти в посібнику тут.", "setup_totp_recommended": "Налаштувати TOTP (рекомендовано)", "disable_buy": "Вимкнути дію покупки", "disable_sell": "Вимкнути дію продажу", @@ -741,5 +741,8 @@ "unavailable_balance": "Недоступний баланс", "unavailable_balance_description": "Недоступний баланс: ця сума включає кошти, заблоковані в незавершених транзакціях, і ті, які ви активно заморозили в налаштуваннях контролю монет. Заблоковані баланси стануть доступними після завершення відповідних транзакцій, тоді як заморожені баланси залишаються недоступними для транзакцій, доки ви не вирішите їх розморозити.", "unspent_change": "Зміна", - "tor_connection": "Підключення Tor" + "tor_connection": "Підключення Tor", + "setup_warning_2fa_text": "Cake 2FA — друга аутентифікація для певних дій у гаманці. Це НЕ так безпечно, як холодне зберігання.\n Якщо ви втратите доступ до своєї програми 2FA або ключів доступу, ви втратите доступ до цього гаманця.\n Вам потрібно буде відновити свій гаманець з мнемоніки.\n Служба підтримки Cake не зможе вам допомогти, якщо ви втратите доступ до 2FA або мнемонічних насадок. Перед використанням Cake 2FA рекомендуємо прочитати інструкцію.", + "scan_qr_on_device": "Відскануйте цей QR-код на іншому пристрої", + "how_to_use": "Як використовувати" } diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index d974c4ee1..4e920aad3 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -617,9 +617,9 @@ "totp_verification_success": "توثیق کامیاب!", "totp_2fa_failure": "غلط کوڈ. براہ کرم ایک مختلف کوڈ آزمائیں یا ایک نئی خفیہ کلید بنائیں۔ ایک ہم آہنگ 2FA ایپ استعمال کریں جو 8 ہندسوں کے کوڈز اور SHA512 کو سپورٹ کرتی ہو۔", "enter_totp_code": "براہ کرم TOTP کوڈ درج کریں۔", - "add_secret_code": "اس خفیہ کوڈ کو کسی اور ڈیوائس میں شامل کریں۔", + "add_secret_code": " ۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮟﯿﻣ ﭗﯾﺍ ﮦﺪﻨﻨﮐ ﻖﯾﺪﺼﺗ ﻮﮐ ﮈﻮﮐ ﮧﯿﻔﺧ ﺱﺍ ،ﺎﯾ", "totp_secret_code": "TOTP خفیہ کوڈ", - "setup_2fa_text": "کیک 2FA کولڈ اسٹوریج کی طرح محفوظ نہیں ہے۔ 2FA بنیادی قسم کے حملوں سے حفاظت کرتا ہے، جیسے کہ آپ کا دوست آپ کے سوتے وقت آپ کے فنگر پرنٹ فراہم کرتا ہے۔\n\n کیک 2FA کسی جدید حملہ آور کے ذریعے سمجھوتہ کرنے والے آلہ سے حفاظت نہیں کرتا ہے۔\n\n اگر آپ اپنے 2FA کوڈز تک رسائی کھو دیتے ہیں ، آپ اس بٹوے تک رسائی سے محروم ہو جائیں گے۔ آپ کو یادداشت کے بیج سے اپنے بٹوے کو بحال کرنے کی ضرورت ہوگی۔ اس لیے آپ کو اپنے یادداشت کے بیجوں کا بیک اپ لینا چاہیے! اس کے علاوہ، آپ کے یادداشت کے بیج تک رسائی رکھنے والا کوئی شخص کیک 2FA کو نظرانداز کرتے ہوئے آپ کے فنڈز چرا سکے گا۔\n\n اگر آپ اپنے یادداشت کے بیج تک رسائی کھو دیتے ہیں تو کیک کا معاون عملہ آپ کی مدد نہیں کر سکے گا، کیونکہ کیک ایک ہے غیر نگہداشت پرس.", + "setup_2fa_text": " ۔ﮯﮨ ﺎﺗﺮﮐ ﻡﺎﮐ ﮯﻌﯾﺭﺫ ﮯﮐ TOTP ﺮﭘ ﺭﻮﻃ ﮯﮐ ﺮﺼﻨﻋ ﯽﻘﯾﺪﺼﺗ ﮮﺮﺳﻭﺩ 2FA ﮏﯿﮐ", "setup_totp_recommended": "TOTP ترتیب دیں (تجویز کردہ)", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", @@ -733,5 +733,8 @@ "unavailable_balance": "ﺲﻨﻠﯿﺑ ﺏﺎﯿﺘﺳﺩ ﺮﯿﻏ", "unavailable_balance_description": "۔ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﮧﻠﺼﯿﻓ ﺎﮐ ﮯﻧﺮﮐ ﺪﻤﺠﻨﻣ ﻥﺍ ﮟﯿﮩﻧﺍ ﭖﺁ ﮧﮐ ﮏﺗ ﺐﺟ ﮟﯿﮨ ﮯﺘﮨﺭ ﯽﺋﺎﺳﺭ ﻞﺑﺎﻗﺎﻧ ﮏﺗ ﺖﻗﻭ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﻦﯾﺩ ﻦﯿﻟ ﺲﻨﻠﯿﺑ ﺪﻤﺠﻨﻣ ﮧﮐ ﺐﺟ ،ﮯﮔ ﮟﯿﺋﺎﺟ ﻮﮨ ﺏﺎﯿﺘﺳﺩ ﺲﻨﻠﯿﺑ ﻞﻔﻘﻣ ﺪﻌﺑ ﮯﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﻦﯾﺩ ﻦﯿﻟ ﮧﻘﻠﻌﺘﻣ ﮯﮐ ﻥﺍ ۔ﮯﮨ ﺎﮭﮐﺭ ﺮ", "unspent_change": "تبدیل کریں", - "tor_connection": "ﻦﺸﮑﻨﮐ ﺭﻮﭨ" + "tor_connection": "ﻦﺸﮑﻨﮐ ﺭﻮﭨ", + "setup_warning_2fa_text": "۔ﮯﮨ ﮟﯿﮩﻧ ﻅﻮﻔﺤﻣ ﺡﺮﻃ ﯽﮐ ﺞﯾﺭﻮﭩﺳﺍ ﮉﻟﻮﮐ ﮧﯾ ۔ﮯﮨ ﻖﯾﺪﺼﺗ ﯼﺮﺳﻭﺩ ﮏﯾﺍ ﮯﯿﻟ ﮯﮐ ﮞﻮﯿﺋﺍﻭﺭﺭﺎﮐ ﺹﻮ", + "scan_qr_on_device": " ۔ﮟﯾﺮﮐ ﻦﯿﮑﺳﺍ ﺮﭘ ﺲﺋﺍﻮﯾﮈ ﺭﻭﺍ ﯽﺴﮐ ﻮﮐ ﮈﻮﮐ QR ﺱﺍ", + "how_to_use": " ﮧﻘﯾﺮﻃ ﺎﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ" } diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 220db628b..7009282f9 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -619,9 +619,9 @@ "totp_verification_success": "Ìbẹrẹ dọkita!", "totp_2fa_failure": "Koodu ti o daju ko ri. Jọwọ jẹ koodu miiran tabi ṣiṣẹ iwe kiakia. Lo fun 2FA eto ti o ba ṣe ni jẹ 2FA ti o gba idaniloju 8-digits ati SHA512.", "enter_totp_code": "Jọwọ pọ koodu TOTP.", - "add_secret_code": "Fọya koodu iye yii si eto miiran", + "add_secret_code": "Tabi, ṣafikun koodu aṣiri yii si ohun elo onijeri kan", "totp_secret_code": "Koodu iye TOTP", - "setup_2fa_text": "Cake 2FA kii ṣe nipasẹ aisan tabi ni akoso aisan. 2FA ti ṣe pada ninu awọn iṣẹ pataki, bi atilẹyin ti o fun iṣẹ rẹ ti o ti jẹ saanu.\n\n Cake 2FA kii ṣe pada ninu atilẹyin ti o ti ba alabara kan ti o sise gidi gan.\n\n Ti o ba pọ akosile rẹ 2FA, O YOO RI ATOJU SI IWE IWE NA. O yoo nilo lati yan pẹlu iwe iwe ni o ba ṣe iṣẹ rẹ. O ni aṣẹ iru ki o gba asise akojọ iwe iwe rẹ! Nitori a ko ni aṣẹ pẹlu ohun ti o ba ṣe iṣẹ rẹ lati yan pẹlu akojọ iwe iwe rẹ, nitori Cake ni iwe iwe ti ko se iṣẹ itumọ.", + "setup_2fa_text": "Akara oyinbo 2FA ṣiṣẹ nipasẹ TOTP bi ifosiwewe ijẹrisi keji.\n\nAkara oyinbo 2FA's TOTP nilo SHA-512 ati atilẹyin oni-nọmba 8; eyi pese aabo ti o pọ sii. Alaye diẹ sii ati awọn ohun elo atilẹyin ni a le rii ninu itọsọna naa Nibi.", "setup_totp_recommended": "Sọ TOTP (Kẹṣọdọ)", "disable_buy": "Ko iṣọrọ ọja", "disable_sell": "Ko iṣọrọ iṣọrọ", @@ -735,5 +735,8 @@ "unavailable_balance": "Iwontunwonsi ti ko si", "unavailable_balance_description": "Iwontunws.funfun ti ko si: Lapapọ yii pẹlu awọn owo ti o wa ni titiipa ni awọn iṣowo isunmọ ati awọn ti o ti didi ni itara ninu awọn eto iṣakoso owo rẹ. Awọn iwọntunwọnsi titiipa yoo wa ni kete ti awọn iṣowo oniwun wọn ba ti pari, lakoko ti awọn iwọntunwọnsi tio tutunini ko ni iraye si fun awọn iṣowo titi iwọ o fi pinnu lati mu wọn kuro.", "unspent_change": "Yipada", - "tor_connection": "Tor asopọ" + "tor_connection": "Tor asopọ", + "setup_warning_2fa_text": "Akara oyinbo 2FA jẹ ijẹrisi keji fun awọn iṣe kan ninu apamọwọ. Ko ṣe aabo bi ibi ipamọ tutu.\n Ti o ba padanu iraye si ohun elo 2FA tabi awọn bọtini iwọle, iwọ YOO padanu iraye si apamọwọ yii.\n Iwọ yoo nilo lati mu pada apamọwọ rẹ lati inu irugbin mnemonic.\n Atilẹyin akara oyinbo kii yoo ni anfani lati ṣe iranlọwọ fun ọ ti o ba padanu iraye si 2FA tabi awọn irugbin mnemonic rẹ. Ṣaaju lilo akara oyinbo 2FA, a ṣeduro kika nipasẹ itọsọna naa.", + "scan_qr_on_device": "Ṣe ayẹwo koodu QR yii lori ẹrọ miiran", + "how_to_use": "Bawo ni lati lo" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index c3678bf41..175e15093 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -624,9 +624,9 @@ "totp_verification_success": "验证成功!", "totp_2fa_failure": "不正确的代码。 请尝试不同的代码或生成新的密钥。 使用支持 8 位代码和 SHA512 的兼容 2FA 应用程序。", "enter_totp_code": "请输入 TOTP 代码。", - "add_secret_code": "将此密码添加到另一台设备", + "add_secret_code": "或者,将此密码添加到身份验证器应用程序中", "totp_secret_code": "TOTP密码", - "setup_2fa_text": "Cake 2FA 不如冷藏安全。 2FA 可防止基本类型的攻击,例如您的朋友在您睡觉时提供您的指纹。\n\n Cake 2FA 无法防止老练的攻击者破坏设备。\n\n 如果您无法访问您的 2FA 代码, 您将无法访问此钱包。您将需要从助记词种子恢复您的钱包。因此,您必须备份您的助记词种子!此外,有权访问您的助记种子的人将能够绕过 Cake 2FA 窃取您的资金。\n\n 如果您无法访问您的助记种子,Cake 支持人员将无法帮助您,因为 Cake 是一个非托管钱包。", + "setup_2fa_text": "Cake 2FA 通过 TOTP 作为第二个身份验证因素。\n\nCake 2FA 的 TOTP 需要 SHA-512 和 8 位数字支持;这提供了更高的安全性。更多信息和支持的应用程序可以在此处的指南中找到。", "setup_totp_recommended": "设置 TOTP(推荐)", "disable_buy": "禁用购买操作", "disable_sell": "禁用卖出操作", @@ -740,5 +740,8 @@ "unavailable_balance": "不可用余额", "unavailable_balance_description": "不可用余额:此总额包括锁定在待处理交易中的资金以及您在硬币控制设置中主动冻结的资金。一旦各自的交易完成,锁定的余额将变得可用,而冻结的余额在您决定解冻之前仍然无法进行交易。", "unspent_change": "改变", - "tor_connection": "Tor连接" + "tor_connection": "Tor连接", + "setup_warning_2fa_text": "Cake 2FA 是对钱包中某些操作的二次验证。它不如冷藏那么安全。\n 如果您无法访问 2FA 应用程序或密钥,您将无法访问此钱包。\n 您需要从助记词种子中恢复您的钱包。\n 如果您无法访问 2FA 或助记词种子,Cake 支持将无法为您提供帮助。在使用 Cake 2FA 之前,我们建议您阅读该指南。", + "scan_qr_on_device": "在另一台设备上扫描此二维码", + "how_to_use": "如何使用" } From 747a760124cd4129561659f202744960b15a0d7a Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 13 Dec 2023 14:08:18 +0200 Subject: [PATCH 06/14] willPopScope fix --- lib/src/screens/seed/warning_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index 7bd87113b..79560b3d4 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -31,7 +31,7 @@ class WarningPage extends BasePage { final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; return WillPopScope( - onWillPop: () async => false, + onWillPop: () async => !isPreSeedPage, child: Container( alignment: Alignment.center, padding: EdgeInsets.all(24), From 1c53229ea0cdc9196263e620140cd14af35cf512 Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 13 Dec 2023 17:33:51 +0200 Subject: [PATCH 07/14] minor fix --- lib/view_model/advanced_privacy_settings_view_model.dart | 4 ++++ lib/view_model/wallet_new_vm.dart | 3 +++ 2 files changed, 7 insertions(+) diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index 483f0837b..75d7a9eb4 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/entities/seed_phrase_length.dart'; +import 'package:cake_wallet/entities/seed_type.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:mobx/mobx.dart'; @@ -37,6 +38,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { @computed SeedPhraseLength get seedPhraseLength => _settingsStore.seedPhraseLength; + @computed + bool get isPolySeed => _settingsStore.moneroSeedType == SeedType.polyseed; + @action void setFiatApiMode(FiatApiMode fiatApiMode) => _settingsStore.fiatApiMode = fiatApiMode; diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index 0a80a279e..d4a0c4c00 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -38,6 +38,9 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { int get seedPhraseWordsLength { switch (type) { case WalletType.monero: + if(advancedPrivacySettingsViewModel.isPolySeed) { + return 16; + } return 25; case WalletType.ethereum: case WalletType.bitcoinCash: From 660cd442443a62e50c6e6fbf17391bfae65bb9c9 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 14 Dec 2023 12:58:02 +0200 Subject: [PATCH 08/14] update localization files --- lib/src/screens/seed/warning_page.dart | 5 ++--- res/values/strings_ar.arb | 4 ++-- res/values/strings_bg.arb | 6 +++--- res/values/strings_cs.arb | 6 +++--- res/values/strings_de.arb | 6 +++--- res/values/strings_en.arb | 6 +++--- res/values/strings_es.arb | 6 +++--- res/values/strings_fr.arb | 6 +++--- res/values/strings_ha.arb | 7 ++++--- res/values/strings_hi.arb | 6 +++--- res/values/strings_hr.arb | 6 +++--- res/values/strings_id.arb | 6 +++--- res/values/strings_it.arb | 6 +++--- res/values/strings_ja.arb | 6 +++--- res/values/strings_ko.arb | 6 +++--- res/values/strings_my.arb | 6 +++--- res/values/strings_nl.arb | 6 +++--- res/values/strings_pl.arb | 6 +++--- res/values/strings_pt.arb | 6 +++--- res/values/strings_ru.arb | 6 +++--- res/values/strings_th.arb | 6 +++--- res/values/strings_tl.arb | 6 +++--- res/values/strings_tr.arb | 6 +++--- res/values/strings_uk.arb | 6 +++--- res/values/strings_ur.arb | 6 +++--- res/values/strings_yo.arb | 6 +++--- res/values/strings_zh.arb | 6 +++--- 27 files changed, 80 insertions(+), 80 deletions(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index 79560b3d4..f29f69a05 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -56,11 +56,10 @@ class WarningPage extends BasePage { : S.of(context).setup_warning_2fa_text, textAlign: TextAlign.center, style: TextStyle( + height: 1.7, fontSize: 14, fontWeight: FontWeight.normal, - color: isPreSeedPage - ? Theme.of(context).extension()!.secondaryTextColor - : Theme.of(context).extension()!.titleColor)), + color: Theme.of(context).extension()!.secondaryTextColor)), ), ), PrimaryButton( diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 79b385e47..f8b79957e 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -623,8 +623,8 @@ "enter_totp_code": "الرجاء إدخال رمز TOTP.", "add_secret_code": " ﺔﻗﺩﺎﺼﻤﻟﺍ ﻖﻴﺒﻄﺗ ﻰﻟﺇ ﻱﺮﺴﻟﺍ ﺰﻣﺮﻟﺍ ﺍﺬﻫ ﻒﺿﺃ ﻭﺃ", "totp_secret_code": "كود TOTP السري", - "setup_2fa_text": " .ﻲﻧﺎﺜﻟﺍ ﺔﻗﺩﺎﺼﻤﻟﺍ ﻞﻣﺎﻌﻛ TOTP ﻝﻼﺧ ﻦﻣ Cake 2FA ﻞﻤﻌﻳ", - "setup_totp_recommended": "إعداد TOTP (موصى به)", + "setup_2fa_text": " .ﻲﻧﺎﺜﻟﺍ ﺔﻗﺩﺎﺼﻤﻟﺍ ﻞﻣﺎﻌﻛ TOTP ﻡﺍﺪﺨﺘﺳﺎﺑ Cake 2FA ﻞﻤﻌﻳ", + "setup_totp_recommended": " TOTP ﺩﺍﺪﻋﺇ", "disable_buy": "تعطيل إجراء الشراء", "disable_sell": "قم بتعطيل إجراء البيع", "cake_2fa_preset": " كعكة 2FA مسبقا", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index b806d0f12..684fb0463 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -619,8 +619,8 @@ "enter_totp_code": "Моля, въведете TOTP кода.", "add_secret_code": "Или добавете този таен код към приложение за удостоверяване", "totp_secret_code": "TOTP таен код", - "setup_2fa_text": "Cake 2FA работи чрез TOTP като втори фактор за удостоверяване.\n\nTOTP на Cake 2FA изисква SHA-512 и поддръжка на 8 цифри; това осигурява повишена сигурност. Повече информация и поддържани приложения можете да намерите в ръководството тук.", - "setup_totp_recommended": "Настройка на TOTP (препоръчително)", + "setup_2fa_text": "Cake 2FA работи с помощта на TOTP като втори фактор за удостоверяване.\n\nTOTP на Cake 2FA изисква SHA-512 и поддръжка на 8 цифри; това осигурява повишена сигурност. Повече информация и поддържани приложения можете да намерите в ръководството.", + "setup_totp_recommended": "Настройка на TOTP", "disable_buy": "Деактивирайте действието за покупка", "disable_sell": "Деактивирайте действието за продажба", "auto_generate_subaddresses": "Автоматично генериране на подадреси", @@ -734,7 +734,7 @@ "unavailable_balance_description": "Неналично салдо: Тази обща сума включва средства, които са заключени в чакащи транзакции и тези, които сте замразили активно в настройките за контрол на монетите. Заключените баланси ще станат достъпни, след като съответните им транзакции бъдат завършени, докато замразените баланси остават недостъпни за транзакции, докато не решите да ги размразите.", "unspent_change": "Промяна", "tor_connection": "Tor връзка", - "setup_warning_2fa_text": "Cake 2FA е второ удостоверяване за определени действия в портфейла. НЕ е толкова сигурно, колкото хладилното съхранение.\n Ако загубите достъп до вашето 2FA приложение или пароли, ЩЕ загубите достъп до този портфейл.\n Ще трябва да възстановите портфейла си от мнемоничното семе.\n Поддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите 2FA или мнемонични семена. Преди да използвате Cake 2FA, препоръчваме да прочетете ръководството.", + "setup_warning_2fa_text": "Cake 2FA е второ удостоверяване за определени действия в портфейла. НЕ е толкова сигурно, колкото хладилното съхранение.\n\nАко загубите достъп до вашето 2FA приложение или TOTP ключове, ЩЕ загубите достъп до този портфейл. Ще трябва да възстановите портфейла си от мнемоничното семе.\n\nПоддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите 2FA или мнемонични семена.\nПреди да използвате Cake 2FA, препоръчваме да прочетете ръководството.", "scan_qr_on_device": "Сканирайте този QR код на друго устройство", "how_to_use": "Как да използвам", "seed_hex_form": "Семена от портфейл (шестнадесетична форма)", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 27015c7fd..4622304b8 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -619,8 +619,8 @@ "enter_totp_code": "Zadejte kód TOTP.", "add_secret_code": "Nebo přidejte tento tajný kód do ověřovací aplikace", "totp_secret_code": "Tajný kód TOTP", - "setup_2fa_text": "Cake 2FA funguje přes TOTP jako druhý autentizační faktor.\n\nTOTP Cake 2FA vyžaduje SHA-512 a podporu 8 číslic; to poskytuje zvýšenou bezpečnost. Další informace a podporované aplikace naleznete v průvodci zde.", - "setup_totp_recommended": "Nastavit TOTP (doporučeno)", + "setup_2fa_text": "Cake 2FA pracuje s použitím TOTP jako druhého autentizačního faktoru.\n\nTOTP Cake 2FA vyžaduje SHA-512 a podporu 8 číslic; to poskytuje zvýšenou bezpečnost. Další informace a podporované aplikace naleznete v průvodci.", + "setup_totp_recommended": "Nastavení TOTP", "disable_buy": "Zakázat akci nákupu", "disable_sell": "Zakázat akci prodeje", "auto_generate_subaddresses": "Automaticky generovat podadresy", @@ -734,7 +734,7 @@ "unavailable_balance_description": "Nedostupný zůstatek: Tento součet zahrnuje prostředky, které jsou uzamčeny v nevyřízených transakcích a ty, které jste aktivně zmrazili v nastavení kontroly mincí. Uzamčené zůstatky budou k dispozici po dokončení příslušných transakcí, zatímco zmrazené zůstatky zůstanou pro transakce nepřístupné, dokud se nerozhodnete je uvolnit.", "unspent_change": "Změna", "tor_connection": "Připojení Tor", - "setup_warning_2fa_text": "Cake 2FA je druhá autentizace pro určité akce v peněžence. NENÍ tak bezpečný jako skladování v chladu.\n Pokud ztratíte přístup ke své aplikaci 2FA nebo přístupovým klíčům, ztratíte přístup k této peněžence.\n Budete muset obnovit svou peněženku z mnemotechnického semínka.\n Podpora dortů vám nebude schopna pomoci, pokud ztratíte přístup ke svým 2FA nebo mnemotechnickým semenům. Před použitím Cake 2FA doporučujeme přečíst si průvodce.", + "setup_warning_2fa_text": "Budete muset obnovit svou peněženku z mnemotechnického semínka.\n\nPodpora dortů vám nebude schopna pomoci, pokud ztratíte přístup ke svým 2FA nebo mnemotechnickým semenům.\nCake 2FA je druhá autentizace pro určité akce v peněžence. Před použitím Cake 2FA doporučujeme přečíst si průvodce.NENÍ tak bezpečný jako skladování v chladu.\n\nPokud ztratíte přístup ke své aplikaci 2FA nebo klíčům TOTP, ztratíte přístup k této peněžence. ", "scan_qr_on_device": "Naskenujte tento QR kód na jiném zařízení", "how_to_use": "Jak používat", "seed_hex_form": "Semeno peněženky (hex formulář)", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 0281ecc77..c2a80a1f1 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Bitte geben Sie den TOTP-Code ein.", "add_secret_code": "Oder fügen Sie diesen Geheimcode einer Authentifizierungs-App hinzu", "totp_secret_code": "TOTP-Geheimcode", - "setup_2fa_text": "Cake 2FA funktioniert über TOTP als zweiten Authentifizierungsfaktor.\n\nDas TOTP von Cake 2FA erfordert SHA-512 und 8-stellige Unterstützung; Dies sorgt für erhöhte Sicherheit. Weitere Informationen und unterstützte Apps finden Sie im Leitfaden hier.", - "setup_totp_recommended": "TOTP einrichten (empfohlen)", + "setup_2fa_text": "Cake 2FA verwendet TOTP als zweiten Authentifizierungsfaktor.\n\nDas TOTP von Cake 2FA erfordert SHA-512 und 8-stellige Unterstützung; Dies sorgt für erhöhte Sicherheit. Weitere Informationen und unterstützte Apps finden Sie im Leitfaden.", + "setup_totp_recommended": "TOTP einrichten", "disable_buy": "Kaufaktion deaktivieren", "disable_sell": "Verkaufsaktion deaktivieren", "cake_2fa_preset": "Kuchen 2FA-Voreinstellung", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Nicht verfügbares Guthaben: Diese Summe umfasst Gelder, die in ausstehenden Transaktionen gesperrt sind, und solche, die Sie in Ihren Münzkontrolleinstellungen aktiv eingefroren haben. Gesperrte Guthaben werden verfügbar, sobald die entsprechenden Transaktionen abgeschlossen sind, während eingefrorene Guthaben für Transaktionen nicht zugänglich bleiben, bis Sie sich dazu entschließen, sie wieder freizugeben.", "unspent_change": "Wechselgeld", "tor_connection": "Tor-Verbindung", - "setup_warning_2fa_text": "Cake 2FA ist eine zweite Authentifizierung für bestimmte Aktionen im Wallet. Es ist NICHT so sicher wie eine Kühllagerung.\n Wenn Sie den Zugriff auf Ihre 2FA-App oder Ihre Passkeys verlieren, verlieren Sie auch den Zugriff auf dieses Wallet.\n Sie müssen Ihr Wallet aus dem mnemonischen Seed wiederherstellen.\n Der Cake-Support kann Ihnen nicht weiterhelfen, wenn Sie den Zugriff auf Ihre 2FA- oder Mnemonik-Seeds verlieren. Bevor Sie Cake 2FA verwenden, empfehlen wir Ihnen, die Anleitung durchzulesen.", + "setup_warning_2fa_text": "Sie müssen Ihr Wallet aus dem mnemonischen Seed wiederherstellen.\n\nDer Cake-Support kann Ihnen nicht weiterhelfen, wenn Sie den Zugriff auf Ihre 2FA- oder Mnemonik-Seeds verlieren.\nCake 2FA ist eine zweite Authentifizierung für bestimmte Aktionen im Wallet. Bevor Sie Cake 2FA verwenden, empfehlen wir Ihnen, die Anleitung durchzulesen.Es ist NICHT so sicher wie eine Kühllagerung.\n\nWenn Sie den Zugriff auf Ihre 2FA-App oder Ihre TOTP-Schlüssel verlieren, verlieren Sie auch den Zugriff auf dieses Wallet. ", "scan_qr_on_device": "Scannen Sie diesen QR-Code auf einem anderen Gerät", "how_to_use": "Wie benutzt man", "seed_hex_form": "Brieftaschensamen (Sechskantform)", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 91789e613..37ce99a91 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -629,9 +629,9 @@ "scan_qr_on_device": "Scan this QR code on another device", "add_secret_code": "Or, add this secret code to an authenticator app", "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Cake 2FA works through TOTP as the second authentication factor.\n\nCake 2FA's TOTP requires SHA-512 and 8 digit support; this provides increased security. More information and supported apps can be found in the guide here.", - "setup_warning_2fa_text": "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage.\n If you lose access to your 2FA app or passkeys, you WILL lose access to this wallet.\n You will need to restore your wallet from the mnemonic seed.\n Cake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds. Before using Cake 2FA, we recommend reading through the guide.", - "setup_totp_recommended": "Set up TOTP (Recommended)", + "setup_2fa_text": "Cake 2FA works using TOTP as the second authentication factor.\n\nCake 2FA's TOTP requires SHA-512 and 8 digit support; this provides increased security. More information and supported apps can be found in the guide.", + "setup_warning_2fa_text": "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage.\n\nIf you lose access to your 2FA app or TOTP keys, you WILL lose access to this wallet. You will need to restore your wallet from the mnemonic seed.\n\nCake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds.\nBefore using Cake 2FA, we recommend reading through the guide.", + "setup_totp_recommended": "Setup TOTP", "disable_buy": "Disable buy action", "disable_sell": "Disable sell action", "cake_2fa_preset": "Cake 2FA Preset", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 84647c28b..375ec593c 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Ingrese el código TOTP.", "add_secret_code": "O agregue este código secreto a una aplicación de autenticación", "totp_secret_code": "Código secreto TOTP", - "setup_2fa_text": "Cake 2FA funciona a través de TOTP como segundo factor de autenticación.\n\nEl TOTP de Cake 2FA requiere SHA-512 y soporte de 8 dígitos; esto proporciona una mayor seguridad. Puede encontrar más información y aplicaciones compatibles en la guía aquí.", - "setup_totp_recommended": "Configurar TOTP (Recomendado)", + "setup_2fa_text": "Cake 2FA funciona utilizando TOTP como segundo factor de autenticación.\n\nEl TOTP de Cake 2FA requiere SHA-512 y soporte de 8 dígitos; esto proporciona una mayor seguridad. Puede encontrar más información y aplicaciones compatibles en la guía.", + "setup_totp_recommended": "Configurar TOTP", "disable_buy": "Desactivar acción de compra", "disable_sell": "Desactivar acción de venta", "cake_2fa_preset": "Pastel 2FA preestablecido", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", "unspent_change": "Cambiar", "tor_connection": "conexión tor", - "setup_warning_2fa_text": "Cake 2FA es una segunda autenticación para ciertas acciones en la billetera. NO es tan seguro como el almacenamiento en frío.\n Si pierde el acceso a su aplicación 2FA o a sus claves de acceso, perderá el acceso a esta billetera.\n Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n El soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas. Antes de usar Cake 2FA, recomendamos leer la guía.", + "setup_warning_2fa_text": "Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n\nEl soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas.\nCake 2FA es una segunda autenticación para ciertas acciones en la billetera. Antes de usar Cake 2FA, recomendamos leer la guía.NO es tan seguro como el almacenamiento en frío.\n\nSi pierde el acceso a su aplicación 2FA o a sus claves TOTP, perderá el acceso a esta billetera. ", "scan_qr_on_device": "Escanea este código QR en otro dispositivo", "how_to_use": "Cómo utilizar", "seed_hex_form": "Semilla de billetera (forma hexadecimal)", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index df83bab5a..db4a077a0 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Veuillez entrer le code TOTP.", "add_secret_code": "Ou ajoutez ce code secret à une application d'authentification", "totp_secret_code": "Secret TOTP", - "setup_2fa_text": "Cake 2FA fonctionne via TOTP comme deuxième facteur d'authentification.\n\nLe TOTP de Cake 2FA nécessite la prise en charge de SHA-512 et de 8 chiffres ; cela offre une sécurité accrue. Plus d’informations et les applications prises en charge peuvent être trouvées dans le guide ici.", - "setup_totp_recommended": "Configurer TOTP (recommandé)", + "setup_2fa_text": "Cake 2FA fonctionne en utilisant TOTP comme deuxième facteur d'authentification.\n\nLe TOTP de Cake 2FA nécessite la prise en charge de SHA-512 et de 8 chiffres ; cela offre une sécurité accrue. Plus d’informations et les applications prises en charge peuvent être trouvées dans le guide.", + "setup_totp_recommended": "Configurer TOTP", "disable_buy": "Désactiver l'action d'achat", "disable_sell": "Désactiver l'action de vente", "cake_2fa_preset": "Cake 2FA prédéfini", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Solde indisponible : ce total comprend les fonds bloqués dans les transactions en attente et ceux que vous avez activement gelés dans vos paramètres de contrôle des pièces. Les soldes bloqués deviendront disponibles une fois leurs transactions respectives terminées, tandis que les soldes gelés resteront inaccessibles aux transactions jusqu'à ce que vous décidiez de les débloquer.", "unspent_change": "Changement", "tor_connection": "Connexion Tor", - "setup_warning_2fa_text": "Cake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n Si vous perdez l'accès à votre application 2FA ou à vos mots de passe, vous perdrez l'accès à ce portefeuille.\n Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n Le support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.", + "setup_warning_2fa_text": "Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n\nLe support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques.\nCake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n\nSi vous perdez l'accès à votre application 2FA ou à vos clés TOTP, vous perdrez l'accès à ce portefeuille. ", "scan_qr_on_device": "Scannez ce code QR sur un autre appareil", "how_to_use": "Comment utiliser", "seed_hex_form": "Graine du portefeuille (forme hexagonale)", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 7a31cd2e3..2d98ac1c5 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -721,8 +721,8 @@ "unavailable_balance_description": "Ma'auni Babu: Wannan jimlar ya haɗa da kuɗi waɗanda ke kulle a cikin ma'amaloli da ke jiran aiki da waɗanda kuka daskare sosai a cikin saitunan sarrafa kuɗin ku. Ma'auni da aka kulle za su kasance da zarar an kammala ma'amalolinsu, yayin da daskararrun ma'auni ba za su iya samun damar yin ciniki ba har sai kun yanke shawarar cire su.", "unspent_change": "Canza", "tor_connection": "Tor haɗin gwiwa", - "setup_2fa_text": "Cake 2FA yana aiki ta hanyar TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da aikace-aikacen tallafi a cikin jagorar nan.", - "setup_warning_2fa_text": "Cake 2FA tabbaci ne na biyu don wasu ayyuka a cikin walat. BA shi da tsaro kamar ajiyar sanyi.\n Idan ka rasa damar yin amfani da app ɗinka na 2FA ko maɓallan wucewa, ZA KA rasa damar shiga wannan wallet ɗin.\n Kuna buƙatar dawo da walat ɗin ku daga zuriyar mnemonic.\n Tallafin kek ba zai iya taimaka muku ba idan kun rasa damar yin amfani da 2FA ko tsaba na mnemonic. Kafin amfani da Cake 2FA, muna ba da shawarar karanta ta cikin jagorar.", + "setup_2fa_text": "Cake 2FA yana aiki ta amfani da TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da ƙa'idodi masu goyan baya a cikin jagorar.", + "setup_warning_2fa_text": "Kuna buƙatar dawo da walat ɗin ku daga zuriyar mnemonic.\n\nTallafin kek ba zai iya taimaka muku ba idan kun rasa damar yin amfani da 2FA ko tsaba na mnemonic.\nCake 2FA tabbaci ne na biyu don wasu ayyuka a cikin walat. Kafin amfani da Cake 2FA, muna ba da shawarar karanta ta cikin jagorar.BA shi da tsaro kamar ajiyar sanyi.\n\nIdan ka rasa damar yin amfani da app ɗinka na 2FA ko maɓallan TOTP, ZA KA rasa damar shiga wannan wallet ɗin. ", "add_secret_code": "Ko, ƙara wannan lambar sirrin zuwa ƙa'idar mai tabbatarwa", "scan_qr_on_device": "Duba wannan lambar QR akan wata na'ura", "how_to_use": "Yadda ake amfani da shi", @@ -736,5 +736,6 @@ "dfx_option_description": "Sayi crypto tare da EUR & CHF. Har zuwa € 990 ba tare da ƙarin KYC ba. Don 'yan kasuwa da abokan ciniki na kamfanoni a Turai", "polygonscan_history": "PolygonScan tarihin kowane zamani", "wallet_seed_legacy": "Tallarin walat walat", - "switchToEVMCompatibleWallet": "Da fatan za a canza zuwa walat ɗin EVM mai jituwa kuma a sake gwadawa (Ethereum, Polygon)" + "switchToEVMCompatibleWallet": "Da fatan za a canza zuwa walat ɗin EVM mai jituwa kuma a sake gwadawa (Ethereum, Polygon)", + "setup_totp_recommended": "Saita TOTP" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 0cd69e82b..699c6d510 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -627,8 +627,8 @@ "enter_totp_code": "कृपया TOTP कोड दर्ज करें।", "add_secret_code": "या, इस गुप्त कोड को प्रमाणक ऐप में जोड़ें", "totp_secret_code": "टीओटीपी गुप्त कोड", - "setup_2fa_text": "केक 2FA दूसरे प्रमाणीकरण कारक के रूप में TOTP के माध्यम से काम करता है।\n\nकेक 2FA के TOTP को SHA-512 और 8 अंकों के समर्थन की आवश्यकता है; इससे अधिक सुरक्षा मिलती है. अधिक जानकारी और समर्थित ऐप्स यहां गाइड में पाए जा सकते हैं।", - "setup_totp_recommended": "टीओटीपी सेट अप करें (अनुशंसित)", + "setup_2fa_text": "केक 2FA दूसरे प्रमाणीकरण कारक के रूप में TOTP का उपयोग करके काम करता है।\n\nकेक 2FA के TOTP को SHA-512 और 8 अंकों के समर्थन की आवश्यकता है; इससे अधिक सुरक्षा मिलती है. अधिक जानकारी और समर्थित ऐप्स गाइड में पाए जा सकते हैं।", + "setup_totp_recommended": "सेटअप टीओटीपी", "disable_buy": "खरीद कार्रवाई अक्षम करें", "disable_sell": "बेचने की कार्रवाई अक्षम करें", "cake_2fa_preset": "केक 2एफए प्रीसेट", @@ -742,7 +742,7 @@ "unavailable_balance_description": "अनुपलब्ध शेष राशि: इस कुल में वे धनराशि शामिल हैं जो लंबित लेनदेन में बंद हैं और जिन्हें आपने अपनी सिक्का नियंत्रण सेटिंग्स में सक्रिय रूप से जमा कर रखा है। लॉक किए गए शेष उनके संबंधित लेन-देन पूरे होने के बाद उपलब्ध हो जाएंगे, जबकि जमे हुए शेष लेन-देन के लिए अप्राप्य रहेंगे जब तक कि आप उन्हें अनफ्रीज करने का निर्णय नहीं लेते।", "unspent_change": "परिवर्तन", "tor_connection": "टोर कनेक्शन", - "setup_warning_2fa_text": "केक 2एफए वॉलेट में कुछ कार्यों के लिए दूसरा प्रमाणीकरण है। यह कोल्ड स्टोरेज जितना सुरक्षित नहीं है।\n यदि आप अपने 2एफए ऐप या पासकी तक पहुंच खो देते हैं, तो आप इस वॉलेट तक पहुंच खो देंगे।\n आपको अपने बटुए को स्मरक बीज से पुनर्स्थापित करने की आवश्यकता होगी।\n यदि आप अपने 2एफए या निमोनिक बीजों तक पहुंच खो देते हैं तो केक समर्थन आपकी सहायता करने में असमर्थ होगा। केक 2एफए का उपयोग करने से पहले, हम गाइड को पढ़ने की सलाह देते हैं।", + "setup_warning_2fa_text": "केक 2एफए वॉलेट में कुछ कार्यों के लिए दूसरा प्रमाणीकरण है। यह कोल्ड स्टोरेज जितना सुरक्षित नहीं है।\n\nयदि आप अपने 2एफए ऐप या टीओटीपी कुंजियों तक पहुंच खो देते हैं, तो आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरक बीज से पुनर्स्थापित करने की आवश्यकता होगी।\n\nयदि आप अपने 2एफए या निमोनिक बीजों तक पहुंच खो देते हैं तो केक समर्थन आपकी सहायता करने में असमर्थ होगा।\nकेक 2एफए का उपयोग करने से पहले, हम गाइड को पढ़ने की सलाह देते हैं।", "scan_qr_on_device": "इस QR कोड को किसी अन्य डिवाइस पर स्कैन करें", "how_to_use": "का उपयोग कैसे करें", "seed_hex_form": "वॉलेट सीड (हेक्स फॉर्म)", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 7dcf30e56..63e5d6f13 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Unesite TOTP kod.", "add_secret_code": "Ili dodajte ovaj tajni kod u aplikaciju za autentifikaciju", "totp_secret_code": "TOTP tajni kod", - "setup_2fa_text": "Cake 2FA radi preko TOTP-a kao drugog faktora provjere autentičnosti.\n\nCake 2FA TOTP zahtijeva SHA-512 i podršku za 8 znamenki; ovo osigurava povećanu sigurnost. Više informacija i podržanih aplikacija možete pronaći u vodiču ovdje.", - "setup_totp_recommended": "Postavite TOTP (preporučeno)", + "setup_2fa_text": "Cake 2FA radi koristeći TOTP kao drugi faktor provjere autentičnosti.\n\nCake 2FA TOTP zahtijeva SHA-512 i podršku za 8 znamenki; ovo osigurava povećanu sigurnost. Više informacija i podržanih aplikacija možete pronaći u vodiču.", + "setup_totp_recommended": "Postavite TOTP", "disable_buy": "Onemogući kupnju", "disable_sell": "Onemogući akciju prodaje", "cake_2fa_preset": "Cake 2FA Preset", @@ -740,7 +740,7 @@ "unavailable_balance_description": "Nedostupno stanje: Ovaj ukupni iznos uključuje sredstva koja su zaključana u transakcijama na čekanju i ona koja ste aktivno zamrznuli u postavkama kontrole novčića. Zaključani saldi postat će dostupni kada se dovrše njihove transakcije, dok zamrznuti saldi ostaju nedostupni za transakcije sve dok ih ne odlučite odmrznuti.", "unspent_change": "Promijeniti", "tor_connection": "Tor veza", - "setup_warning_2fa_text": "Cake 2FA je druga provjera autentičnosti za određene radnje u novčaniku. NIJE siguran kao hladno skladište.\n Ako izgubite pristup svojoj 2FA aplikaciji ili pristupnim ključevima, IZGUBIT ĆETE pristup ovom novčaniku.\n Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena.\n Podrška za kolače neće vam moći pomoći ako izgubite pristup svojim 2FA ili mnemoničkim izvorima. Prije uporabe Cake 2FA preporučujemo da pročitate vodič.", + "setup_warning_2fa_text": "Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena.\n\nPodrška za kolače neće vam moći pomoći ako izgubite pristup svojim 2FA ili mnemoničkim izvorima.\nCake 2FA je druga provjera autentičnosti za određene radnje u novčaniku. Prije uporabe Cake 2FA preporučujemo da pročitate vodič.NIJE siguran kao hladno skladište.\n\nAko izgubite pristup svojoj 2FA aplikaciji ili TOTP ključevima, IZGUBIT ĆETE pristup ovom novčaniku. ", "scan_qr_on_device": "Skenirajte ovaj QR kod na drugom uređaju", "how_to_use": "Kako koristiti", "seed_hex_form": "Sjeme novčanika (šesterokutni oblik)", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index c598c7f6e..3907c969f 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -615,8 +615,8 @@ "enter_totp_code": "Masukkan Kode TOTP.", "add_secret_code": "Atau, tambahkan kode rahasia ini ke aplikasi autentikator", "totp_secret_code": "Kode Rahasia TOTP", - "setup_2fa_text": "Cake 2FA bekerja melalui TOTP sebagai faktor otentikasi kedua.\n\nTOTP Cake 2FA memerlukan SHA-512 dan dukungan 8 digit; ini memberikan peningkatan keamanan. Informasi lebih lanjut dan aplikasi yang didukung dapat ditemukan dalam panduan di sini.", - "setup_totp_recommended": "Siapkan TOTP (Disarankan)", + "setup_2fa_text": "Cake 2FA bekerja menggunakan TOTP sebagai faktor otentikasi kedua.\n\nTOTP Cake 2FA memerlukan SHA-512 dan dukungan 8 digit; ini memberikan peningkatan keamanan. Informasi lebih lanjut dan aplikasi yang didukung dapat ditemukan di panduan.", + "setup_totp_recommended": "Pengaturan TOTP", "disable_buy": "Nonaktifkan tindakan beli", "disable_sell": "Nonaktifkan aksi jual", "auto_generate_subaddresses": "Menghasilkan subalamat secara otomatis", @@ -730,7 +730,7 @@ "unavailable_balance_description": "Saldo Tidak Tersedia: Total ini termasuk dana yang terkunci dalam transaksi yang tertunda dan dana yang telah Anda bekukan secara aktif di pengaturan kontrol koin Anda. Saldo yang terkunci akan tersedia setelah transaksi masing-masing selesai, sedangkan saldo yang dibekukan tetap tidak dapat diakses untuk transaksi sampai Anda memutuskan untuk mencairkannya.", "unspent_change": "Mengubah", "tor_connection": "koneksi Tor", - "setup_warning_2fa_text": "Cake 2FA adalah otentikasi kedua untuk tindakan tertentu di dompet. Ini TIDAK seaman penyimpanan dingin.\n Jika Anda kehilangan akses ke aplikasi 2FA atau kunci sandi, Anda AKAN kehilangan akses ke dompet ini.\n Anda perlu memulihkan dompet Anda dari benih mnemonik.\n Dukungan kue tidak akan dapat membantu Anda jika Anda kehilangan akses ke 2FA atau benih mnemonik. Sebelum menggunakan Cake 2FA, kami sarankan untuk membaca panduannya.", + "setup_warning_2fa_text": "Anda perlu memulihkan dompet Anda dari benih mnemonik.\n\nDukungan kue tidak akan dapat membantu Anda jika Anda kehilangan akses ke 2FA atau benih mnemonik.\nCake 2FA adalah otentikasi kedua untuk tindakan tertentu di dompet. Sebelum menggunakan Cake 2FA, kami sarankan untuk membaca panduannya.Ini TIDAK seaman penyimpanan dingin.\n\nJika Anda kehilangan akses ke aplikasi 2FA atau kunci TOTP, Anda AKAN kehilangan akses ke dompet ini. ", "scan_qr_on_device": "Pindai kode QR ini di perangkat lain", "how_to_use": "Cara Penggunaan", "seed_hex_form": "Biji dompet (bentuk hex)", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 5097d2e4b..50ad4d3c4 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Inserisci il codice TOTP.", "add_secret_code": "Oppure aggiungi questo codice segreto a un'app di autenticazione", "totp_secret_code": "TOTP codice segreto", - "setup_2fa_text": "Cake 2FA funziona tramite TOTP come secondo fattore di autenticazione.\n\nIl TOTP di Cake 2FA richiede il supporto SHA-512 e 8 cifre; ciò fornisce una maggiore sicurezza. Maggiori informazioni e app supportate sono disponibili nella guida qui.", - "setup_totp_recommended": "Imposta TOTP (consigliato)", + "setup_2fa_text": "Cake 2FA funziona utilizzando TOTP come secondo fattore di autenticazione.\n\nIl TOTP di Cake 2FA richiede il supporto SHA-512 e 8 cifre; ciò fornisce una maggiore sicurezza. Maggiori informazioni e app supportate sono disponibili nella guida.", + "setup_totp_recommended": "Imposta TOTP", "disable_buy": "Disabilita l'azione di acquisto", "disable_sell": "Disabilita l'azione di vendita", "auto_generate_subaddresses": "Genera automaticamente sottindirizzi", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Saldo non disponibile: questo totale include i fondi bloccati nelle transazioni in sospeso e quelli che hai congelato attivamente nelle impostazioni di controllo delle monete. I saldi bloccati diventeranno disponibili una volta completate le rispettive transazioni, mentre i saldi congelati rimarranno inaccessibili per le transazioni finché non deciderai di sbloccarli.", "unspent_change": "Modifica", "tor_connection": "Connessione Tor", - "setup_warning_2fa_text": "Cake 2FA è una seconda autenticazione per determinate azioni nel portafoglio. NON è sicuro come la conservazione a freddo.\n Se perdi l'accesso alla tua app 2FA o alle passkey, perderai l'accesso a questo portafoglio.\n Dovrai ripristinare il tuo portafoglio dal seme mnemonico.\n Il supporto di Cake non sarà in grado di assisterti se perdi l'accesso ai tuoi seed 2FA o mnemonici. Prima di utilizzare Cake 2FA, ti consigliamo di leggere la guida.", + "setup_warning_2fa_text": "Dovrai ripristinare il tuo portafoglio dal seme mnemonico.\n\nIl supporto di Cake non sarà in grado di assisterti se perdi l'accesso ai tuoi seed 2FA o mnemonici.\nCake 2FA è una seconda autenticazione per determinate azioni nel portafoglio. Prima di utilizzare Cake 2FA, ti consigliamo di leggere la guida.NON è sicuro come la conservazione a freddo.\n\nSe perdi l'accesso alla tua app 2FA o alle chiavi TOTP, perderai l'accesso a questo portafoglio. ", "scan_qr_on_device": "Scansiona questo codice QR su un altro dispositivo", "how_to_use": "Come usare", "seed_hex_form": "Seme di portafoglio (forma esadecimale)", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 6624a4f5c..151ae48e9 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -627,8 +627,8 @@ "enter_totp_code": "TOTPコードを入力してください。", "add_secret_code": "または、このシークレット コードを認証アプリに追加します", "totp_secret_code": "TOTPシークレットコード", - "setup_2fa_text": "Cake 2FA は、TOTP を通じて 2 番目の認証要素として機能します。\n\nCake 2FA の TOTP には SHA-512 と 8 桁のサポートが必要です。これによりセキュリティが強化されます。詳細とサポートされているアプリについては、こちらのガイドをご覧ください。", - "setup_totp_recommended": "TOTP を設定する (推奨)", + "setup_2fa_text": "Cake 2FA は、TOTP を 2 番目の認証要素として使用して機能します。\n\nCake 2FA の TOTP には SHA-512 と 8 桁のサポートが必要です。これによりセキュリティが強化されます。詳細とサポートされているアプリについてはガイドをご覧ください。", + "setup_totp_recommended": "TOTPのセットアップ", "disable_buy": "購入アクションを無効にする", "disable_sell": "販売アクションを無効にする", "cake_2fa_preset": "ケーキ 2FA プリセット", @@ -742,7 +742,7 @@ "unavailable_balance_description": "利用不可能な残高: この合計には、保留中のトランザクションにロックされている資金と、コイン管理設定でアクティブに凍結した資金が含まれます。ロックされた残高は、それぞれの取引が完了すると利用可能になりますが、凍結された残高は、凍結を解除するまで取引にアクセスできません。", "unspent_change": "変化", "tor_connection": "Tor接続", - "setup_warning_2fa_text": "Cake 2FA は、ウォレット内の特定のアクションに対する 2 番目の認証です。冷蔵保存ほど安全ではありません。\n 2FA アプリまたはパスキーにアクセスできなくなると、このウォレットにもアクセスできなくなります。\n ニーモニックシードからウォレットを復元する必要があります。\n 2FA またはニーモニック シードにアクセスできなくなった場合、Cake サポートはサポートできません。 Cake 2FA を使用する前に、ガイドを一読することをお勧めします。", + "setup_warning_2fa_text": "Cake 2FA は、ウォレット内の特定のアクションに対する 2 番目の認証です。冷蔵保存ほど安全ではありません。\n\n2FA アプリまたは TOTP キーにアクセスできなくなると、このウォレットにもアクセスできなくなります。ニーモニックシードからウォレットを復元する必要があります。\n\n2FA またはニーモニック シードにアクセスできなくなった場合、Cake サポートはサポートできません。\nCake 2FA を使用する前に、ガイドを一読することをお勧めします。", "scan_qr_on_device": "別のデバイスでこの QR コードをスキャンします", "how_to_use": "使い方", "seed_hex_form": "ウォレットシード(ヘックスフォーム)", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index eb21b9142..9404af569 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -627,8 +627,8 @@ "enter_totp_code": "TOTP 코드를 입력하세요.", "add_secret_code": "또는 이 비밀 코드를 인증 앱에 추가하세요.", "totp_secret_code": "TOTP 비밀 코드", - "setup_2fa_text": "Cake 2FA는 TOTP를 두 번째 인증 요소로 사용합니다.\n\nCake 2FA의 TOTP에는 SHA-512 및 8자리 지원이 필요합니다. 이는 보안을 강화합니다. 자세한 내용과 지원되는 앱은 여기 가이드에서 확인할 수 있습니다.", - "setup_totp_recommended": "TOTP 설정(권장)", + "setup_2fa_text": "Cake 2FA는 TOTP를 두 번째 인증 요소로 사용하여 작동합니다.\n\nCake 2FA의 TOTP에는 SHA-512 및 8자리 지원이 필요합니다. 이는 보안을 강화합니다. 자세한 정보와 지원되는 앱은 가이드에서 확인할 수 있습니다.", + "setup_totp_recommended": "TOTP 설정", "disable_buy": "구매 행동 비활성화", "disable_sell": "판매 조치 비활성화", "cake_2fa_preset": "케이크 2FA 프리셋", @@ -740,7 +740,7 @@ "unavailable_balance_description": "사용할 수 없는 잔액: 이 총계에는 보류 중인 거래에 잠겨 있는 자금과 코인 관리 설정에서 적극적으로 동결된 자금이 포함됩니다. 잠긴 잔액은 해당 거래가 완료되면 사용할 수 있게 되며, 동결된 잔액은 동결을 해제하기 전까지 거래에 액세스할 수 없습니다.", "unspent_change": "변화", "tor_connection": "토르 연결", - "setup_warning_2fa_text": "Cake 2FA는 지갑의 특정 작업에 대한 두 번째 인증입니다. 냉장 보관만큼 안전하지 않습니다.\n 2FA 앱이나 비밀번호 키에 접근할 수 없게 되면 이 지갑에 접근할 수 없게 됩니다.\n 니모닉 시드에서 지갑을 복원해야 합니다.\n 2FA 또는 니모닉 시드에 액세스할 수 없는 경우 Cake 지원팀에서 도움을 드릴 수 없습니다. Cake 2FA를 사용하기 전에 가이드를 읽어 보시기 바랍니다.", + "setup_warning_2fa_text": "Cake 2FA는 지갑의 특정 작업에 대한 두 번째 인증입니다. 냉장 보관만큼 안전하지 않습니다.\n\n2FA 앱 또는 TOTP 키에 대한 액세스 권한을 상실하면 이 지갑에 대한 액세스 권한도 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다.\n\n2FA 또는 니모닉 시드에 액세스할 수 없는 경우 Cake 지원팀에서 도움을 드릴 수 없습니다.\nCake 2FA를 사용하기 전에 가이드를 읽어 보시기 바랍니다.", "scan_qr_on_device": "다른 기기에서 이 QR 코드를 스캔하세요.", "how_to_use": "사용하는 방법", "seed_hex_form": "지갑 씨앗 (16 진 양식)", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 36754049b..30e4ed437 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -625,8 +625,8 @@ "enter_totp_code": "ကျေးဇူးပြု၍ TOTP ကုဒ်ကို ထည့်ပါ။", "add_secret_code": "သို့မဟုတ် ဤလျှို့ဝှက်ကုဒ်ကို အထောက်အထားစိစစ်ခြင်းအက်ပ်တစ်ခုသို့ ထည့်ပါ။", "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", - "setup_2fa_text": "ကိတ်မုန့် 2FA သည် TOTP မှတစ်ဆင့် ဒုတိယအထောက်အထားစိစစ်ခြင်းအချက်အဖြစ် လုပ်ဆောင်သည်။\n\nကိတ်မုန့် 2FA ၏ TOTP သည် SHA-512 နှင့် 8 ဂဏန်းပံ့ပိုးမှု လိုအပ်သည်။ ဒါက လုံခြုံရေးကို တိုးမြှင့်ပေးတယ်။ နောက်ထပ်အချက်အလက်များနှင့် ပံ့ပိုးပေးထားသောအက်ပ်များကို ဤနေရာတွင် လမ်းညွှန်တွင် တွေ့နိုင်ပါသည်။", - "setup_totp_recommended": "TOTP ကို ​​စနစ်ထည့်သွင်းပါ (အကြံပြုထားသည်)", + "setup_2fa_text": "ကိတ်မုန့် 2FA သည် TOTP ကို ဒုတိယ စစ်မှန်ကြောင်းအထောက်အထားအဖြစ် အသုံးပြု၍ လုပ်ဆောင်သည်။\n\nကိတ်မုန့် 2FA ၏ TOTP သည် SHA-512 နှင့် 8 ဂဏန်းပံ့ပိုးမှု လိုအပ်သည်။ ဒါက လုံခြုံရေးကို တိုးမြှင့်ပေးတယ်။ နောက်ထပ်အချက်အလက်များနှင့် ပံ့ပိုးပေးထားသောအက်ပ်များကို လမ်းညွှန်တွင် တွေ့နိုင်ပါသည်။", + "setup_totp_recommended": "TOTP စနစ်ထည့်သွင်းပါ။", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "cake_2fa_preset": "ကိတ်မုန့် 2FA ကြိုတင်သတ်မှတ်", @@ -740,7 +740,7 @@ "unavailable_balance_description": "မရရှိနိုင်သော လက်ကျန်ငွေ- ဤစုစုပေါင်းတွင် ဆိုင်းငံ့ထားသော ငွေပေးငွေယူများတွင် သော့ခတ်ထားသော ငွေကြေးများနှင့် သင်၏ coin ထိန်းချုပ်မှုဆက်တင်များတွင် သင် တက်ကြွစွာ အေးခဲထားသော ငွေများ ပါဝင်သည်။ သော့ခတ်ထားသော လက်ကျန်ငွေများကို ၎င်းတို့၏ သက်ဆိုင်ရာ ငွေပေးငွေယူများ ပြီးမြောက်သည်နှင့် တပြိုင်နက် ရရှိနိုင်မည်ဖြစ်ပြီး၊ အေးခဲထားသော လက်ကျန်များကို ၎င်းတို့အား ပြန်ဖြုတ်ရန် သင်ဆုံးဖြတ်သည်အထိ ငွေပေးငွေယူများအတွက် ဆက်လက်၍မရနိုင်ပါ။", "unspent_change": "ပေြာင်းလဲခြင်း", "tor_connection": "Tor ချိတ်ဆက်မှု", - "setup_warning_2fa_text": "ကိတ်မုန့် 2FA သည် ပိုက်ဆံအိတ်ရှိ အချို့သော လုပ်ဆောင်ချက်များ အတွက် ဒုတိယ စစ်မှန်ကြောင်း အထောက်အထား ဖြစ်သည်။ ၎င်းသည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။\n သင်၏ 2FA အက်ပ် သို့မဟုတ် သော့တံများကို အသုံးပြုခွင့် ဆုံးရှုံးပါက၊ သင်သည် ဤပိုက်ဆံအိတ်ကို အသုံးပြုခွင့် ဆုံးရှုံးမည်ဖြစ်သည်။\n သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။\n သင်သည် သင်၏ 2FA သို့မဟုတ် mnemonic အစေ့များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက ကိတ်မုန့်ပံ့ပိုးကူညီမှု မပေးနိုင်ပါ။ Cake 2FA ကို အသုံးမပြုမီ၊ လမ်းညွှန်ချက်မှတစ်ဆင့် ဖတ်ရန် အကြံပြုအပ်ပါသည်။", + "setup_warning_2fa_text": "ကိတ်မုန့် 2FA သည် ပိုက်ဆံအိတ်ရှိ အချို့သော လုပ်ဆောင်ချက်များ အတွက် ဒုတိယ စစ်မှန်ကြောင်း အထောက်အထား ဖြစ်သည်။ ၎င်းသည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။\n\nသင်၏ 2FA အက်ပ် သို့မဟုတ် TOTP သော့များကို အသုံးပြုခွင့် ဆုံးရှုံးပါက၊ သင်သည် ဤပိုက်ဆံအိတ်သို့ ဝင်ရောက်ခွင့် ဆုံးရှုံးမည်ဖြစ်သည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။\n\nသင်သည် သင်၏ 2FA သို့မဟုတ် mnemonic အစေ့များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက ကိတ်မုန့်ပံ့ပိုးကူညီမှု မပေးနိုင်ပါ။\nCake 2FA ကို အသုံးမပြုမီ၊ လမ်းညွှန်ချက်မှတစ်ဆင့် ဖတ်ရန် အကြံပြုအပ်ပါသည်။", "scan_qr_on_device": "အခြားစက်တွင် ဤ QR ကုဒ်ကို စကင်ဖတ်ပါ။", "how_to_use": "အသုံးပြုနည်း", "seed_hex_form": "ပိုက်ဆံအိတ်မျိုးစေ့ (Hex Form)", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index c588a8528..409aaeb49 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Voer de TOTP-code in.", "add_secret_code": "Of voeg deze geheime code toe aan een authenticator-app", "totp_secret_code": "TOTP-geheime code", - "setup_2fa_text": "Cake 2FA werkt via TOTP als tweede authenticatiefactor.\n\nCake 2FA's TOTP vereist SHA-512 en 8-cijferige ondersteuning; dit zorgt voor meer veiligheid. Meer informatie en ondersteunde apps vindt u in de gids hier.", - "setup_totp_recommended": "TOTP instellen (aanbevolen)", + "setup_2fa_text": "Cake 2FA werkt met TOTP als tweede authenticatiefactor.\n\nCake 2FA's TOTP vereist SHA-512 en 8-cijferige ondersteuning; dit zorgt voor meer veiligheid. Meer informatie en ondersteunde apps vindt u in de gids.", + "setup_totp_recommended": "TOTP instellen", "disable_buy": "Koopactie uitschakelen", "disable_sell": "Verkoopactie uitschakelen", "auto_generate_subaddresses": "Automatisch subadressen genereren", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Niet-beschikbaar saldo: Dit totaal omvat het geld dat is vergrendeld in lopende transacties en het geld dat u actief hebt bevroren in uw muntcontrole-instellingen. Vergrendelde saldi komen beschikbaar zodra de betreffende transacties zijn voltooid, terwijl bevroren saldi ontoegankelijk blijven voor transacties totdat u besluit ze weer vrij te geven.", "unspent_change": "Wijziging", "tor_connection": "Tor-verbinding", - "setup_warning_2fa_text": "Cake 2FA is een tweede authenticatie voor bepaalde acties in de portemonnee. Het is NIET zo veilig als koude opslag.\n Als u de toegang tot uw 2FA-app of toegangscodes verliest, verliest u de toegang tot deze portemonnee.\n U moet uw portemonnee herstellen vanuit het geheugensteuntje.\n Cake Support kan u niet helpen als u de toegang tot uw 2FA- of mnemonic-zaden verliest. Voordat u Cake 2FA gebruikt, raden wij u aan de handleiding door te lezen.", + "setup_warning_2fa_text": "U moet uw portemonnee herstellen vanuit het geheugensteuntje.\n\nCake Support kan u niet helpen als u de toegang tot uw 2FA- of mnemonic-zaden verliest.\nCake 2FA is een tweede authenticatie voor bepaalde acties in de portemonnee. Voordat u Cake 2FA gebruikt, raden wij u aan de handleiding door te lezen.Het is NIET zo veilig als koude opslag.\n\nAls u de toegang tot uw 2FA-app of TOTP-sleutels verliest, verliest u de toegang tot deze portemonnee. ", "scan_qr_on_device": "Scan deze QR-code op een ander apparaat", "how_to_use": "Hoe te gebruiken", "seed_hex_form": "Portemonnee zaad (hexvorm)", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 452fadf8d..c5c8daf4e 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Wprowadź kod TOTP.", "add_secret_code": "Możesz też dodać ten tajny kod do aplikacji uwierzytelniającej", "totp_secret_code": "Tajny kod TOTP", - "setup_2fa_text": "Cake 2FA działa poprzez TOTP jako drugi czynnik uwierzytelniający.\n\nTOTP Cake 2FA wymaga obsługi SHA-512 i 8 cyfr; zapewnia to większe bezpieczeństwo. Więcej informacji i obsługiwane aplikacje można znaleźć w przewodniku tutaj.", - "setup_totp_recommended": "Skonfiguruj TOTP (zalecane)", + "setup_2fa_text": "Cake 2FA działa przy użyciu TOTP jako drugiego czynnika uwierzytelniającego.\n\nTOTP Cake 2FA wymaga obsługi SHA-512 i 8 cyfr; zapewnia to większe bezpieczeństwo. Więcej informacji i obsługiwane aplikacje znajdziesz w przewodniku.", + "setup_totp_recommended": "Skonfiguruj TOTP", "disable_buy": "Wyłącz akcję kupna", "disable_sell": "Wyłącz akcję sprzedaży", "auto_generate_subaddresses": "Automatycznie generuj podadresy", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Niedostępne saldo: Suma ta obejmuje środki zablokowane w transakcjach oczekujących oraz te, które aktywnie zamroziłeś w ustawieniach kontroli monet. Zablokowane salda staną się dostępne po zakończeniu odpowiednich transakcji, natomiast zamrożone salda pozostaną niedostępne dla transakcji, dopóki nie zdecydujesz się ich odblokować.", "unspent_change": "Zmiana", "tor_connection": "Połączenie Torem", - "setup_warning_2fa_text": "Cake 2FA to drugie uwierzytelnienie niektórych działań w portfelu. NIE jest tak bezpieczne jak przechowywanie w chłodni.\n Jeśli utracisz dostęp do aplikacji 2FA lub kluczy, UTRAcisz dostęp do tego portfela.\n Będziesz musiał przywrócić swój portfel z nasion mnemonicznych.\n Wsparcie Cake nie będzie w stanie Ci pomóc, jeśli utracisz dostęp do swoich nasion 2FA lub mnemoników. Przed użyciem Cake 2FA zalecamy zapoznanie się z instrukcją.", + "setup_warning_2fa_text": "Będziesz musiał przywrócić swój portfel z nasion mnemonicznych.\n\nWsparcie Cake nie będzie w stanie Ci pomóc, jeśli utracisz dostęp do swoich nasion 2FA lub mnemoników.\nCake 2FA to drugie uwierzytelnienie niektórych działań w portfelu. Przed użyciem Cake 2FA zalecamy zapoznanie się z instrukcją.NIE jest tak bezpieczne jak przechowywanie w chłodni.\n\nJeśli utracisz dostęp do aplikacji 2FA lub kluczy TOTP, UTRAcisz dostęp do tego portfela. ", "scan_qr_on_device": "Zeskanuj ten kod QR na innym urządzeniu", "how_to_use": "Jak używać", "seed_hex_form": "Nasiona portfela (forma sześciokątna)", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 5007d2ad3..979e7fe7c 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -626,8 +626,8 @@ "enter_totp_code": "Digite o código TOTP.", "add_secret_code": "Ou adicione este código secreto a um aplicativo autenticador", "totp_secret_code": "Código Secreto TOTP", - "setup_2fa_text": "Cake 2FA funciona através do TOTP como segundo fator de autenticação.\n\nO TOTP do Cake 2FA requer suporte SHA-512 e 8 dígitos; isso proporciona maior segurança. Mais informações e aplicativos suportados podem ser encontrados no guia aqui.", - "setup_totp_recommended": "Configurar TOTP (recomendado)", + "setup_2fa_text": "Cake 2FA funciona usando TOTP como segundo fator de autenticação.\n\nO TOTP do Cake 2FA requer suporte SHA-512 e 8 dígitos; isso proporciona maior segurança. Mais informações e aplicativos suportados podem ser encontrados no guia.", + "setup_totp_recommended": "Configurar TOTP", "disable_buy": "Desativar ação de compra", "disable_sell": "Desativar ação de venda", "auto_generate_subaddresses": "Gerar subendereços automaticamente", @@ -741,7 +741,7 @@ "unavailable_balance_description": "Saldo Indisponível: Este total inclui fundos bloqueados em transações pendentes e aqueles que você congelou ativamente nas configurações de controle de moedas. Os saldos bloqueados ficarão disponíveis assim que suas respectivas transações forem concluídas, enquanto os saldos congelados permanecerão inacessíveis para transações até que você decida descongelá-los.", "unspent_change": "Mudar", "tor_connection": "Conexão Tor", - "setup_warning_2fa_text": "Cake 2FA é uma segunda autenticação para determinadas ações na carteira. NÃO é tão seguro quanto o armazenamento refrigerado.\n Se você perder o acesso ao seu aplicativo 2FA ou às chaves de acesso, você perderá o acesso a esta carteira.\n Você precisará restaurar sua carteira a partir da semente mnemônica.\n O suporte do Cake não poderá ajudá-lo se você perder o acesso ao seu 2FA ou sementes mnemônicas. Antes de usar o Cake 2FA, recomendamos a leitura do guia.", + "setup_warning_2fa_text": "Você precisará restaurar sua carteira a partir da semente mnemônica.\n\nO suporte do Cake não poderá ajudá-lo se você perder o acesso ao seu 2FA ou sementes mnemônicas.\nCake 2FA é uma segunda autenticação para determinadas ações na carteira. Antes de usar o Cake 2FA, recomendamos a leitura do guia.NÃO é tão seguro quanto o armazenamento refrigerado.\n\nSe você perder o acesso ao seu aplicativo 2FA ou às chaves TOTP, você perderá o acesso a esta carteira. ", "scan_qr_on_device": "Digitalize este código QR em outro dispositivo", "how_to_use": "Como usar", "seed_hex_form": "Semente de carteira (forma hexadecimal)", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index c2c9c961d..a675cbb15 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Пожалуйста, введите TOTP-код.", "add_secret_code": "Или добавьте этот секретный код в приложение для аутентификации.", "totp_secret_code": "Секретный код ТОТП", - "setup_2fa_text": "Cake 2FA работает через TOTP в качестве второго фактора аутентификации.\n\nTOTP Cake 2FA требует SHA-512 и поддержки 8 цифр; это обеспечивает повышенную безопасность. Дополнительную информацию и поддерживаемые приложения можно найти в руководстве здесь.", - "setup_totp_recommended": "Настроить TOTP (рекомендуется)", + "setup_2fa_text": "Cake 2FA работает с использованием TOTP в качестве второго фактора аутентификации.\n\nTOTP Cake 2FA требует SHA-512 и поддержки 8 цифр; это обеспечивает повышенную безопасность. Дополнительную информацию и поддерживаемые приложения можно найти в руководстве.", + "setup_totp_recommended": "Настройка ТОТП", "disable_buy": "Отключить действие покупки", "disable_sell": "Отключить действие продажи", "cake_2fa_preset": "Торт 2FA Preset", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Недоступный баланс: в эту сумму входят средства, заблокированные в ожидающих транзакциях, и средства, которые вы активно заморозили в настройках управления монетами. Заблокированные балансы станут доступны после завершения соответствующих транзакций, а замороженные балансы останутся недоступными для транзакций, пока вы не решите их разморозить.", "unspent_change": "Изменять", "tor_connection": "Тор соединение", - "setup_warning_2fa_text": "Cake 2FA — это вторая аутентификация для определенных действий в кошельке. Это НЕ так безопасно, как холодное хранение.\n Если вы потеряете доступ к своему приложению 2FA или паролям, вы потеряете доступ к этому кошельку.\n Вам нужно будет восстановить свой кошелек из мнемонического сида.\n Служба поддержки Cake не сможет вам помочь, если вы потеряете доступ к своим 2FA или мнемоническим идентификаторам. Прежде чем использовать Cake 2FA, мы рекомендуем прочитать руководство.", + "setup_warning_2fa_text": "Cake 2FA — это вторая аутентификация для определенных действий в кошельке. Это НЕ так безопасно, как холодное хранение.\n\nЕсли вы потеряете доступ к своему приложению 2FA или ключам TOTP, вы потеряете доступ к этому кошельку. Вам нужно будет восстановить свой кошелек из мнемонического сида.\n\nСлужба поддержки Cake не сможет вам помочь, если вы потеряете доступ к своим 2FA или мнемоническим идентификаторам.\nПрежде чем использовать Cake 2FA, мы рекомендуем прочитать руководство.", "scan_qr_on_device": "Отсканируйте этот QR-код на другом устройстве", "how_to_use": "Как использовать", "seed_hex_form": "Семя кошелька (шестнадцатеричная форма)", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index fecf0e4de..8ce9092fb 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -625,8 +625,8 @@ "enter_totp_code": "กรุณาใส่รหัสทีโอที", "add_secret_code": "หรือเพิ่มรหัสลับนี้ลงในแอปตรวจสอบความถูกต้อง", "totp_secret_code": "รหัสลับ TOTP", - "setup_2fa_text": "Cake 2FA ทำงานผ่าน TOTP เป็นปัจจัยการตรวจสอบสิทธิ์ที่สอง\n\nTOTP ของ Cake 2FA ต้องการการสนับสนุน SHA-512 และ 8 หลัก สิ่งนี้ให้ความปลอดภัยเพิ่มขึ้น สามารถดูข้อมูลเพิ่มเติมและแอปที่รองรับได้ในคำแนะนำที่นี่", - "setup_totp_recommended": "ตั้งค่า TOTP (แนะนำ)", + "setup_2fa_text": "Cake 2FA ทำงานโดยใช้ TOTP เป็นปัจจัยการตรวจสอบสิทธิ์ที่สอง\n\nTOTP ของ Cake 2FA ต้องการการสนับสนุน SHA-512 และ 8 หลัก สิ่งนี้ให้ความปลอดภัยเพิ่มขึ้น ข้อมูลเพิ่มเติมและแอปที่รองรับมีอยู่ในคำแนะนำ", + "setup_totp_recommended": "ตั้งค่า TOTP", "disable_buy": "ปิดการใช้งานการซื้อ", "disable_sell": "ปิดการใช้งานการขาย", "cake_2fa_preset": "เค้ก 2FA ที่ตั้งไว้ล่วงหน้า", @@ -740,7 +740,7 @@ "unavailable_balance_description": "ยอดคงเหลือที่ไม่พร้อมใช้งาน: ยอดรวมนี้รวมถึงเงินทุนที่ถูกล็อคในการทำธุรกรรมที่รอดำเนินการและที่คุณได้แช่แข็งไว้ในการตั้งค่าการควบคุมเหรียญของคุณ ยอดคงเหลือที่ถูกล็อคจะพร้อมใช้งานเมื่อธุรกรรมที่เกี่ยวข้องเสร็จสมบูรณ์ ในขณะที่ยอดคงเหลือที่แช่แข็งจะไม่สามารถเข้าถึงได้สำหรับธุรกรรมจนกว่าคุณจะตัดสินใจยกเลิกการแช่แข็ง", "unspent_change": "เปลี่ยน", "tor_connection": "การเชื่อมต่อทอร์", - "setup_warning_2fa_text": "Cake 2FA เป็นการรับรองความถูกต้องครั้งที่สองสำหรับการกระทำบางอย่างในกระเป๋าเงิน มันไม่ปลอดภัยเท่ากับห้องเย็น\n หากคุณสูญเสียการเข้าถึงแอป 2FA หรือรหัสผ่าน คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้\n คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยในการจำ\n การสนับสนุนเค้กจะไม่สามารถช่วยเหลือคุณได้หากคุณสูญเสียการเข้าถึง 2FA หรือเมล็ดช่วยในการจำ ก่อนใช้ Cake 2FA เราขอแนะนำให้อ่านคำแนะนำโดยละเอียด", + "setup_warning_2fa_text": "Cake 2FA เป็นการรับรองความถูกต้องครั้งที่สองสำหรับการกระทำบางอย่างในกระเป๋าเงิน มันไม่ปลอดภัยเท่ากับห้องเย็น\n\nหากคุณสูญเสียการเข้าถึงแอป 2FA หรือคีย์ TOTP คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยในการจำ\n\nการสนับสนุนเค้กจะไม่สามารถช่วยเหลือคุณได้หากคุณสูญเสียการเข้าถึง 2FA หรือเมล็ดช่วยในการจำ\nก่อนใช้ Cake 2FA เราขอแนะนำให้อ่านคำแนะนำโดยละเอียด", "scan_qr_on_device": "สแกนโค้ด QR นี้บนอุปกรณ์อื่น", "how_to_use": "วิธีใช้", "seed_hex_form": "เมล็ดกระเป๋าเงิน (รูปแบบฐานสิบหก)", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index e90191abc..84d0754d5 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -628,8 +628,8 @@ "enter_totp_code": "Mangyaring ipasok ang TOTP code.", "add_secret_code": "O, idagdag ang sikretong code na ito sa isang authenticator app", "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Gumagana ang Cake 2FA sa pamamagitan ng TOTP bilang pangalawang kadahilanan sa pagpapatunay.\n\nAng TOTP ng Cake 2FA ay nangangailangan ng SHA-512 at 8 digit na suporta; nagbibigay ito ng mas mataas na seguridad. Higit pang impormasyon at suportadong app ay matatagpuan sa gabay dito.", - "setup_totp_recommended": "I -set up ang TOTP (inirerekomenda)", + "setup_2fa_text": "Gumagana ang Cake 2FA gamit ang TOTP bilang pangalawang kadahilanan sa pagpapatunay.\n\nAng TOTP ng Cake 2FA ay nangangailangan ng SHA-512 at 8 digit na suporta; nagbibigay ito ng mas mataas na seguridad. Higit pang impormasyon at suportadong app ang makikita sa gabay.", + "setup_totp_recommended": "I-setup ang TOTP", "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", "monero_dark_theme": "Monero Madilim na Tema", @@ -737,7 +737,7 @@ "unavailable_balance_description": "Hindi Available na Balanse: Kasama sa kabuuang ito ang mga pondong naka-lock sa mga nakabinbing transaksyon at ang mga aktibong na-freeze mo sa iyong mga setting ng kontrol ng coin. Magiging available ang mga naka-lock na balanse kapag nakumpleto na ang kani-kanilang mga transaksyon, habang ang mga nakapirming balanse ay nananatiling hindi naa-access para sa mga transaksyon hanggang sa magpasya kang i-unfreeze ang mga ito.", "unspent_change": "Baguhin", "tor_connection": "Koneksyon ng Tor", - "setup_warning_2fa_text": "Ang Cake 2FA ay pangalawang pagpapatotoo para sa ilang partikular na pagkilos sa wallet. HINDI ito kasing-secure ng malamig na imbakan.\n Kung nawalan ka ng access sa iyong 2FA app o mga passkey, MAWAWALA ka ng access sa wallet na ito.\n Kakailanganin mong ibalik ang iyong wallet mula sa mnemonic seed.\n Hindi ka matutulungan ng suporta sa cake kung mawawalan ka ng access sa iyong 2FA o mnemonic seeds. Bago gamitin ang Cake 2FA, inirerekomenda naming basahin ang gabay.", + "setup_warning_2fa_text": "Kakailanganin mong ibalik ang iyong wallet mula sa mnemonic seed.\n\nHindi ka matutulungan ng suporta sa cake kung mawawalan ka ng access sa iyong 2FA o mnemonic seeds.\nAng Cake 2FA ay pangalawang pagpapatotoo para sa ilang partikular na pagkilos sa wallet. Bago gamitin ang Cake 2FA, inirerekomenda naming basahin ang gabay.HINDI ito kasing-secure ng malamig na imbakan.\n\nKung nawalan ka ng access sa iyong 2FA app o TOTP keys, MAWAWALA ka ng access sa wallet na ito. ", "scan_qr_on_device": "I-scan ang QR code na ito sa ibang device", "how_to_use": "Paano gamitin", "seed_hex_form": "Wallet seed (hex form)", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 89e042cda..6799ac585 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -625,8 +625,8 @@ "enter_totp_code": "Lütfen TOTP Kodunu giriniz.", "add_secret_code": "Veya bu gizli kodu bir kimlik doğrulama uygulamasına ekleyin", "totp_secret_code": "TOTP Gizli Kodu", - "setup_2fa_text": "Cake 2FA, ikinci kimlik doğrulama faktörü olarak TOTP üzerinden çalışır.\n\nCake 2FA'nın TOTP'si SHA-512 ve 8 haneli destek gerektirir; bu daha fazla güvenlik sağlar. Daha fazla bilgiyi ve desteklenen uygulamaları buradaki kılavuzda bulabilirsiniz.", - "setup_totp_recommended": "TOTP'yi kurun (Önerilir)", + "setup_2fa_text": "Cake 2FA, ikinci kimlik doğrulama faktörü olarak TOTP'yi kullanarak çalışır.\n\nCake 2FA'nın TOTP'si SHA-512 ve 8 haneli destek gerektirir; bu daha fazla güvenlik sağlar. Daha fazla bilgi ve desteklenen uygulamalar kılavuzda bulunabilir.", + "setup_totp_recommended": "TOTP'yi kur", "disable_buy": "Satın alma işlemini devre dışı bırak", "disable_sell": "Satış işlemini devre dışı bırak", "auto_generate_subaddresses": "Alt adresleri otomatik olarak oluştur", @@ -740,7 +740,7 @@ "unavailable_balance_description": "Kullanılamayan Bakiye: Bu toplam, bekleyen işlemlerde kilitlenen fonları ve jeton kontrol ayarlarınızda aktif olarak dondurduğunuz fonları içerir. Kilitli bakiyeler, ilgili işlemleri tamamlandıktan sonra kullanılabilir hale gelir; dondurulmuş bakiyeler ise siz onları dondurmaya karar verene kadar işlemler için erişilemez durumda kalır.", "unspent_change": "Değiştirmek", "tor_connection": "Tor bağlantısı", - "setup_warning_2fa_text": "Cake 2FA, cüzdandaki belirli eylemler için ikinci bir kimlik doğrulamadır. Soğuk hava deposu kadar güvenli DEĞİLDİR.\n 2FA uygulamanıza veya şifre anahtarlarınıza erişiminizi kaybederseniz bu cüzdana erişimi KAYBEDECEKSİNİZ.\n Cüzdanınızı anımsatıcı tohumdan geri yüklemeniz gerekecek.\n 2FA veya anımsatıcı tohumlarınıza erişiminizi kaybederseniz pasta desteği size yardımcı olamayacaktır. Cake 2FA'yı kullanmadan önce kılavuzu okumanızı öneririz.", + "setup_warning_2fa_text": "Cüzdanınızı anımsatıcı tohumdan geri yüklemeniz gerekecek.\n\n2FA veya anımsatıcı tohumlarınıza erişiminizi kaybederseniz pasta desteği size yardımcı olamayacaktır.\nCake 2FA, cüzdandaki belirli eylemler için ikinci bir kimlik doğrulamadır. Cake 2FA'yı kullanmadan önce kılavuzu okumanızı öneririz.Soğuk hava deposu kadar güvenli DEĞİLDİR.\n\n2FA uygulamanıza veya TOTP anahtarlarınıza erişiminizi kaybederseniz bu cüzdana erişimi KAYBEDECEKSİNİZ. ", "scan_qr_on_device": "Bu QR kodunu başka bir cihazda tarayın", "how_to_use": "Nasıl kullanılır", "seed_hex_form": "Cüzdan tohumu (onaltılık form)", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index c250b6aeb..dfd996b2e 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -627,8 +627,8 @@ "enter_totp_code": "Будь ласка, введіть код TOTP.", "add_secret_code": "Або додайте цей секретний код до програми автентифікації", "totp_secret_code": "Секретний код TOTP", - "setup_2fa_text": "Cake 2FA працює через TOTP як другий фактор автентифікації.\n\nДля TOTP Cake 2FA потрібен SHA-512 і підтримка 8 цифр; це забезпечує підвищену безпеку. Додаткову інформацію та підтримувані програми можна знайти в посібнику тут.", - "setup_totp_recommended": "Налаштувати TOTP (рекомендовано)", + "setup_2fa_text": "Cake 2FA працює з використанням TOTP як другого фактора автентифікації.\n\nДля TOTP Cake 2FA потрібен SHA-512 і підтримка 8 цифр; це забезпечує підвищену безпеку. Додаткову інформацію та підтримувані програми можна знайти в посібнику.", + "setup_totp_recommended": "Налаштувати TOTP", "disable_buy": "Вимкнути дію покупки", "disable_sell": "Вимкнути дію продажу", "auto_generate_subaddresses": "Автоматично генерувати підадреси", @@ -742,7 +742,7 @@ "unavailable_balance_description": "Недоступний баланс: ця сума включає кошти, заблоковані в незавершених транзакціях, і ті, які ви активно заморозили в налаштуваннях контролю монет. Заблоковані баланси стануть доступними після завершення відповідних транзакцій, тоді як заморожені баланси залишаються недоступними для транзакцій, доки ви не вирішите їх розморозити.", "unspent_change": "Зміна", "tor_connection": "Підключення Tor", - "setup_warning_2fa_text": "Cake 2FA — друга аутентифікація для певних дій у гаманці. Це НЕ так безпечно, як холодне зберігання.\n Якщо ви втратите доступ до своєї програми 2FA або ключів доступу, ви втратите доступ до цього гаманця.\n Вам потрібно буде відновити свій гаманець з мнемоніки.\n Служба підтримки Cake не зможе вам допомогти, якщо ви втратите доступ до 2FA або мнемонічних насадок. Перед використанням Cake 2FA рекомендуємо прочитати інструкцію.", + "setup_warning_2fa_text": "Cake 2FA — друга аутентифікація для певних дій у гаманці. Це НЕ так безпечно, як холодне зберігання.\n\nЯкщо ви втратите доступ до своєї програми 2FA або ключів TOTP, ви втратите доступ до цього гаманця. Вам потрібно буде відновити свій гаманець з мнемоніки.\n\nСлужба підтримки Cake не зможе вам допомогти, якщо ви втратите доступ до 2FA або мнемонічних насадок.\nПеред використанням Cake 2FA рекомендуємо прочитати інструкцію.", "scan_qr_on_device": "Відскануйте цей QR-код на іншому пристрої", "how_to_use": "Як використовувати", "seed_hex_form": "Насіння гаманця (шістнадцяткова форма)", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index f89835b6f..5809bf2ba 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -619,8 +619,8 @@ "enter_totp_code": "براہ کرم TOTP کوڈ درج کریں۔", "add_secret_code": " ۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮟﯿﻣ ﭗﯾﺍ ﮦﺪﻨﻨﮐ ﻖﯾﺪﺼﺗ ﻮﮐ ﮈﻮﮐ ﮧﯿﻔﺧ ﺱﺍ ،ﺎﯾ", "totp_secret_code": "TOTP خفیہ کوڈ", - "setup_2fa_text": " ۔ﮯﮨ ﺎﺗﺮﮐ ﻡﺎﮐ ﮯﻌﯾﺭﺫ ﮯﮐ TOTP ﺮﭘ ﺭﻮﻃ ﮯﮐ ﺮﺼﻨﻋ ﯽﻘﯾﺪﺼﺗ ﮮﺮﺳﻭﺩ 2FA ﮏﯿﮐ", - "setup_totp_recommended": "TOTP ترتیب دیں (تجویز کردہ)", + "setup_2fa_text": " ۔ﮯﮨ ﺎﺗﺮﮐ ﻡﺎﮐ ﮯﺋﻮﮨ ﮯﺗﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﺎﮐ TOTP ﺮﭘ ﺭﻮﻃ ﮯﮐ ﺮﺼﻨﻋ ﯽﻘﯾﺪﺼﺗ ﮮﺮﺳﻭﺩ 2FA ﮏﯿﮐ", + "setup_totp_recommended": "TOTP ۔ﮟﯾﺮﮐ ﭖﺍ ﭧﯿﺳ", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", "cake_2fa_preset": "کیک 2FA پیش سیٹ", @@ -733,7 +733,7 @@ "unavailable_balance": "ﺲﻨﻠﯿﺑ ﺏﺎﯿﺘﺳﺩ ﺮﯿﻏ", "unavailable_balance_description": "۔ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﮧﻠﺼﯿﻓ ﺎﮐ ﮯﻧﺮﮐ ﺪﻤﺠﻨﻣ ﻥﺍ ﮟﯿﮩﻧﺍ ﭖﺁ ﮧﮐ ﮏﺗ ﺐﺟ ﮟﯿﮨ ﮯﺘﮨﺭ ﯽﺋﺎﺳﺭ ﻞﺑﺎﻗﺎﻧ ﮏﺗ ﺖﻗﻭ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﻦﯾﺩ ﻦﯿﻟ ﺲﻨﻠﯿﺑ ﺪﻤﺠﻨﻣ ﮧﮐ ﺐﺟ ،ﮯﮔ ﮟﯿﺋﺎﺟ ﻮﮨ ﺏﺎﯿﺘﺳﺩ ﺲﻨﻠﯿﺑ ﻞﻔﻘﻣ ﺪﻌﺑ ﮯﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﻦﯾﺩ ﻦﯿﻟ ﮧﻘﻠﻌﺘﻣ ﮯﮐ ﻥﺍ ۔ﮯﮨ ﺎﮭﮐﺭ ﺮ", "unspent_change": "تبدیل کریں", - "setup_warning_2fa_text": "۔ﮯﮨ ﮟﯿﮩﻧ ﻅﻮﻔﺤﻣ ﺡﺮﻃ ﯽﮐ ﺞﯾﺭﻮﭩﺳﺍ ﮉﻟﻮﮐ ﮧﯾ ۔ﮯﮨ ﻖﯾﺪﺼﺗ ﯼﺮﺳﻭﺩ ﮏﯾﺍ ﮯﯿﻟ ﮯﮐ ﮞﻮﯿﺋﺍﻭﺭﺭﺎﮐ ﺹﻮ", + "setup_warning_2fa_text": " ۔ﯽﮔﻮﮨ ﺕﺭﻭﺮﺿ ﯽﮐ ﮯﻧﺮﮐ ﻝﺎﺤﺑ ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﺳ ﺞﯿﺑ ﮯﮐ ﺖﺷﺍﺩﺩﺎﯾ ﻮﮐ ﭖﺁ", "scan_qr_on_device": " ۔ﮟﯾﺮﮐ ﻦﯿﮑﺳﺍ ﺮﭘ ﺲﺋﺍﻮﯾﮈ ﺭﻭﺍ ﯽﺴﮐ ﻮﮐ ﮈﻮﮐ QR ﺱﺍ", "how_to_use": " ﮧﻘﯾﺮﻃ ﺎﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ", "seed_hex_form": "پرس بیج (ہیکس فارم)", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 789253bd7..cc9e9116e 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -621,8 +621,8 @@ "enter_totp_code": "Jọwọ pọ koodu TOTP.", "add_secret_code": "Tabi, ṣafikun koodu aṣiri yii si ohun elo onijeri kan", "totp_secret_code": "Koodu iye TOTP", - "setup_2fa_text": "Akara oyinbo 2FA ṣiṣẹ nipasẹ TOTP bi ifosiwewe ijẹrisi keji.\n\nAkara oyinbo 2FA's TOTP nilo SHA-512 ati atilẹyin oni-nọmba 8; eyi pese aabo ti o pọ sii. Alaye diẹ sii ati awọn ohun elo atilẹyin ni a le rii ninu itọsọna naa Nibi.", - "setup_totp_recommended": "Sọ TOTP (Kẹṣọdọ)", + "setup_2fa_text": "Akara oyinbo 2FA ṣiṣẹ ni lilo TOTP bi ifosiwewe ijẹrisi keji.\n\nAkara oyinbo 2FA's TOTP nilo SHA-512 ati atilẹyin oni-nọmba 8; eyi pese aabo ti o pọ sii. Alaye diẹ sii ati awọn ohun elo atilẹyin ni a le rii ninu itọsọna naa.", + "setup_totp_recommended": "Ṣeto TOTP", "disable_buy": "Ko iṣọrọ ọja", "disable_sell": "Ko iṣọrọ iṣọrọ", "cake_2fa_preset": "Cake 2FA Tito", @@ -736,7 +736,7 @@ "unavailable_balance_description": "Iwontunws.funfun ti ko si: Lapapọ yii pẹlu awọn owo ti o wa ni titiipa ni awọn iṣowo isunmọ ati awọn ti o ti didi ni itara ninu awọn eto iṣakoso owo rẹ. Awọn iwọntunwọnsi titiipa yoo wa ni kete ti awọn iṣowo oniwun wọn ba ti pari, lakoko ti awọn iwọntunwọnsi tio tutunini ko ni iraye si fun awọn iṣowo titi iwọ o fi pinnu lati mu wọn kuro.", "unspent_change": "Yipada", "tor_connection": "Tor asopọ", - "setup_warning_2fa_text": "Akara oyinbo 2FA jẹ ijẹrisi keji fun awọn iṣe kan ninu apamọwọ. Ko ṣe aabo bi ibi ipamọ tutu.\n Ti o ba padanu iraye si ohun elo 2FA tabi awọn bọtini iwọle, iwọ YOO padanu iraye si apamọwọ yii.\n Iwọ yoo nilo lati mu pada apamọwọ rẹ lati inu irugbin mnemonic.\n Atilẹyin akara oyinbo kii yoo ni anfani lati ṣe iranlọwọ fun ọ ti o ba padanu iraye si 2FA tabi awọn irugbin mnemonic rẹ. Ṣaaju lilo akara oyinbo 2FA, a ṣeduro kika nipasẹ itọsọna naa.", + "setup_warning_2fa_text": "Iwọ yoo nilo lati mu pada apamọwọ rẹ lati inu irugbin mnemonic.\n\nAtilẹyin akara oyinbo kii yoo ni anfani lati ṣe iranlọwọ fun ọ ti o ba padanu iraye si 2FA tabi awọn irugbin mnemonic rẹ.\nAkara oyinbo 2FA jẹ ijẹrisi keji fun awọn iṣe kan ninu apamọwọ. Ṣaaju lilo akara oyinbo 2FA, a ṣeduro kika nipasẹ itọsọna naa.Ko ṣe aabo bi ibi ipamọ tutu.\n\nTi o ba padanu iraye si ohun elo 2FA tabi awọn bọtini TOTP, iwọ YOO padanu iraye si apamọwọ yii. ", "scan_qr_on_device": "Ṣe ayẹwo koodu QR yii lori ẹrọ miiran", "how_to_use": "Bawo ni lati lo", "seed_hex_form": "Irú Opamọwọ apamọwọ (HOX)", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 336942d7a..aee2ed672 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -626,8 +626,8 @@ "enter_totp_code": "请输入 TOTP 代码。", "add_secret_code": "或者,将此密码添加到身份验证器应用程序中", "totp_secret_code": "TOTP密码", - "setup_2fa_text": "Cake 2FA 通过 TOTP 作为第二个身份验证因素。\n\nCake 2FA 的 TOTP 需要 SHA-512 和 8 位数字支持;这提供了更高的安全性。更多信息和支持的应用程序可以在此处的指南中找到。", - "setup_totp_recommended": "设置 TOTP(推荐)", + "setup_2fa_text": "Cake 2FA 使用 TOTP 作为第二个身份验证因素。\n\nCake 2FA 的 TOTP 需要 SHA-512 和 8 位数字支持;这提供了更高的安全性。更多信息和支持的应用程序可以在指南中找到。", + "setup_totp_recommended": "设置 TOTP", "disable_buy": "禁用购买操作", "disable_sell": "禁用卖出操作", "cake_2fa_preset": "蛋糕 2FA 预设", @@ -741,7 +741,7 @@ "unavailable_balance_description": "不可用余额:此总额包括锁定在待处理交易中的资金以及您在硬币控制设置中主动冻结的资金。一旦各自的交易完成,锁定的余额将变得可用,而冻结的余额在您决定解冻之前仍然无法进行交易。", "unspent_change": "改变", "tor_connection": "Tor连接", - "setup_warning_2fa_text": "Cake 2FA 是对钱包中某些操作的二次验证。它不如冷藏那么安全。\n 如果您无法访问 2FA 应用程序或密钥,您将无法访问此钱包。\n 您需要从助记词种子中恢复您的钱包。\n 如果您无法访问 2FA 或助记词种子,Cake 支持将无法为您提供帮助。在使用 Cake 2FA 之前,我们建议您阅读该指南。", + "setup_warning_2fa_text": "Cake 2FA 是对钱包中某些操作的二次验证。它不如冷藏那么安全。\n\n如果您无法访问 2FA 应用程序或 TOTP 密钥,您将无法访问此钱包。您需要从助记词种子中恢复您的钱包。\n\n如果您无法访问 2FA 或助记词种子,Cake 支持将无法为您提供帮助。\n在使用 Cake 2FA 之前,我们建议您阅读该指南。", "scan_qr_on_device": "在另一台设备上扫描此二维码", "how_to_use": "如何使用", "seed_hex_form": "钱包种子(十六进制形式)", From 31530dd566bd1f3bc329e685d93b56d7472ac714 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 14 Dec 2023 14:11:07 +0200 Subject: [PATCH 09/14] fix UI issues --- lib/src/screens/setup_2fa/setup_2fa.dart | 2 +- lib/src/screens/setup_2fa/setup_2fa_qr_page.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/src/screens/setup_2fa/setup_2fa.dart b/lib/src/screens/setup_2fa/setup_2fa.dart index d38de1f8c..3e175fe67 100644 --- a/lib/src/screens/setup_2fa/setup_2fa.dart +++ b/lib/src/screens/setup_2fa/setup_2fa.dart @@ -71,7 +71,7 @@ class Setup2FAPage extends BasePage { static void _launchUrl(Uri url) async { try { - await launchUrl(url); + await launchUrl(url, mode: LaunchMode.externalApplication); } catch (e) {} } } diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index 408e9e14d..86fabae13 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -53,7 +53,7 @@ class Setup2FAQRPage extends BasePage { decoration: BoxDecoration( border: Border.all( width: 3, - color: Theme.of(context).extension()!.textColor, + color: Theme.of(context).extension()!.titleColor, ), ), child: Container( @@ -212,7 +212,7 @@ class Setup2FAQRPage extends BasePage { static void _launchUrl(Uri url) async { try { - await launchUrl(url); + await launchUrl(url, mode: LaunchMode.externalApplication); } catch (e) {} } } From d0e28b58ac7f8cbbb733d217d3ecbed65434d2f4 Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 14 Dec 2023 14:51:52 +0200 Subject: [PATCH 10/14] [skip ci] update icon --- assets/images/setup_2fa_img.png | Bin 20129 -> 58037 bytes lib/src/screens/setup_2fa/setup_2fa.dart | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/images/setup_2fa_img.png b/assets/images/setup_2fa_img.png index 3df3bdaddaa907f7d908892dd15d3978db38519c..ce6f0d7333b5208a324d3c3b069b35534ce14a56 100644 GIT binary patch literal 58037 zcmd3Ng;!h6^EXhO7B8+LI20=scXuaHq`}?26b<%)R@W*`1l4nT^&|S9pU>fsKTO^hQZhRvQTk1%!n33L6s@ap%JHoEGti z<*I1tfrNxZ^xuVyl#@q>xQSw}q9BX(5}7#GjfAvms3a?;>$`Yl;uTENPx)0O!5LKv z8CeSGh+3+pjSu8NC6L9}rI3=8l$LIjl5T4!MlGG8U13~V!7vu>mPios_V)3%Y3|Cg zd490A@$UX&^EKaR_l-0VD2xBR>k-fX!)3O8?Q~ctDjaf%|L98JpSZKhV~cS+OR67E??^tnU4yzz0sP9=JYt{t{)Wo*iokq6*t1~kF5*?%mULG`ir->oW2eJU zu-LV4o-53Uu&1Is*uvTA2{@wY%7!$yX`fcABI?4|J>ox#UCeT2>x@7YoNz@v_a33PQ!%jET<6Q%ry7mq z5LxFj6-87e?9{K@h0~rJpW!i6oiBPN0)t8t=P^|HgoMv+)$SqHo65L|*Ph40ioH&P zes$~+oD;DEF(M(57dlQmspfVi(k^Bw*~)|2o>O=JduF?B$>gL{{*k1r?XIQ&y>+(p z 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 KMNUMnLSTZS4`lKH literal 20129 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 Date: Thu, 14 Dec 2023 18:41:43 +0200 Subject: [PATCH 11/14] Format code --- lib/src/screens/seed/warning_page.dart | 25 ++++++--- .../screens/setup_2fa/setup_2fa_qr_page.dart | 56 +++++++++++++------ 2 files changed, 54 insertions(+), 27 deletions(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index f29f69a05..18b9b6248 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -21,7 +21,8 @@ class WarningPage extends BasePage { final bool isPreSeedPage; @override - Widget? leading(BuildContext context) => isPreSeedPage ? null : super.leading(context); + Widget? leading(BuildContext context) => + isPreSeedPage ? null : super.leading(context); @override String? get title => S.current.pre_seed_title; @@ -36,14 +37,15 @@ class WarningPage extends BasePage { alignment: Alignment.center, padding: EdgeInsets.all(24), child: ConstrainedBox( - constraints: - BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + constraints: BoxConstraints( + maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: ConstrainedBox( - constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.3), child: AspectRatio(aspectRatio: 1, child: image), ), ), @@ -52,20 +54,25 @@ class WarningPage extends BasePage { padding: EdgeInsets.all(10), child: Text( isPreSeedPage - ? S.of(context).pre_seed_description(seedPhraseLength.toString()) + ? S.of(context).pre_seed_description( + seedPhraseLength.toString()) : S.of(context).setup_warning_2fa_text, textAlign: TextAlign.center, style: TextStyle( - height: 1.7, + height: 1.7, fontSize: 14, fontWeight: FontWeight.normal, - color: Theme.of(context).extension()!.secondaryTextColor)), + color: Theme.of(context) + .extension()! + .secondaryTextColor)), ), ), PrimaryButton( onPressed: () => isPreSeedPage - ? Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true) - : Navigator.of(context).popAndPushNamed(Routes.setup_2faPage), + ? Navigator.of(context) + .popAndPushNamed(Routes.seed, arguments: true) + : Navigator.of(context) + .popAndPushNamed(Routes.setup_2faPage), text: isPreSeedPage ? S.of(context).pre_seed_button_text : S.of(context).understand, diff --git a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart index 86fabae13..3ce10b596 100644 --- a/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart +++ b/lib/src/screens/setup_2fa/setup_2fa_qr_page.dart @@ -26,7 +26,9 @@ class Setup2FAQRPage extends BasePage { @override Widget body(BuildContext context) { final copyImage = Image.asset('assets/images/copy_content.png', - height: 16, width: 16, color: Theme.of(context).extension()!.titleColor); + height: 16, + width: 16, + color: Theme.of(context).extension()!.titleColor); final cake2FAHowToUseUrl = Uri.parse( 'https://guides.cakewallet.com/docs/advanced-features/authentication/#enabling-cake-2fa'); return Padding( @@ -45,7 +47,8 @@ class Setup2FAQRPage extends BasePage { ), SizedBox(height: 10), ConstrainedBox( - constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.4), + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.4), child: AspectRatio( aspectRatio: 1.0, child: Container( @@ -53,14 +56,17 @@ class Setup2FAQRPage extends BasePage { decoration: BoxDecoration( border: Border.all( width: 3, - color: Theme.of(context).extension()!.titleColor, + color: Theme.of(context) + .extension()! + .titleColor, ), ), child: Container( child: QrImage( data: setup2FAViewModel.totpVersionOneLink, version: qr.QrVersions.auto, - foregroundColor: Theme.of(context).extension()!.titleColor, + foregroundColor: + Theme.of(context).extension()!.titleColor, backgroundColor: Colors.transparent, )), ), @@ -90,7 +96,9 @@ class Setup2FAQRPage extends BasePage { style: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.secondaryTextColor, + color: Theme.of(context) + .extension()! + .secondaryTextColor, height: 1.8333, ), ), @@ -99,7 +107,9 @@ class Setup2FAQRPage extends BasePage { '${setup2FAViewModel.totpSecretKey}', style: TextStyle( fontSize: 18, - color: Theme.of(context).extension()!.titleColor), + color: Theme.of(context) + .extension()! + .titleColor), maxLines: 1, overflow: TextOverflow.ellipsis, ), @@ -112,8 +122,8 @@ class Setup2FAQRPage extends BasePage { height: 32, child: InkWell( onTap: () { - ClipboardUtil.setSensitiveDataToClipboard( - ClipboardData(text: '${setup2FAViewModel.totpSecretKey}')); + ClipboardUtil.setSensitiveDataToClipboard(ClipboardData( + text: '${setup2FAViewModel.totpSecretKey}')); showBar(context, S.of(context).copied_to_clipboard); }, child: Container( @@ -140,7 +150,9 @@ class Setup2FAQRPage extends BasePage { style: TextStyle( fontSize: 12, fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.secondaryTextColor, + color: Theme.of(context) + .extension()! + .secondaryTextColor, height: 1.8333, ), ), @@ -149,7 +161,9 @@ class Setup2FAQRPage extends BasePage { '${setup2FAViewModel.totpVersionOneLink}', style: TextStyle( fontSize: 18, - color: Theme.of(context).extension()!.titleColor), + color: Theme.of(context) + .extension()! + .titleColor), maxLines: 1, overflow: TextOverflow.ellipsis, ), @@ -162,8 +176,8 @@ class Setup2FAQRPage extends BasePage { height: 32, child: InkWell( onTap: () { - ClipboardUtil.setSensitiveDataToClipboard( - ClipboardData(text: '${setup2FAViewModel.totpVersionOneLink}')); + ClipboardUtil.setSensitiveDataToClipboard(ClipboardData( + text: '${setup2FAViewModel.totpVersionOneLink}')); showBar(context, S.of(context).copied_to_clipboard); }, child: Container( @@ -187,18 +201,24 @@ class Setup2FAQRPage extends BasePage { decoration: TextDecoration.underline, fontSize: 16, fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.titleColor)), + color: Theme.of(context) + .extension()! + .titleColor)), Icon(Icons.info_outline, - size: 20, color: Theme.of(context).extension()!.titleColor) + size: 20, + color: Theme.of(context) + .extension()! + .titleColor) ], )), Spacer(flex: 5), PrimaryButton( onPressed: () { - Navigator.of(context).pushReplacementNamed(Routes.totpAuthCodePage, - arguments: TotpAuthArgumentsModel( - isForSetup: true, - )); + Navigator.of(context) + .pushReplacementNamed(Routes.totpAuthCodePage, + arguments: TotpAuthArgumentsModel( + isForSetup: true, + )); }, text: S.current.continue_text, color: Theme.of(context).primaryColor, From b316f2fc7b9c01a7f60406725d00051e2550a6d2 Mon Sep 17 00:00:00 2001 From: Serhii Date: Fri, 15 Dec 2023 17:19:50 +0200 Subject: [PATCH 12/14] minor fixes --- lib/src/screens/seed/warning_page.dart | 2 +- lib/src/screens/setup_2fa/setup_2fa.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index 18b9b6248..5df55ad5e 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -72,7 +72,7 @@ class WarningPage extends BasePage { ? Navigator.of(context) .popAndPushNamed(Routes.seed, arguments: true) : Navigator.of(context) - .popAndPushNamed(Routes.setup_2faPage), + .pushNamed(Routes.setup_2faPage), text: isPreSeedPage ? S.of(context).pre_seed_button_text : S.of(context).understand, diff --git a/lib/src/screens/setup_2fa/setup_2fa.dart b/lib/src/screens/setup_2fa/setup_2fa.dart index de2350c37..5fa5cabb8 100644 --- a/lib/src/screens/setup_2fa/setup_2fa.dart +++ b/lib/src/screens/setup_2fa/setup_2fa.dart @@ -14,7 +14,7 @@ class Setup2FAPage extends BasePage { final Setup2FAViewModel setup2FAViewModel; @override - String get title => 'CAKE 2FA'; + String get title => 'Cake 2FA'; @override Widget body(BuildContext context) { From 1eaebcba83f6484cca25a1bab6bf6397de90ad40 Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 20 Dec 2023 14:25:30 +0200 Subject: [PATCH 13/14] [skip ci]Revert "minor fixes" --- lib/src/screens/seed/warning_page.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart index 5df55ad5e..18b9b6248 100644 --- a/lib/src/screens/seed/warning_page.dart +++ b/lib/src/screens/seed/warning_page.dart @@ -72,7 +72,7 @@ class WarningPage extends BasePage { ? Navigator.of(context) .popAndPushNamed(Routes.seed, arguments: true) : Navigator.of(context) - .pushNamed(Routes.setup_2faPage), + .popAndPushNamed(Routes.setup_2faPage), text: isPreSeedPage ? S.of(context).pre_seed_button_text : S.of(context).understand, From 3522561cfcbe420caee880988990af3fb8379973 Mon Sep 17 00:00:00 2001 From: Serhii Date: Sat, 30 Dec 2023 21:55:17 +0200 Subject: [PATCH 14/14] info page refactoring --- lib/di.dart | 9 +- lib/router.dart | 12 ++- lib/routes.dart | 3 +- lib/src/screens/InfoPage.dart | 83 ++++++++++++++++++ .../screens/new_wallet/new_wallet_page.dart | 2 +- lib/src/screens/seed/pre_seed_page.dart | 27 ++++++ lib/src/screens/seed/warning_page.dart | 86 ------------------- .../settings/security_backup_page.dart | 2 +- .../setup_2fa/setup_2fa_info_page.dart | 20 +++++ 9 files changed, 148 insertions(+), 96 deletions(-) create mode 100644 lib/src/screens/InfoPage.dart create mode 100644 lib/src/screens/seed/pre_seed_page.dart delete mode 100644 lib/src/screens/seed/warning_page.dart create mode 100644 lib/src/screens/setup_2fa/setup_2fa_info_page.dart diff --git a/lib/di.dart b/lib/di.dart index 49fafb357..dd1001858 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -50,6 +50,7 @@ import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/settings/tor_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; @@ -133,7 +134,7 @@ import 'package:cake_wallet/src/screens/rescan/rescan_page.dart'; import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; import 'package:cake_wallet/src/screens/restore/restore_options_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; -import 'package:cake_wallet/src/screens/seed/warning_page.dart'; +import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; import 'package:cake_wallet/src/screens/seed/wallet_seed_page.dart'; import 'package:cake_wallet/src/screens/send/send_template_page.dart'; import 'package:cake_wallet/src/screens/setup_pin_code/setup_pin_code.dart'; @@ -524,6 +525,8 @@ Future setup({ getIt.registerFactory( () => TransactionsPage(dashboardViewModel: getIt.get())); + getIt.registerFactory(() => Setup2FAInfoPage()); + getIt.registerFactory( () => Setup2FAPage(setup2FAViewModel: getIt.get())); @@ -915,9 +918,9 @@ Future setup({ getIt.registerFactoryParam( (param1, isCreate) => NewWalletTypePage(onTypeSelected: param1, isCreate: isCreate ?? true)); - getIt.registerFactoryParam( + getIt.registerFactoryParam( (seedPhraseLength, _) - => WarningPage(seedPhraseLength)); + => PreSeedPage(seedPhraseLength)); getIt.registerFactoryParam((trade, _) => TradeDetailsViewModel( diff --git a/lib/router.dart b/lib/router.dart index 5148e2d16..b7b7c9a8e 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -42,11 +42,12 @@ import 'package:cake_wallet/src/screens/order_details/order_details_page.dart'; import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/screens/restore/restore_from_backup_page.dart'; import 'package:cake_wallet/src/screens/restore/wallet_restore_page.dart'; -import 'package:cake_wallet/src/screens/seed/warning_page.dart'; +import 'package:cake_wallet/src/screens/seed/pre_seed_page.dart'; import 'package:cake_wallet/src/screens/settings/connection_sync_page.dart'; import 'package:cake_wallet/src/screens/settings/trocador_providers_page.dart'; import 'package:cake_wallet/src/screens/settings/tor_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/modify_2fa_page.dart'; +import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_info_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_qr_page.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; @@ -414,10 +415,10 @@ Route createRoute(RouteSettings settings) { case Routes.faq: return MaterialPageRoute(builder: (_) => getIt.get()); - case Routes.warningPage: + case Routes.preSeedPage: return MaterialPageRoute( - builder: (_) => getIt.get( - param1: settings.arguments as int?)); + builder: (_) => getIt.get( + param1: settings.arguments as int)); case Routes.backup: return CupertinoPageRoute( @@ -580,6 +581,9 @@ Route createRoute(RouteSettings settings) { case Routes.modify2FAPage: return MaterialPageRoute(builder: (_) => getIt.get()); + case Routes.setup2faInfoPage: + return MaterialPageRoute(builder: (_) => getIt.get()); + case Routes.homeSettings: return CupertinoPageRoute( builder: (_) => getIt.get(param1: settings.arguments), diff --git a/lib/routes.dart b/lib/routes.dart index 06bf7d5fa..7ad5c70bc 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -47,7 +47,7 @@ class Routes { static const exchangeTemplate = '/exchange_template'; static const restoreWalletType = '/restore_wallet_type'; static const restoreWallet = '/restore_wallet'; - static const warningPage = '/warning_page'; + static const preSeedPage = '/pre_seed_page'; static const backup = '/backup'; static const editBackupPassword = '/edit_backup_passowrd'; static const restoreFromBackup = '/restore_from_backup'; @@ -96,6 +96,7 @@ class Routes { static const setup_2faQRPage = '/setup_2fa_qr_page'; static const totpAuthCodePage = '/totp_auth_code_page'; static const modify2FAPage = '/modify_2fa_page'; + static const setup2faInfoPage = '/setup_2fa_info_page'; static const homeSettings = '/home_settings'; static const editToken = '/edit_token'; static const manageNodes = '/manage_nodes'; diff --git a/lib/src/screens/InfoPage.dart b/lib/src/screens/InfoPage.dart new file mode 100644 index 000000000..5398df22c --- /dev/null +++ b/lib/src/screens/InfoPage.dart @@ -0,0 +1,83 @@ +import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/theme_base.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; +import 'package:flutter/material.dart'; + +abstract class InfoPage extends BasePage { + InfoPage({ + this.imageLightPath = 'assets/images/pre_seed_light.png', + this.imageDarkPath = 'assets/images/pre_seed_dark.png', + }); + + final String imageLightPath; + final String imageDarkPath; + + Image get imageLight => Image.asset(imageLightPath); + Image get imageDark => Image.asset(imageDarkPath); + + bool get onWillPop => true; + String get pageTitle; + String get pageDescription; + String get buttonText; + void Function(BuildContext) get onPressed; + + @override + Widget? leading(BuildContext context) => null; + + @override + String get title => pageTitle; + + @override + Widget body(BuildContext context) { + final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; + + return WillPopScope( + onWillPop: () async => onWillPop, + child: Container( + alignment: Alignment.center, + padding: EdgeInsets.all(24), + child: ConstrainedBox( + constraints: BoxConstraints( + maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: ConstrainedBox( + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.3), + child: AspectRatio(aspectRatio: 1, child: image), + ), + ), + Expanded( + child: Padding( + padding: EdgeInsets.all(10), + child: Text( + pageDescription, + textAlign: TextAlign.center, + style: TextStyle( + height: 1.7, + fontSize: 14, + fontWeight: FontWeight.normal, + color: Theme.of(context) + .extension()! + .secondaryTextColor, + ), + ), + ), + ), + PrimaryButton( + onPressed: () => onPressed(context), + text: buttonText, + color: Theme.of(context).primaryColor, + textColor: Colors.white, + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index 9d37e22eb..499e5feff 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -73,7 +73,7 @@ class _WalletNameFormState extends State { _stateReaction ??= reaction((_) => _walletNewVM.state, (ExecutionState state) async { if (state is ExecutedSuccessfullyState) { Navigator.of(navigatorKey.currentContext!) - .pushNamed(Routes.warningPage, arguments: _walletNewVM.seedPhraseWordsLength); + .pushNamed(Routes.preSeedPage, arguments: _walletNewVM.seedPhraseWordsLength); } if (state is FailureState) { diff --git a/lib/src/screens/seed/pre_seed_page.dart b/lib/src/screens/seed/pre_seed_page.dart new file mode 100644 index 000000000..730dfa5f8 --- /dev/null +++ b/lib/src/screens/seed/pre_seed_page.dart @@ -0,0 +1,27 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/InfoPage.dart'; +import 'package:flutter/cupertino.dart'; + +class PreSeedPage extends InfoPage { + PreSeedPage(this.seedPhraseLength); + + final int seedPhraseLength; + + @override + bool get onWillPop => false; + + @override + String get pageTitle => S.current.pre_seed_title; + + @override + String get pageDescription => + S.current.pre_seed_description(seedPhraseLength.toString()); + + @override + String get buttonText => S.current.pre_seed_button_text; + + @override + void Function(BuildContext) get onPressed => (BuildContext context) => + Navigator.of(context).popAndPushNamed(Routes.seed, arguments: true); +} diff --git a/lib/src/screens/seed/warning_page.dart b/lib/src/screens/seed/warning_page.dart deleted file mode 100644 index 18b9b6248..000000000 --- a/lib/src/screens/seed/warning_page.dart +++ /dev/null @@ -1,86 +0,0 @@ -import 'package:cake_wallet/utils/responsive_layout_util.dart'; -import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; -import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; -import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/src/screens/base_page.dart'; -import 'package:cake_wallet/src/widgets/primary_button.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/routes.dart'; -import 'package:cake_wallet/themes/theme_base.dart'; -import 'package:flutter/material.dart'; - -class WarningPage extends BasePage { - WarningPage(this.seedPhraseLength) - : isPreSeedPage = seedPhraseLength != null, - imageLight = Image.asset('assets/images/pre_seed_light.png'), - imageDark = Image.asset('assets/images/pre_seed_dark.png'); - - final Image imageDark; - final Image imageLight; - final int? seedPhraseLength; - final bool isPreSeedPage; - - @override - Widget? leading(BuildContext context) => - isPreSeedPage ? null : super.leading(context); - - @override - String? get title => S.current.pre_seed_title; - - @override - Widget body(BuildContext context) { - final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; - - return WillPopScope( - onWillPop: () async => !isPreSeedPage, - child: Container( - alignment: Alignment.center, - padding: EdgeInsets.all(24), - child: ConstrainedBox( - constraints: BoxConstraints( - maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Expanded( - child: ConstrainedBox( - constraints: BoxConstraints( - maxHeight: MediaQuery.of(context).size.height * 0.3), - child: AspectRatio(aspectRatio: 1, child: image), - ), - ), - Expanded( - child: Padding( - padding: EdgeInsets.all(10), - child: Text( - isPreSeedPage - ? S.of(context).pre_seed_description( - seedPhraseLength.toString()) - : S.of(context).setup_warning_2fa_text, - textAlign: TextAlign.center, - style: TextStyle( - height: 1.7, - fontSize: 14, - fontWeight: FontWeight.normal, - color: Theme.of(context) - .extension()! - .secondaryTextColor)), - ), - ), - PrimaryButton( - onPressed: () => isPreSeedPage - ? Navigator.of(context) - .popAndPushNamed(Routes.seed, arguments: true) - : Navigator.of(context) - .popAndPushNamed(Routes.setup_2faPage), - text: isPreSeedPage - ? S.of(context).pre_seed_button_text - : S.of(context).understand, - color: Theme.of(context).primaryColor, - textColor: Colors.white) - ], - ), - ), - )); - } -} diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index c6fa939de..56ba049ba 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -108,7 +108,7 @@ class SecurityBackupPage extends BasePage { context, route: _securitySettingsViewModel.useTotp2FA ? Routes.modify2FAPage - : Routes.warningPage, + : Routes.setup2faInfoPage, conditionToDetermineIfToUse2FA: _securitySettingsViewModel .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), diff --git a/lib/src/screens/setup_2fa/setup_2fa_info_page.dart b/lib/src/screens/setup_2fa/setup_2fa_info_page.dart new file mode 100644 index 000000000..ff6187665 --- /dev/null +++ b/lib/src/screens/setup_2fa/setup_2fa_info_page.dart @@ -0,0 +1,20 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/screens/InfoPage.dart'; +import 'package:flutter/cupertino.dart'; + +class Setup2FAInfoPage extends InfoPage { + + @override + String get pageTitle => S.current.pre_seed_title; + + @override + String get pageDescription => S.current.setup_warning_2fa_text; + + @override + String get buttonText => S.current.understand; + + @override + void Function(BuildContext) get onPressed => (BuildContext context) => + Navigator.of(context).popAndPushNamed(Routes.setup_2faPage); +}