diff --git a/lib/router.dart b/lib/router.dart index 5d47f2ce2..06428cccd 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -7,7 +7,7 @@ import 'package:cake_wallet/src/screens/buy/onramper_page.dart'; import 'package:cake_wallet/src/screens/buy/pre_order_page.dart'; import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_dashboard_actions.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/transactions_page.dart'; -import 'package:cake_wallet/src/screens/settings/desktop_settings/dashboard_settings_page.dart'; +import 'package:cake_wallet/src/screens/settings/desktop_settings/desktop_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/display_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/other_settings_page.dart'; import 'package:cake_wallet/src/screens/settings/privacy_page.dart'; diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index 1e714d992..5165f166a 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -29,13 +29,13 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( + Image _newWalletImage(BuildContext context) => Image.asset( 'assets/images/new_wallet.png', height: 12, width: 12, color: Theme.of(context).primaryTextTheme.headline6!.color!, ); - Image _getRestoreWalletImage(BuildContext context) => Image.asset( + Image _restoreWalletImage(BuildContext context) => Image.asset( 'assets/images/restore_wallet.png', height: 12, width: 12, @@ -65,14 +65,14 @@ class _DesktopWalletSelectionDropDownState extends State _navigateToCreateWallet(), child: DropDownItemWidget( title: S.of(context).create_new, - image: _getNewWalletImage(context), + image: _newWalletImage(context), ), ), DesktopDropdownItem( onSelected: () => _navigateToRestoreWallet(), child: DropDownItemWidget( title: S.of(context).restore_wallet, - image: _getRestoreWalletImage(context), + image: _restoreWalletImage(context), ), ), ]; @@ -95,6 +95,7 @@ class _DesktopWalletSelectionDropDownState extends State element.isSelected), underline: const SizedBox(), focusColor: Colors.transparent, + borderRadius: BorderRadius.circular(15.0), ); }); } diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index ce9af985e..7288d624b 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -23,10 +24,8 @@ import 'package:cake_wallet/core/seed_validator.dart'; class WalletRestorePage extends BasePage { WalletRestorePage(this.walletRestoreViewModel) - : walletRestoreFromSeedFormKey = - GlobalKey(), - walletRestoreFromKeysFormKey = - GlobalKey(), + : walletRestoreFromSeedFormKey = GlobalKey(), + walletRestoreFromKeysFormKey = GlobalKey(), _pages = [], _blockHeightFocusNode = FocusNode(), _controller = PageController(initialPage: 0) { @@ -36,9 +35,8 @@ class WalletRestorePage extends BasePage { _pages.add(WalletRestoreFromSeedForm( displayBlockHeightSelector: walletRestoreViewModel.hasBlockchainHeightLanguageSelector, - displayLanguageSelector: - walletRestoreViewModel.hasSeedLanguageSelector, - type: walletRestoreViewModel.type!, + displayLanguageSelector: walletRestoreViewModel.hasSeedLanguageSelector, + type: walletRestoreViewModel.type, key: walletRestoreFromSeedFormKey, blockHeightFocusNode: _blockHeightFocusNode, onHeightOrDateEntered: (value) { @@ -48,26 +46,22 @@ class WalletRestorePage extends BasePage { }, onSeedChange: (String seed) { if (walletRestoreViewModel.hasBlockchainHeightLanguageSelector) { - final hasHeight = walletRestoreFromSeedFormKey - .currentState!.blockchainHeightKey.currentState!.restoreHeightController - .text - .isNotEmpty; + final hasHeight = walletRestoreFromSeedFormKey.currentState!.blockchainHeightKey + .currentState!.restoreHeightController.text.isNotEmpty; if (hasHeight) { walletRestoreViewModel.isButtonEnabled = _isValidSeed(); } } else { - walletRestoreViewModel.isButtonEnabled = _isValidSeed(); + walletRestoreViewModel.isButtonEnabled = _isValidSeed(); } }, onLanguageChange: (_) { if (walletRestoreViewModel.hasBlockchainHeightLanguageSelector) { - final hasHeight = walletRestoreFromSeedFormKey - .currentState!.blockchainHeightKey.currentState!.restoreHeightController - .text - .isNotEmpty; + final hasHeight = walletRestoreFromSeedFormKey.currentState!.blockchainHeightKey + .currentState!.restoreHeightController.text.isNotEmpty; if (hasHeight) { - walletRestoreViewModel.isButtonEnabled = _isValidSeed(); + walletRestoreViewModel.isButtonEnabled = _isValidSeed(); } } else { walletRestoreViewModel.isButtonEnabled = _isValidSeed(); @@ -78,8 +72,7 @@ class WalletRestorePage extends BasePage { _pages.add(WalletRestoreFromKeysFrom( key: walletRestoreFromKeysFormKey, walletRestoreViewModel: walletRestoreViewModel, - onHeightOrDateEntered: (value) => - walletRestoreViewModel.isButtonEnabled = value)); + onHeightOrDateEntered: (value) => walletRestoreViewModel.isButtonEnabled = value)); break; default: break; @@ -97,8 +90,7 @@ class WalletRestorePage extends BasePage { fontSize: 18.0, fontWeight: FontWeight.bold, fontFamily: 'Lato', - color: titleColor ?? - Theme.of(context).primaryTextTheme!.headline6!.color!), + color: titleColor ?? Theme.of(context).primaryTextTheme.headline6!.color!), )); final WalletRestoreViewModel walletRestoreViewModel; @@ -129,134 +121,134 @@ class WalletRestorePage extends BasePage { reaction((_) => walletRestoreViewModel.mode, (WalletRestoreMode mode) { walletRestoreViewModel.isButtonEnabled = false; - walletRestoreFromSeedFormKey.currentState!.blockchainHeightKey.currentState - !.restoreHeightController.text = ''; - walletRestoreFromSeedFormKey.currentState!.blockchainHeightKey.currentState - !.dateController.text = ''; + walletRestoreFromSeedFormKey + .currentState!.blockchainHeightKey.currentState!.restoreHeightController.text = ''; + walletRestoreFromSeedFormKey + .currentState!.blockchainHeightKey.currentState!.dateController.text = ''; walletRestoreFromSeedFormKey.currentState!.nameTextEditingController.text = ''; - walletRestoreFromKeysFormKey.currentState!.blockchainHeightKey.currentState - !.restoreHeightController.text = ''; - walletRestoreFromKeysFormKey.currentState!.blockchainHeightKey.currentState - !.dateController.text = ''; + walletRestoreFromKeysFormKey + .currentState!.blockchainHeightKey.currentState!.restoreHeightController.text = ''; + walletRestoreFromKeysFormKey + .currentState!.blockchainHeightKey.currentState!.dateController.text = ''; walletRestoreFromKeysFormKey.currentState!.nameTextEditingController.text = ''; }); return KeyboardActions( - config: KeyboardActionsConfig( - keyboardActionsPlatform: KeyboardActionsPlatform.IOS, - keyboardBarColor: Theme.of(context).accentTextTheme!.bodyText1! - .backgroundColor!, - nextFocus: false, - actions: [ - KeyboardActionsItem( - focusNode: _blockHeightFocusNode, - toolbarButtons: [(_) => KeyboardDoneButton()], - ) - ]), - child: Container( - height: 0, - color: Theme.of(context).backgroundColor, - child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ - Expanded( - child: PageView.builder( - onPageChanged: (page) { - walletRestoreViewModel.mode = - page == 0 ? WalletRestoreMode.seed : WalletRestoreMode.keys; - }, - controller: _controller, - itemCount: _pages.length, - itemBuilder: (_, index) => - SingleChildScrollView(child: _pages[index]))), - if (_pages.length > 1) - Padding( - padding: EdgeInsets.only(top: 10), - child: SmoothPageIndicator( - controller: _controller, - count: _pages.length, - effect: ColorTransitionEffect( - spacing: 6.0, - radius: 6.0, - dotWidth: 6.0, - dotHeight: 6.0, - dotColor: Theme.of(context).hintColor.withOpacity(0.5), - activeDotColor: Theme.of(context).hintColor), - )), - Padding( - padding: EdgeInsets.only(top: 20, bottom: 24, left: 24, right: 24), - child: Observer( - builder: (context) { - return LoadingPrimaryButton( - onPressed: _confirmForm, - text: S.of(context).restore_recover, - color: - Theme.of(context).accentTextTheme!.subtitle2!.decorationColor!, - textColor: - Theme.of(context).accentTextTheme!.headline5!.decorationColor!, - isLoading: walletRestoreViewModel.state is IsExecutingState, - isDisabled: !walletRestoreViewModel.isButtonEnabled, - ); - }, - )) - ]))); + config: KeyboardActionsConfig( + keyboardActionsPlatform: KeyboardActionsPlatform.IOS, + keyboardBarColor: Theme.of(context).accentTextTheme.bodyText1!.backgroundColor!, + nextFocus: false, + actions: [ + KeyboardActionsItem( + focusNode: _blockHeightFocusNode, + toolbarButtons: [(_) => KeyboardDoneButton()], + ) + ], + ), + child: Container( + height: 0, + color: Theme.of(context).backgroundColor, + child: Center( + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: ResponsiveLayoutUtil.kDesktopMaxWidthConstraint), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: PageView.builder( + onPageChanged: (page) { + walletRestoreViewModel.mode = + page == 0 ? WalletRestoreMode.seed : WalletRestoreMode.keys; + }, + controller: _controller, + itemCount: _pages.length, + itemBuilder: (_, index) => SingleChildScrollView(child: _pages[index]), + ), + ), + if (_pages.length > 1) + Padding( + padding: EdgeInsets.only(top: 10), + child: SmoothPageIndicator( + controller: _controller, + count: _pages.length, + effect: ColorTransitionEffect( + spacing: 6.0, + radius: 6.0, + dotWidth: 6.0, + dotHeight: 6.0, + dotColor: Theme.of(context).hintColor.withOpacity(0.5), + activeDotColor: Theme.of(context).hintColor, + ), + ), + ), + Padding( + padding: EdgeInsets.only(top: 20, bottom: 24, left: 24, right: 24), + child: Observer( + builder: (context) { + return LoadingPrimaryButton( + onPressed: _confirmForm, + text: S.of(context).restore_recover, + color: Theme.of(context).accentTextTheme.subtitle2!.decorationColor!, + textColor: Theme.of(context).accentTextTheme.headline5!.decorationColor!, + isLoading: walletRestoreViewModel.state is IsExecutingState, + isDisabled: !walletRestoreViewModel.isButtonEnabled, + ); + }, + ), + ) + ], + ), + ), + ), + ), + ); } bool _isValidSeed() { - final seedWords = walletRestoreFromSeedFormKey - .currentState - !.seedWidgetStateKey - .currentState - !.text - .split(' '); + final seedWords = + walletRestoreFromSeedFormKey.currentState!.seedWidgetStateKey.currentState!.text.split(' '); - if ((walletRestoreViewModel.type == WalletType.monero || walletRestoreViewModel.type == WalletType.haven) && + if ((walletRestoreViewModel.type == WalletType.monero || + walletRestoreViewModel.type == WalletType.haven) && seedWords.length != WalletRestoreViewModelBase.moneroSeedMnemonicLength) { return false; } - + if ((walletRestoreViewModel.type == WalletType.bitcoin || - walletRestoreViewModel.type == WalletType.litecoin) && - (seedWords.length != WalletRestoreViewModelBase.electrumSeedMnemonicLength && - seedWords.length != WalletRestoreViewModelBase.electrumShortSeedMnemonicLength)) { + walletRestoreViewModel.type == WalletType.litecoin) && + (seedWords.length != WalletRestoreViewModelBase.electrumSeedMnemonicLength && + seedWords.length != WalletRestoreViewModelBase.electrumShortSeedMnemonicLength)) { return false; } - final words = walletRestoreFromSeedFormKey - .currentState - !.seedWidgetStateKey - .currentState - !.words - .toSet(); - return seedWords - .toSet() - .difference(words) - .toSet() - .isEmpty; + final words = + walletRestoreFromSeedFormKey.currentState!.seedWidgetStateKey.currentState!.words.toSet(); + return seedWords.toSet().difference(words).toSet().isEmpty; } Map _credentials() { final credentials = {}; if (walletRestoreViewModel.mode == WalletRestoreMode.seed) { - credentials['seed'] = walletRestoreFromSeedFormKey - .currentState!.seedWidgetStateKey.currentState!.text; + credentials['seed'] = + walletRestoreFromSeedFormKey.currentState!.seedWidgetStateKey.currentState!.text; if (walletRestoreViewModel.hasBlockchainHeightLanguageSelector) { - credentials['height'] = walletRestoreFromSeedFormKey - .currentState!.blockchainHeightKey.currentState!.height; + credentials['height'] = + walletRestoreFromSeedFormKey.currentState!.blockchainHeightKey.currentState!.height; } - credentials['name'] = walletRestoreFromSeedFormKey.currentState!.nameTextEditingController.text; + credentials['name'] = + walletRestoreFromSeedFormKey.currentState!.nameTextEditingController.text; } else { - credentials['address'] = - walletRestoreFromKeysFormKey.currentState!.addressController.text; - credentials['viewKey'] = - walletRestoreFromKeysFormKey.currentState!.viewKeyController.text; - credentials['spendKey'] = - walletRestoreFromKeysFormKey.currentState!.spendKeyController.text; - credentials['height'] = walletRestoreFromKeysFormKey - .currentState!.blockchainHeightKey.currentState!.height; - credentials['name'] = walletRestoreFromKeysFormKey.currentState!.nameTextEditingController.text; + credentials['address'] = walletRestoreFromKeysFormKey.currentState!.addressController.text; + credentials['viewKey'] = walletRestoreFromKeysFormKey.currentState!.viewKeyController.text; + credentials['spendKey'] = walletRestoreFromKeysFormKey.currentState!.spendKeyController.text; + credentials['height'] = + walletRestoreFromKeysFormKey.currentState!.blockchainHeightKey.currentState!.height; + credentials['name'] = + walletRestoreFromKeysFormKey.currentState!.nameTextEditingController.text; } return credentials; @@ -272,10 +264,8 @@ class WalletRestorePage extends BasePage { : walletRestoreFromKeysFormKey.currentState!.formKey; final name = walletRestoreViewModel.mode == WalletRestoreMode.seed - ? walletRestoreFromSeedFormKey - .currentState!.nameTextEditingController.value.text - : walletRestoreFromKeysFormKey - .currentState!.nameTextEditingController.value.text; + ? walletRestoreFromSeedFormKey.currentState!.nameTextEditingController.value.text + : walletRestoreFromKeysFormKey.currentState!.nameTextEditingController.value.text; if (!formKey.currentState!.validate()) { return; @@ -301,5 +291,3 @@ class WalletRestorePage extends BasePage { }); } } - - diff --git a/lib/src/screens/settings/desktop_settings/dashboard_settings_page.dart b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart similarity index 76% rename from lib/src/screens/settings/desktop_settings/dashboard_settings_page.dart rename to lib/src/screens/settings/desktop_settings/desktop_settings_page.dart index 8028e6057..bfd22ed26 100644 --- a/lib/src/screens/settings/desktop_settings/dashboard_settings_page.dart +++ b/lib/src/screens/settings/desktop_settings/desktop_settings_page.dart @@ -17,7 +17,7 @@ class DesktopSettingsPage extends StatefulWidget { class _DesktopSettingsPageState extends State { final int itemCount = SettingActions.desktopSettings.length; - + int? currentPage; void _onItemChange(int index) { @@ -79,25 +79,30 @@ class _DesktopSettingsPageState extends State { ), ), ), - Expanded( + Flexible( flex: 2, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - SizedBox(height: 100), - Flexible( - child: Navigator( - key: _settingsNavigatorKey, - initialRoute: Routes.empty_no_route, - onGenerateRoute: (settings) => Router.createRoute(settings), - onGenerateInitialRoutes: (NavigatorState navigator, String initialRouteName) { - return [ - navigator.widget.onGenerateRoute!(RouteSettings(name: initialRouteName))! - ]; - }, + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 500), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox(height: 100), + Flexible( + child: Navigator( + key: _settingsNavigatorKey, + initialRoute: Routes.empty_no_route, + onGenerateRoute: (settings) => Router.createRoute(settings), + onGenerateInitialRoutes: + (NavigatorState navigator, String initialRouteName) { + return [ + navigator + .widget.onGenerateRoute!(RouteSettings(name: initialRouteName))! + ]; + }, + ), ), - ), - ], + ], + ), ), ) ], diff --git a/lib/src/screens/support/support_page.dart b/lib/src/screens/support/support_page.dart index 5edb723bc..801f81775 100644 --- a/lib/src/screens/support/support_page.dart +++ b/lib/src/screens/support/support_page.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_link_provider_cell.dart'; import 'package:cake_wallet/src/widgets/standard_list.dart'; +import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/view_model/settings/link_list_item.dart'; import 'package:cake_wallet/view_model/settings/regular_list_item.dart'; import 'package:cake_wallet/view_model/support_view_model.dart'; @@ -18,32 +19,34 @@ class SupportPage extends BasePage { @override Widget body(BuildContext context) { - final iconColor = - Theme.of(context).accentTextTheme!.headline1!.backgroundColor!; + final iconColor = Theme.of(context).accentTextTheme!.headline1!.backgroundColor!; // FIX-ME: Added `context` it was not used here before, maby bug ? - return SectionStandardList( - context: context, - sectionCount: 1, - itemCounter: (int _) => supportViewModel.items.length, - itemBuilder: (_, __, index) { - final item = supportViewModel.items[index]; + return Center( + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 500), + child: SectionStandardList( + context: context, + sectionCount: 1, + itemCounter: (int _) => supportViewModel.items.length, + itemBuilder: (_, __, index) { + final item = supportViewModel.items[index]; - if (item is RegularListItem) { - return SettingsCellWithArrow( - title: item.title, handler: item.handler); - } + if (item is RegularListItem) { + return SettingsCellWithArrow(title: item.title, handler: item.handler); + } - if (item is LinkListItem) { - return SettingsLinkProviderCell( - title: item.title, - icon: item.icon, - iconColor: item.hasIconColor ? iconColor : null, - link: item.link, - linkTitle: item.linkTitle); - } + if (item is LinkListItem) { + return SettingsLinkProviderCell( + title: item.title, + icon: item.icon, + iconColor: item.hasIconColor ? iconColor : null, + link: item.link, + linkTitle: item.linkTitle); + } - return Container(); - }); + return Container(); + }), + ), + ); } - -} \ No newline at end of file +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index a1baaa904..cb5959638 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -433,7 +433,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 7; DEVELOPMENT_TEAM = 32J6BB6VUS; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Cake Wallet"; @@ -567,7 +567,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 7; DEVELOPMENT_TEAM = 32J6BB6VUS; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Cake Wallet"; @@ -595,7 +595,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 2; + CURRENT_PROJECT_VERSION = 7; DEVELOPMENT_TEAM = 32J6BB6VUS; INFOPLIST_FILE = Runner/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Cake Wallet"; diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 8222467bd..ff2e8a08e 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -682,5 +682,6 @@ "send_to_this_address" : "أرسل ${currency} ${tag}إلى هذا العنوان", "arrive_in_this_address" : "سيصل ${currency} ${tag}إلى هذا العنوان", "do_not_send": "لا ترسل", - "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق." + "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق.", + "settings": "إعدادات" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 1a3ddff74..c0ee3334b 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -684,5 +684,6 @@ "send_to_this_address" : "इस पते पर ${currency} ${tag}भेजें", "arrive_in_this_address" : "${currency} ${tag}इस पते पर पहुंचेंगे", "do_not_send": "मत भेजो", - "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।" + "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।", + "settings": "समायोजन" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 831056785..2ff2789af 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -684,5 +684,6 @@ "send_to_this_address" : "${currency} ${tag}をこのアドレスに送金", "arrive_in_this_address" : "${currency} ${tag}はこの住所に到着します", "do_not_send": "送信しない", - "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione." + "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione.", + "settings": "設定" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 401f5af3a..eb572fa85 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -684,5 +684,6 @@ "send_to_this_address" : "ဤလိပ်စာသို့ ${currency} ${tag}သို့ ပို့ပါ။", "arrive_in_this_address" : "${currency} ${tag}ဤလိပ်စာသို့ ရောက်ရှိပါမည်။", "do_not_send": "မပို့ပါနှင့်", - "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။" + "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။", + "settings": "ဆက်တင်များ" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 2ecf1bf75..60319bb06 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -682,5 +682,6 @@ "send_to_this_address" : "ส่ง ${currency} ${tag}ไปยังที่อยู่นี้", "arrive_in_this_address" : "${currency} ${tag}จะมาถึงที่อยู่นี้", "do_not_send": "อย่าส่ง", - "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น" + "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น", + "settings": "การตั้งค่า" } diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 08dec0649..9f8486d32 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -684,5 +684,6 @@ "send_to_this_address" : "Bu adrese ${currency} ${tag}gönder", "arrive_in_this_address" : "${currency} ${tag}bu adrese ulaşacak", "do_not_send": "Gönderme", - "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin." + "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin.", + "settings": "ayarlar" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 52fc9cd7a..1580ff6f8 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -682,5 +682,6 @@ "send_to_this_address" : "发送 ${currency} ${tag}到这个地址", "arrive_in_this_address" : "${currency} ${tag}将到达此地址", "do_not_send": "不要发送", - "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。" + "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。", + "settings": "设置" }