Merge branch 'main' of https://github.com/cake-tech/cake_wallet into CW-78-Ethereum

 Conflicts:
	lib/src/screens/dashboard/widgets/balance_page.dart
	res/values/strings_ar.arb
	res/values/strings_bg.arb
	res/values/strings_cs.arb
	res/values/strings_de.arb
	res/values/strings_en.arb
	res/values/strings_es.arb
	res/values/strings_fr.arb
	res/values/strings_ha.arb
	res/values/strings_hi.arb
	res/values/strings_hr.arb
	res/values/strings_id.arb
	res/values/strings_it.arb
	res/values/strings_ja.arb
	res/values/strings_ko.arb
	res/values/strings_my.arb
	res/values/strings_nl.arb
	res/values/strings_pl.arb
	res/values/strings_pt.arb
	res/values/strings_ru.arb
	res/values/strings_th.arb
	res/values/strings_tr.arb
	res/values/strings_uk.arb
	res/values/strings_ur.arb
	res/values/strings_yo.arb
	res/values/strings_zh.arb
This commit is contained in:
OmarHatem 2023-07-12 02:02:50 +03:00
commit fa494af5ab
51 changed files with 476 additions and 322 deletions

View file

@ -86,4 +86,5 @@ abstract class ElectrumTransactionHistoryBase
void _update(ElectrumTransactionInfo transaction) =>
transactions[transaction.id] = transaction;
}

View file

@ -14,6 +14,8 @@ abstract class TransactionHistoryBase<TransactionType extends TransactionInfo> {
void addMany(Map<String, TransactionType> transactions);
void clear() => transactions.clear();
// bool _isUpdating;
// @action

View file

@ -24,4 +24,5 @@ abstract class MoneroTransactionHistoryBase
@override
void addMany(Map<String, MoneroTransactionInfo> transactions) =>
this.transactions.addAll(transactions);
}

View file

@ -5,6 +5,7 @@ import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/src/widgets/nav_bar.dart';
import 'package:cake_wallet/generated/i18n.dart';
enum AppBarStyle { regular, withShadow, transparent }
@ -58,7 +59,7 @@ abstract class BasePage extends StatelessWidget {
child: ButtonTheme(
minWidth: double.minPositive,
child: Semantics(
label: 'Back',
label: S.of(context).seed_alert_back,
child: TextButton(
style: ButtonStyle(
overlayColor: MaterialStateColor.resolveWith(

View file

@ -24,35 +24,40 @@ class ContactListPage extends BasePage {
@override
Widget? trailing(BuildContext context) {
return Container(
width: 32.0,
height: 32.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context)
return MergeSemantics(
child: Container(
width: 32.0,
height: 32.0,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Theme.of(context)
.accentTextTheme!
.bodySmall!
.color!),
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Icon(Icons.add,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
size: 22.0),
ButtonTheme(
minWidth: 32.0,
height: 32.0,
child: TextButton(
// FIX-ME: Style
//shape: CircleBorder(),
onPressed: () async {
await Navigator.of(context)
.pushNamed(Routes.addressBookAddContact);
},
child: Offstage()),
)
],
));
child: Stack(
alignment: Alignment.center,
children: <Widget>[
Icon(Icons.add,
color: Theme.of(context).primaryTextTheme!.titleLarge!.color!,
size: 22.0),
ButtonTheme(
minWidth: 32.0,
height: 32.0,
child: Semantics(
label: S.of(context).add,
child: TextButton(
// FIX-ME: Style
//shape: CircleBorder(),
onPressed: () async {
await Navigator.of(context)
.pushNamed(Routes.addressBookAddContact);
},
child: Offstage()),
),
)
],
)),
);
}
@override

View file

@ -111,7 +111,8 @@ class _DashboardPageView extends BasePage {
//splashColor: Colors.transparent,
//padding: EdgeInsets.all(0),
onPressed: () => onOpenEndDrawer(),
child: Semantics(label: 'Menu', child: menuButton)));
child: Semantics(
label: S.of(context).wallet_menu, child: menuButton)));
}
final DashboardViewModel dashboardViewModel;
@ -248,7 +249,7 @@ class _DashboardPageView extends BasePage {
}
if (dashboardViewModel.shouldShowMarketPlaceInDashboard) {
pages.add(Semantics(
label: 'Marketplace Page',
label: S.of(context).market_place,
child: MarketPlacePage(
dashboardViewModel: dashboardViewModel,
marketPlaceViewModel: getIt.get<MarketPlaceViewModel>(),
@ -256,9 +257,9 @@ class _DashboardPageView extends BasePage {
),
);
}
pages.add(Semantics(label: 'Balance Page', child: balancePage));
pages.add(Semantics(label: S.of(context).balance_page, child: balancePage));
pages.add(Semantics(
label: 'Transactions Page',
label: S.of(context).settings_transactions,
child: TransactionsPage(dashboardViewModel: dashboardViewModel)));
_isEffectsInstalled = true;

View file

@ -14,72 +14,75 @@ class DesktopDashboardActions extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Observer(
builder: (_) {
return Column(
children: [
const SizedBox(height: 16),
DesktopActionButton(
title: MainActions.exchangeAction.name(context),
image: MainActions.exchangeAction.image,
canShow: MainActions.exchangeAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.exchangeAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.exchangeAction.onTap(context, dashboardViewModel),
),
Row(
children: [
Expanded(
child: DesktopActionButton(
title: MainActions.receiveAction.name(context),
image: MainActions.receiveAction.image,
canShow: MainActions.receiveAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.receiveAction.isEnabled?.call(dashboardViewModel),
onTap: () async =>
await MainActions.receiveAction.onTap(context, dashboardViewModel),
),
),
Expanded(
child: DesktopActionButton(
title: MainActions.sendAction.name(context),
image: MainActions.sendAction.image,
canShow: MainActions.sendAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.sendAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.sendAction.onTap(context, dashboardViewModel),
),
),
],
),
Row(
children: [
Expanded(
child: DesktopActionButton(
title: MainActions.buyAction.name(context),
image: MainActions.buyAction.image,
canShow: MainActions.buyAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.buyAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.buyAction.onTap(context, dashboardViewModel),
),
),
Expanded(
child: DesktopActionButton(
title: MainActions.sellAction.name(context),
image: MainActions.sellAction.image,
canShow: MainActions.sellAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.sellAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.sellAction.onTap(context, dashboardViewModel),
),
),
],
),
Expanded(
child: MarketPlacePage(
dashboardViewModel: dashboardViewModel,
marketPlaceViewModel: getIt.get<MarketPlaceViewModel>(),
return Container(
color: Theme.of(context).colorScheme.background,
child: Observer(
builder: (_) {
return Column(
children: [
const SizedBox(height: 16),
DesktopActionButton(
title: MainActions.exchangeAction.name(context),
image: MainActions.exchangeAction.image,
canShow: MainActions.exchangeAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.exchangeAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.exchangeAction.onTap(context, dashboardViewModel),
),
),
],
);
}
Row(
children: [
Expanded(
child: DesktopActionButton(
title: MainActions.receiveAction.name(context),
image: MainActions.receiveAction.image,
canShow: MainActions.receiveAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.receiveAction.isEnabled?.call(dashboardViewModel),
onTap: () async =>
await MainActions.receiveAction.onTap(context, dashboardViewModel),
),
),
Expanded(
child: DesktopActionButton(
title: MainActions.sendAction.name(context),
image: MainActions.sendAction.image,
canShow: MainActions.sendAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.sendAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.sendAction.onTap(context, dashboardViewModel),
),
),
],
),
Row(
children: [
Expanded(
child: DesktopActionButton(
title: MainActions.buyAction.name(context),
image: MainActions.buyAction.image,
canShow: MainActions.buyAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.buyAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.buyAction.onTap(context, dashboardViewModel),
),
),
Expanded(
child: DesktopActionButton(
title: MainActions.sellAction.name(context),
image: MainActions.sellAction.image,
canShow: MainActions.sellAction.canShow?.call(dashboardViewModel),
isEnabled: MainActions.sellAction.isEnabled?.call(dashboardViewModel),
onTap: () async => await MainActions.sellAction.onTap(context, dashboardViewModel),
),
),
],
),
Expanded(
child: MarketPlacePage(
dashboardViewModel: dashboardViewModel,
marketPlaceViewModel: getIt.get<MarketPlaceViewModel>(),
),
),
],
);
}
),
);
}
}

View file

@ -77,27 +77,21 @@ class DesktopSidebarWrapper extends BasePage {
SideMenuItem(
imagePath: 'assets/images/wallet_outline.png',
isSelected: desktopSidebarViewModel.currentPage == SidebarItem.dashboard,
onTap: () => desktopSidebarViewModel.onPageChange(SidebarItem.dashboard),
onTap: () {
desktopSidebarViewModel.onPageChange(SidebarItem.dashboard);
desktopNavigatorKey.currentState
?.pushNamedAndRemoveUntil(Routes.desktop_actions, (route) => false);
},
),
SideMenuItem(
onTap: () {
String? currentPath;
desktopNavigatorKey.currentState?.popUntil((route) {
currentPath = route.settings.name;
return true;
});
switch (currentPath) {
case Routes.transactionsPage:
desktopSidebarViewModel.resetSidebar();
break;
default:
desktopSidebarViewModel.resetSidebar();
Future.delayed(Duration(milliseconds: 10), () {
desktopSidebarViewModel.onPageChange(SidebarItem.transactions);
desktopNavigatorKey.currentState?.pushNamed(Routes.transactionsPage);
});
if (desktopSidebarViewModel.currentPage == SidebarItem.transactions) {
desktopNavigatorKey.currentState
?.pushNamedAndRemoveUntil(Routes.desktop_actions, (route) => false);
desktopSidebarViewModel.resetSidebar();
} else {
desktopSidebarViewModel.onPageChange(SidebarItem.transactions);
desktopNavigatorKey.currentState?.pushNamed(Routes.transactionsPage);
}
},
isSelected: desktopSidebarViewModel.currentPage == SidebarItem.transactions,
@ -156,20 +150,11 @@ class DesktopSidebarWrapper extends BasePage {
void _setEffects() async {
reaction<SidebarItem>((_) => desktopSidebarViewModel.currentPage, (page) {
String? currentPath;
desktopNavigatorKey.currentState?.popUntil((route) {
currentPath = route.settings.name;
return true;
});
if (page == SidebarItem.transactions) {
if (page == SidebarItem.dashboard) {
pageController.jumpToPage(0);
return;
}
if (currentPath == Routes.transactionsPage) {
Navigator.of(desktopNavigatorKey.currentContext!).pop();
}
pageController.jumpToPage(page.index);
pageController.jumpToPage(page.index - 1);
});
}
}

View file

@ -82,7 +82,9 @@ class AddressPage extends BasePage {
child: ButtonTheme(
minWidth: double.minPositive,
child: Semantics(
label: !isMobileView ? 'Close' : 'Back',
label: !isMobileView
? S.of(context).close
: S.of(context).seed_alert_back,
child: TextButton(
style: ButtonStyle(
overlayColor: MaterialStateColor.resolveWith(

View file

@ -2,6 +2,7 @@ import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart';
import 'package:cake_wallet/store/settings_store.dart';
import 'package:cake_wallet/themes/theme_base.dart';
import 'package:cake_wallet/utils/feature_flag.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:flutter/material.dart';
@ -17,9 +18,6 @@ class BalancePage extends StatelessWidget {
final DashboardViewModel dashboardViewModel;
final SettingsStore settingsStore;
Color get backgroundLightColor =>
settingsStore.currentTheme.type == ThemeType.bright ? Colors.transparent : Colors.white;
@override
Widget build(BuildContext context) {
return GestureDetector(
@ -70,7 +68,7 @@ class BalancePage extends StatelessWidget {
),
Observer(
builder: (_) {
if (dashboardViewModel.balanceViewModel.isShowCard) {
if (dashboardViewModel.balanceViewModel.isShowCard && FeatureFlag.isCakePayEnabled) {
return IntroducingCard(
title: S.of(context).introducing_cake_pay,
subTitle: S.of(context).cake_pay_learn_more,

View file

@ -52,7 +52,10 @@ class MarketPlacePage extends StatelessWidget {
children: <Widget>[
SizedBox(height: 20),
DashBoardRoundedCardWidget(
onTap: () => _navigatorToGiftCardsPage(context),
onTap: () => launchUrl(
Uri.parse("https://cakelabs.com/news/cake-pay-mobile-to-shut-down/"),
mode: LaunchMode.externalApplication,
),
title: S.of(context).cake_pay_title,
subTitle: S.of(context).cake_pay_subtitle,
),
@ -75,6 +78,7 @@ class MarketPlacePage extends StatelessWidget {
);
}
// TODO: Remove ionia flow/files if we will discard it
void _navigatorToGiftCardsPage(BuildContext context) {
final walletType = dashboardViewModel.type;

View file

@ -126,7 +126,9 @@ class ExchangePage extends BasePage {
child: ButtonTheme(
minWidth: double.minPositive,
child: Semantics(
label: !isMobileView ? 'Close' : 'Back',
label: !isMobileView
? S.of(context).close
: S.of(context).seed_alert_back,
child: TextButton(
style: ButtonStyle(
overlayColor: MaterialStateColor.resolveWith(

View file

@ -66,40 +66,6 @@ class IoniaManageCardsPage extends BasePage {
@override
Widget get endDrawer => CardMenu();
@override
Widget leading(BuildContext context) {
final _backButton = Icon(
Icons.arrow_back_ios,
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.backgroundColor!,
size: 16,
);
return SizedBox(
height: 37,
width: 37,
child: ButtonTheme(
minWidth: double.minPositive,
child: TextButton(
// FIX-ME: Style
//highlightColor: Colors.transparent,
//splashColor: Colors.transparent,
//padding: EdgeInsets.all(0),
onPressed: (){
if (searchFocusNode.hasFocus) {
searchFocusNode.unfocus();
return;
}
Navigator.of(context).pop();
},
child: _backButton),
),
);
}
@override
Widget middle(BuildContext context) {
return Text(
@ -123,26 +89,28 @@ class IoniaManageCardsPage extends BasePage {
@override
Widget body(BuildContext context) {
final filterButton = InkWell(
onTap: () async {
await showCategoryFilter(context);
_cardsListViewModel.getMerchants();
},
child: Container(
width: 32,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
border: Border.all(
color: Colors.white.withOpacity(0.2),
final filterButton = Semantics(
label: S.of(context).filter_by,
child: InkWell(
onTap: () async {
await showCategoryFilter(context);
_cardsListViewModel.getMerchants();
},
child: Container(
width: 32,
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: Theme.of(context).textTheme!.titleLarge!.backgroundColor!,
border: Border.all(
color: Colors.white.withOpacity(0.2),
),
borderRadius: BorderRadius.circular(10),
),
borderRadius: BorderRadius.circular(10),
),
child: Image.asset(
'assets/images/filter.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
),
)
child: Image.asset(
'assets/images/filter.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
),
)),
);
return Padding(
@ -281,11 +249,13 @@ class _SearchWidget extends StatelessWidget {
final FocusNode focusNode;
@override
Widget build(BuildContext context) {
final searchIcon = Padding(
padding: EdgeInsets.all(8),
child: Image.asset(
'assets/images/mini_search_icon.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
final searchIcon = ExcludeSemantics(
child: Padding(
padding: EdgeInsets.all(8),
child: Image.asset(
'assets/images/mini_search_icon.png',
color: Theme.of(context).textTheme!.bodySmall!.decorationColor!,
),
),
);
@ -335,18 +305,22 @@ class _TrailingIcon extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Material(
color: Colors.transparent,
child: IconButton(
padding: EdgeInsets.zero,
constraints: BoxConstraints(),
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
iconSize: 25,
onPressed: onPressed,
icon: Image.asset(
asset,
color: Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
return Semantics(
label: S.of(context).profile,
child: Material(
color: Colors.transparent,
child: IconButton(
padding: EdgeInsets.zero,
constraints: BoxConstraints(),
highlightColor: Colors.transparent,
splashColor: Colors.transparent,
iconSize: 25,
onPressed: onPressed,
icon: Image.asset(
asset,
color:
Theme.of(context).accentTextTheme!.displayMedium!.backgroundColor!,
),
),
),
);

View file

@ -118,19 +118,21 @@ class _AdvancedPrivacySettingsBodyState extends State<AdvancedPrivacySettingsBod
textColor: Colors.white,
),
const SizedBox(height: 25),
Padding(
padding: EdgeInsets.symmetric(horizontal: MediaQuery.of(context).size.width * 0.15),
child: Text(
S.of(context).settings_can_be_changed_later,
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
LayoutBuilder(
builder: (_, constraints) => SizedBox(
width: constraints.maxWidth * 0.8,
child: Text(
S.of(context).settings_can_be_changed_later,
textAlign: TextAlign.center,
style: TextStyle(
color: Theme.of(context)
.accentTextTheme!
.displayMedium!
.color,
),
),
),
),
)
],
),
),

View file

@ -146,7 +146,7 @@ class _WalletNameFormState extends State<WalletNameForm> {
width: 1.0),
),
suffixIcon: Semantics(
label: 'Generate Name',
label: S.of(context).generate_name,
child: IconButton(
onPressed: () async {
final rName = await generateName();

View file

@ -115,6 +115,7 @@ class NodeCreateOrEditPage extends BasePage {
bottomSectionPadding: EdgeInsets.only(bottom: 24),
bottomSection: Observer(
builder: (_) => Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Flexible(
child: Container(

View file

@ -226,7 +226,7 @@ class PinCodeState<T extends PinCodeWidget> extends State<T> {
child: Container(
margin: EdgeInsets.only(left: marginLeft, right: marginRight),
child: Semantics(
label: 'Delete',
label: S.of(context).delete,
button: true,
onTap: () => _pop(),
child: TextButton(

View file

@ -87,7 +87,7 @@ class ReceivePage extends BasePage {
return Material(
color: Colors.transparent,
child: Semantics(
label: 'Share',
label: S.of(context).share,
child: IconButton(
padding: EdgeInsets.zero,
constraints: BoxConstraints(),

View file

@ -71,7 +71,7 @@ class AddressCell extends StatelessWidget {
),
));
return Semantics(
label: 'Slidable',
label: S.of(context).slidable,
selected: isCurrent,
enabled: !isCurrent,
child: Slidable(

View file

@ -71,7 +71,9 @@ class SendPage extends BasePage {
child: ButtonTheme(
minWidth: double.minPositive,
child: Semantics(
label: !isMobileView ? 'Close' : 'Back',
label: !isMobileView
? S.of(context).close
: S.of(context).seed_alert_back,
child: TextButton(
style: ButtonStyle(
overlayColor: MaterialStateColor.resolveWith(

View file

@ -114,55 +114,66 @@ class AddressTextField extends StatelessWidget {
width: prefixIconWidth,
height: prefixIconHeight,
padding: EdgeInsets.only(top: 0),
child: InkWell(
onTap: () async => _pasteAddress(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme!
child: Semantics(
label: S.of(context).paste,
child: InkWell(
onTap: () async => _pasteAddress(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme
!
.titleLarge!
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/paste_ios.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme!
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/paste_ios.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme
!
.headlineMedium!
.decorationColor!,
)),
.decorationColor!,
)),
),
)),
],
if (this.options.contains(AddressTextFieldOption.qrCode) && DeviceInfo.instance.isMobile)
...[
if (this.options.contains(AddressTextFieldOption.qrCode) &&
DeviceInfo.instance.isMobile) ...[
Container(
width: prefixIconWidth,
height: prefixIconHeight,
padding: EdgeInsets.only(top: 0),
child: InkWell(
onTap: () async => _presentQRScanner(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme
child: Semantics(
label: S.of(context).scan_qr_code,
child: InkWell(
onTap: () async => _presentQRScanner(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme
.titleLarge!
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/qr_code_icon.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme!.headlineMedium!
.decorationColor!,
)),
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/qr_code_icon.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme
!.headlineMedium!
.decorationColor!,
)),
),
))
] else SizedBox(width: 5),
] else
SizedBox(width: 5),
if (this
.options
.contains(AddressTextFieldOption.addressBook)) ...[
@ -170,26 +181,32 @@ class AddressTextField extends StatelessWidget {
width: prefixIconWidth,
height: prefixIconHeight,
padding: EdgeInsets.only(top: 0),
child: InkWell(
onTap: () async => _presetAddressBookPicker(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme!
child: Semantics(
label: S.of(context).address_book,
child: InkWell(
onTap: () async =>
_presetAddressBookPicker(context),
child: Container(
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: buttonColor ??
Theme.of(context)
.accentTextTheme
!
.titleLarge!
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/open_book.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme!
.color!,
borderRadius:
BorderRadius.all(Radius.circular(6))),
child: Image.asset(
'assets/images/open_book.png',
color: iconColor ??
Theme.of(context)
.primaryTextTheme
!
.headlineMedium!
.decorationColor!,
)),
.decorationColor!,
)),
),
))
]
],

View file

@ -1,6 +1,7 @@
import 'package:auto_size_text/auto_size_text.dart';
import 'package:flutter/material.dart';
import 'package:cake_wallet/palette.dart';
import 'package:cake_wallet/generated/i18n.dart';
class IntroducingCard extends StatelessWidget {
IntroducingCard(
@ -70,7 +71,7 @@ class IntroducingCard extends StatelessWidget {
Padding(
padding: const EdgeInsets.fromLTRB(0,16,16,0),
child: Semantics(
label: 'Close',
label: S.of(context).close,
child: GestureDetector(
onTap: closeCard,
child: Container(

View file

@ -0,0 +1,3 @@
class FeatureFlag {
static const bool isCakePayEnabled = false;
}

View file

@ -4,9 +4,9 @@ part 'desktop_sidebar_view_model.g.dart';
enum SidebarItem {
dashboard,
transactions,
support,
settings,
transactions;
}
class DesktopSidebarViewModel = DesktopSidebarViewModelBase with _$DesktopSidebarViewModel;

View file

@ -24,6 +24,7 @@ abstract class RescanViewModelBase with Store {
Future<void> rescanCurrentWallet({required int restoreHeight}) async {
state = RescanWalletState.rescaning;
await _wallet.rescan(height: restoreHeight);
_wallet.transactionHistory.clear();
state = RescanWalletState.none;
}
}

View file

@ -115,10 +115,10 @@ SPEC CHECKSUMS:
platform_device_id_macos: f763bb55f088be804d61b96eb4710b8ab6598e94
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
share_plus_macos: 853ee48e7dce06b633998ca0735d482dd671ade4
shared_preferences_foundation: e2dae3258e06f44cc55f49d42024fd8dd03c590c
shared_preferences_foundation: 5b919d13b803cadd15ed2dc053125c68730e5126
url_launcher_macos: 5335912b679c073563f29d89d33d10d459f95451
wakelock_macos: bc3f2a9bd8d2e6c89fee1e1822e7ddac3bd004a9
PODFILE CHECKSUM: 5107934592df7813b33d744aebc8ddc6b5a5445f
COCOAPODS: 1.11.3
COCOAPODS: 1.12.1

View file

@ -606,6 +606,8 @@
"error_text_input_above_maximum_limit": "المبلغ أكبر من الحد الأقصى",
"show_market_place": "إظهار السوق",
"prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة",
"profile": "حساب تعريفي",
"close": "يغلق",
"modify_2fa": "تعديل 2 عامل المصادقة",
"disable_cake_2fa": "تعطيل 2 عامل المصادقة",
"question_to_disable_2fa": "هل أنت متأكد أنك تريد تعطيل Cake 2FA؟ لن تكون هناك حاجة إلى رمز 2FA للوصول إلى المحفظة ووظائف معينة.",
@ -628,21 +630,25 @@
"available_balance_description": "الرصيد المتاح هو الرصيد الذي يمكنك إنفاقه أو تحويله إلى محفظة أخرى. يتم تجميد الرصيد المتاح للمعاملات الصادرة والمعاملات الواردة غير المؤكدة.",
"syncing_wallet_alert_title": "محفظتك تتم مزامنتها",
"syncing_wallet_alert_content": "قد لا يكتمل رصيدك وقائمة المعاملات الخاصة بك حتى تظهر عبارة “SYNCHRONIZED“ في الأعلى. انقر / اضغط لمعرفة المزيد.",
"home_screen_settings": "إعدادات الشاشة الرئيسية",
"sort_by": "ترتيب حسب",
"search_add_token": "بحث / إضافة رمز",
"edit_token": "تحرير الرمز المميز",
"warning": "تحذير",
"add_token_warning": "لا تقم بتحرير أو إضافة رموز وفقًا لتعليمات المحتالين.\nقم دائمًا بتأكيد عناوين الرموز مع مصادر حسنة السمعة!",
"add_token_disclaimer_check": "لقد قمت بتأكيد عنوان ومعلومات عقد الرمز المميز باستخدام مصدر حسن السمعة. يمكن أن تؤدي إضافة معلومات خبيثة أو غير صحيحة إلى خسارة الأموال.",
"token_contract_address": "عنوان عقد الرمز",
"token_name": "اسم الرمز ، على سبيل المثال: Tether",
"token_symbol": "رمز العملة ، على سبيل المثال: USDT",
"token_decimal": "رمز عشري",
"field_required": "هذه الخانة مطلوبه",
"pin_at_top": "تثبيت ${token} في الأعلى",
"invalid_input": "مدخل غير صالح",
"fiat_balance": "الرصيد فيات",
"gross_balance": "إجمالي الرصيد",
"alphabetical": "مرتب حسب الحروف الأبجدية"
"home_screen_settings": "إعدادات الشاشة الرئيسية",
"sort_by": "ترتيب حسب",
"search_add_token": "بحث / إضافة رمز",
"edit_token": "تحرير الرمز المميز",
"warning": "تحذير",
"add_token_warning": "لا تقم بتحرير أو إضافة رموز وفقًا لتعليمات المحتالين.\nقم دائمًا بتأكيد عناوين الرموز مع مصادر حسنة السمعة!",
"add_token_disclaimer_check": "لقد قمت بتأكيد عنوان ومعلومات عقد الرمز المميز باستخدام مصدر حسن السمعة. يمكن أن تؤدي إضافة معلومات خبيثة أو غير صحيحة إلى خسارة الأموال.",
"token_contract_address": "عنوان عقد الرمز",
"token_name": "اسم الرمز ، على سبيل المثال: Tether",
"token_symbol": "رمز العملة ، على سبيل المثال: USDT",
"token_decimal": "رمز عشري",
"field_required": "هذه الخانة مطلوبه",
"pin_at_top": "تثبيت ${token} في الأعلى",
"invalid_input": "مدخل غير صالح",
"fiat_balance": "الرصيد فيات",
"gross_balance": "إجمالي الرصيد",
"alphabetical": "مرتب حسب الحروف الأبجدية",
"generate_name": "توليد الاسم",
"balance_page": "صفحة التوازن",
"share": "يشارك",
"slidable": "قابل للانزلاق"
}

View file

@ -602,6 +602,8 @@
"error_text_input_above_maximum_limit": "Сумата надвишава максималната",
"show_market_place": "Покажи пазар",
"prevent_screenshots": "Предотвратете екранни снимки и запис на екрана",
"profile": "Профил",
"close": "затвори",
"modify_2fa": "Модифициране на тортата 2FA",
"disable_cake_2fa": "Деактивирайте Cake 2FA",
"question_to_disable_2fa": "Сигурни ли сте, че искате да деактивирате Cake 2FA? Вече няма да е необходим 2FA код за достъп до портфейла и определени функции.",
@ -640,5 +642,9 @@
"invalid_input": "Невалиден вход",
"fiat_balance": "Фиат Баланс",
"gross_balance": "Брутен баланс",
"alphabetical": "Азбучен ред"
"alphabetical": "Азбучен ред",
"generate_name": "Генериране на име",
"balance_page": "Страница за баланс",
"share": "Дял",
"slidable": "Плъзгащ се"
}

View file

@ -602,6 +602,8 @@
"error_text_input_above_maximum_limit": "Částka je větší než maximální hodnota",
"show_market_place": "Zobrazit trh",
"prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky",
"profile": "Profil",
"close": "zavřít",
"modify_2fa": "Upravte Cake 2FA",
"disable_cake_2fa": "Zakázat Cake 2FA",
"question_to_disable_2fa": "Opravdu chcete deaktivovat Cake 2FA? Pro přístup k peněžence a některým funkcím již nebude potřeba kód 2FA.",
@ -640,5 +642,9 @@
"invalid_input": "Neplatný vstup",
"fiat_balance": "Fiat Balance",
"gross_balance": "Hrubý zůstatek",
"alphabetical": "Abecední"
"alphabetical": "Abecední",
"generate_name": "Generovat jméno",
"balance_page": "Stránka zůstatku",
"share": "Podíl",
"slidable": "Posuvné"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Menge ist über dem Maximum",
"show_market_place": "Marktplatz anzeigen",
"prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen",
"profile": "Profil",
"close": "Schließen",
"modify_2fa": "Kuchen 2FA ändern",
"disable_cake_2fa": "Kuchen 2FA deaktivieren",
"question_to_disable_2fa": "Sind Sie sicher, dass Sie Cake 2FA deaktivieren möchten? Für den Zugriff auf die Brieftasche und bestimmte Funktionen wird kein 2FA-Code mehr benötigt.",
@ -646,5 +648,9 @@
"invalid_input": "Ungültige Eingabe",
"fiat_balance": "Fiat Balance",
"gross_balance": "Bruttosaldo",
"alphabetical": "Alphabetisch"
"alphabetical": "Alphabetisch",
"generate_name": "Namen generieren",
"balance_page": "Balance-Seite",
"share": "Aktie",
"slidable": "Verschiebbar"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Amount is more than the maximum",
"show_market_place": "Show Marketplace",
"prevent_screenshots": "Prevent screenshots and screen recording",
"profile": "Profile",
"close": "Close",
"modify_2fa": "Modify Cake 2FA",
"disable_cake_2fa": "Disable Cake 2FA",
"question_to_disable_2fa": "Are you sure that you want to disable Cake 2FA? A 2FA code will no longer be needed to access the wallet and certain functions.",
@ -646,5 +648,9 @@
"invalid_input": "Invalid input",
"fiat_balance": "Fiat Balance",
"gross_balance": "Gross Balance",
"alphabetical": "Alphabetical"
"alphabetical": "Alphabetical",
"generate_name": "Generate Name",
"balance_page": "Balance Page",
"share": "Share",
"slidable": "Slidable"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "La cantidad es más que el máximo",
"show_market_place": "Mostrar mercado",
"prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla",
"profile": "Perfil",
"close": "Cerca",
"modify_2fa": "Modificar torta 2FA",
"disable_cake_2fa": "Desactivar pastel 2FA",
"question_to_disable_2fa": "¿Está seguro de que desea deshabilitar Cake 2FA? Ya no se necesitará un código 2FA para acceder a la billetera y a ciertas funciones.",
@ -646,5 +648,9 @@
"invalid_input": "Entrada inválida",
"fiat_balance": "Equilibrio Fiat",
"gross_balance": "Saldo bruto",
"alphabetical": "Alfabético"
"alphabetical": "Alfabético",
"generate_name": "Generar nombre",
"balance_page": "Página de saldo",
"share": "Compartir",
"slidable": "deslizable"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Le montant est supérieur au maximum",
"show_market_place": "Afficher la place de marché",
"prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran",
"profile": "Profil",
"close": "Fermer",
"modify_2fa": "Modifier les paramètres Cake 2FA",
"disable_cake_2fa": "Désactiver Cake 2FA",
"question_to_disable_2fa": "Êtes-vous sûr de vouloir désactiver Cake 2FA ? Un code 2FA ne sera plus nécessaire pour accéder au portefeuille (wallet) et à certaines fonctions.",
@ -646,5 +648,9 @@
"invalid_input": "Entrée invalide",
"fiat_balance": "Fiat Balance",
"gross_balance": "Solde brut",
"alphabetical": "Alphabétique"
"alphabetical": "Alphabétique",
"generate_name": "Générer un nom",
"balance_page": "Page Solde",
"share": "Partager",
"slidable": "Glissable"
}

View file

@ -628,5 +628,9 @@
"invalid_input": "Shigar da ba daidai ba",
"fiat_balance": "Fiat Balance",
"gross_balance": "Babban Ma'auni",
"alphabetical": "Harafi"
"alphabetical": "Harafi",
"generate_name": "Ƙirƙirar Suna",
"balance_page": "Ma'auni Page",
"share": "Raba",
"slidable": "Mai iya zamewa"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "राशि अधिकतम से अधिक है",
"show_market_place": "बाज़ार दिखाएँ",
"prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें",
"profile": "प्रोफ़ाइल",
"close": "बंद करना",
"modify_2fa": "केक 2FA संशोधित करें",
"disable_cake_2fa": "केक 2FA अक्षम करें",
"question_to_disable_2fa": "क्या आप सुनिश्चित हैं कि आप Cake 2FA को अक्षम करना चाहते हैं? वॉलेट और कुछ कार्यों तक पहुँचने के लिए अब 2FA कोड की आवश्यकता नहीं होगी।",
@ -646,5 +648,9 @@
"invalid_input": "अमान्य निवेश",
"fiat_balance": "फिएट बैलेंस",
"gross_balance": "सकल संतुलन",
"alphabetical": "वर्णमाला"
"alphabetical": "वर्णमाला",
"generate_name": "नाम जनरेट करें",
"balance_page": "बैलेंस पेज",
"share": "शेयर करना",
"slidable": "फिसलने लायक"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Iznos je veći od maskimalnog",
"show_market_place": "Prikaži tržište",
"prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona",
"profile": "Profil",
"close": "Zatvoriti",
"modify_2fa": "Izmijenite tortu 2FA",
"disable_cake_2fa": "Onemogući Cake 2FA",
"question_to_disable_2fa": "Jeste li sigurni da želite onemogućiti Cake 2FA? 2FA kod više neće biti potreban za pristup novčaniku i određenim funkcijama.",
@ -646,5 +648,9 @@
"invalid_input": "Pogrešan unos",
"fiat_balance": "Fiat Bilans",
"gross_balance": "Bruto bilanca",
"alphabetical": "Abecedno"
"alphabetical": "Abecedno",
"generate_name": "Generiraj ime",
"balance_page": "Stranica sa stanjem",
"share": "Udio",
"slidable": "Klizna"
}

View file

@ -598,6 +598,8 @@
"error_text_input_above_maximum_limit": "Jumlah lebih dari maksimal",
"show_market_place": "Tampilkan Pasar",
"prevent_screenshots": "Cegah tangkapan layar dan perekaman layar",
"profile": "Profil",
"close": "Menutup",
"modify_2fa": "Ubah Kue 2FA",
"disable_cake_2fa": "Nonaktifkan Kue 2FA",
"question_to_disable_2fa": "Apakah Anda yakin ingin menonaktifkan Cake 2FA? Kode 2FA tidak lagi diperlukan untuk mengakses dompet dan fungsi tertentu.",
@ -636,5 +638,9 @@
"invalid_input": "Masukan tidak valid",
"fiat_balance": "Saldo Fiat",
"gross_balance": "Saldo Kotor",
"alphabetical": "Alfabetis"
"alphabetical": "Alfabetis",
"generate_name": "Hasilkan Nama",
"balance_page": "Halaman Saldo",
"share": "Membagikan",
"slidable": "Dapat digeser"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "L'ammontare è superiore al massimo",
"show_market_place": "Mostra mercato",
"prevent_screenshots": "Impedisci screenshot e registrazione dello schermo",
"profile": "Profilo",
"close": "Chiudere",
"modify_2fa": "Modifica Torta 2FA",
"disable_cake_2fa": "Disabilita Cake 2FA",
"question_to_disable_2fa": "Sei sicuro di voler disabilitare Cake 2FA? Non sarà più necessario un codice 2FA per accedere al portafoglio e ad alcune funzioni.",
@ -646,5 +648,9 @@
"invalid_input": "Inserimento non valido",
"fiat_balance": "Equilibrio fiat",
"gross_balance": "Saldo lordo",
"alphabetical": "Alfabetico"
"alphabetical": "Alfabetico",
"generate_name": "Genera nome",
"balance_page": "Pagina di equilibrio",
"share": "Condividere",
"slidable": "Scorrevole"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "金額は最大値を超えています",
"show_market_place": "マーケットプレイスを表示",
"prevent_screenshots": "スクリーンショットと画面録画を防止する",
"profile": "プロフィール",
"close": "近い",
"modify_2fa": "ケーキの 2FA を変更する",
"disable_cake_2fa": "Cake 2FA を無効にする",
"question_to_disable_2fa": "Cake 2FA を無効にしてもよろしいですか?ウォレットと特定の機能にアクセスするために 2FA コードは必要なくなります。",
@ -646,5 +648,9 @@
"invalid_input": "無効入力",
"fiat_balance": "フィアットバランス",
"gross_balance": "グロス残高",
"alphabetical": "アルファベット順"
"alphabetical": "アルファベット順",
"generate_name": "名前の生成",
"balance_page": "残高ページ",
"share": "共有",
"slidable": "スライド可能"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "금액이 최대 값보다 많습니다.",
"show_market_place": "마켓플레이스 표시",
"prevent_screenshots": "스크린샷 및 화면 녹화 방지",
"profile": "프로필",
"close": "닫다",
"modify_2fa": "수정 케이크 2FA",
"disable_cake_2fa": "케이크 2FA 비활성화",
"question_to_disable_2fa": "Cake 2FA를 비활성화하시겠습니까? 지갑 및 특정 기능에 액세스하는 데 더 이상 2FA 코드가 필요하지 않습니다.",
@ -646,5 +648,9 @@
"invalid_input": "잘못된 입력",
"fiat_balance": "피아트 잔액",
"gross_balance": "총 잔액",
"alphabetical": "알파벳순"
"alphabetical": "알파벳순",
"generate_name": "이름 생성",
"balance_page": "잔액 페이지",
"share": "공유하다",
"slidable": "슬라이딩 가능"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "ပမာဏသည် အများဆုံးထက် ပိုများသည်။",
"show_market_place": "စျေးကွက်ကိုပြသပါ။",
"prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။",
"profile": "ကိုယ်ရေးအကျဉ်း",
"close": "အနီးကပ်",
"modify_2fa": "ကိတ်မုန့် 2FA ကို ပြင်ဆင်ပါ။",
"disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။",
"question_to_disable_2fa": "Cake 2FA ကို ပိတ်လိုသည်မှာ သေချာပါသလား။ ပိုက်ဆံအိတ်နှင့် အချို့သောလုပ်ဆောင်ချက်များကို အသုံးပြုရန်အတွက် 2FA ကုဒ်တစ်ခု မလိုအပ်တော့ပါ။",
@ -646,5 +648,9 @@
"invalid_input": "ထည့်သွင်းမှု မမှန်ကန်ပါ။",
"fiat_balance": "Fiat Balance",
"gross_balance": "စုစုပေါင်းလက်ကျန်ငွေ",
"alphabetical": "အက္ခရာစဉ်"
"alphabetical": "အက္ခရာစဉ်",
"generate_name": "အမည်ဖန်တီးပါ။",
"balance_page": "လက်ကျန်စာမျက်နှာ",
"share": "မျှဝေပါ။",
"slidable": "လျှောချနိုင်သည်။"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Bedrag is meer dan maximaal",
"show_market_place": "Toon Marktplaats",
"prevent_screenshots": "Voorkom screenshots en schermopname",
"profile": "Profiel",
"close": "Dichtbij",
"modify_2fa": "Wijzig Cake 2FA",
"disable_cake_2fa": "Taart 2FA uitschakelen",
"question_to_disable_2fa": "Weet je zeker dat je Cake 2FA wilt uitschakelen? Er is geen 2FA-code meer nodig om toegang te krijgen tot de portemonnee en bepaalde functies.",
@ -646,5 +648,9 @@
"invalid_input": "Ongeldige invoer",
"fiat_balance": "Fiat Balans",
"gross_balance": "Bruto saldo",
"alphabetical": "Alfabetisch"
"alphabetical": "Alfabetisch",
"generate_name": "Naam genereren",
"balance_page": "Saldo pagina",
"share": "Deel",
"slidable": "Verschuifbaar"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Kwota jest większa niż maksymalna",
"show_market_place": "Pokaż rynek",
"prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu",
"profile": "Profil",
"close": "Zamknąć",
"modify_2fa": "Zmodyfikuj ciasto 2FA",
"disable_cake_2fa": "Wyłącz Cake 2FA",
"question_to_disable_2fa": "Czy na pewno chcesz wyłączyć Cake 2FA? Kod 2FA nie będzie już potrzebny do uzyskania dostępu do portfela i niektórych funkcji.",
@ -646,5 +648,9 @@
"invalid_input": "Nieprawidłowe dane wejściowe",
"fiat_balance": "Bilans Fiata",
"gross_balance": "Saldo brutto",
"alphabetical": "Alfabetyczny"
"alphabetical": "Alfabetyczny",
"generate_name": "Wygeneruj nazwę",
"balance_page": "Strona salda",
"share": "Udział",
"slidable": "Przesuwne"
}

View file

@ -436,7 +436,7 @@
"electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando",
"wallet_name_exists": "A carteira com esse nome já existe",
"market_place": "Mercado",
"cake_pay_title": "Cartões de presente de pagamento de bolo",
"cake_pay_title": "Cartões de presente de CakePay",
"cake_pay_subtitle": "Compre vales-presente com desconto (somente nos EUA)",
"cake_pay_web_cards_title": "Cartões Cake Pay Web",
"cake_pay_web_cards_subtitle": "Compre cartões pré-pagos e cartões-presente em todo o mundo",
@ -607,11 +607,13 @@
"error_text_input_above_maximum_limit": "O valor é superior ao máximo",
"show_market_place": "Mostrar mercado",
"prevent_screenshots": "Evite capturas de tela e gravação de tela",
"modify_2fa": "Modificar Bolo 2FA",
"disable_cake_2fa": "Desabilitar Bolo 2FA",
"profile": "Perfil",
"close": "Fechar",
"modify_2fa": "Modificar o Cake 2FA",
"disable_cake_2fa": "Desabilitar o Cake 2FA",
"question_to_disable_2fa": "Tem certeza de que deseja desativar o Cake 2FA? Um código 2FA não será mais necessário para acessar a carteira e certas funções.",
"disable": "Desativar",
"setup_2fa": "Bolo de Configuração 2FA",
"setup_2fa": "Configurar o Cake 2FA",
"verify_with_2fa": "Verificar com Cake 2FA",
"totp_code": "Código TOTP",
"please_fill_totp": "Por favor, preencha o código de 8 dígitos presente em seu outro dispositivo",
@ -645,5 +647,9 @@
"invalid_input": "Entrada inválida",
"fiat_balance": "Equilíbrio Fiat",
"gross_balance": "Saldo Bruto",
"alphabetical": "alfabética"
"alphabetical": "alfabética",
"generate_name": "Gerar nome",
"balance_page": "Página de saldo",
"share": "Compartilhar",
"slidable": "Deslizável"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Сумма больше максимальной",
"show_market_place": "Показать торговую площадку",
"prevent_screenshots": "Предотвратить скриншоты и запись экрана",
"profile": "Профиль",
"close": "Закрывать",
"modify_2fa": "Изменить торт 2FA",
"disable_cake_2fa": "Отключить торт 2FA",
"question_to_disable_2fa": "Вы уверены, что хотите отключить Cake 2FA? Код 2FA больше не потребуется для доступа к кошельку и некоторым функциям.",
@ -646,5 +648,9 @@
"invalid_input": "Неверный Ввод",
"fiat_balance": "Фиатный баланс",
"gross_balance": "Валовой баланс",
"alphabetical": "Алфавитный"
"alphabetical": "Алфавитный",
"generate_name": "Создать имя",
"balance_page": "Страница баланса",
"share": "Делиться",
"slidable": "Скользящий"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "จำนวนเงินสูงกว่าค่าสูงสุด",
"show_market_place": "แสดงตลาดกลาง",
"prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ",
"profile": "ประวัติโดยย่อ",
"close": "ปิด",
"modify_2fa": "แก้ไขเค้ก 2FA",
"disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA",
"question_to_disable_2fa": "คุณแน่ใจหรือไม่ว่าต้องการปิดการใช้งาน Cake 2FA ไม่จำเป็นต้องใช้รหัส 2FA ในการเข้าถึงกระเป๋าเงินและฟังก์ชั่นบางอย่างอีกต่อไป",
@ -646,5 +648,9 @@
"invalid_input": "อินพุตไม่ถูกต้อง",
"fiat_balance": "เฟียต บาลานซ์",
"gross_balance": "ยอดคงเหลือ",
"alphabetical": "ตามตัวอักษร"
"alphabetical": "ตามตัวอักษร",
"generate_name": "สร้างชื่อ",
"balance_page": "หน้ายอดคงเหลือ",
"share": "แบ่งปัน",
"slidable": "เลื่อนได้"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Miktar maksimumdan daha fazla",
"show_market_place": "Pazar Yerini Göster",
"prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin",
"profile": "Profil",
"close": "Kapalı",
"modify_2fa": "Cake 2FA'yı Değiştirin",
"disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak",
"question_to_disable_2fa": "Cake 2FA'yı devre dışı bırakmak istediğinizden emin misiniz? M-cüzdana ve belirli işlevlere erişmek için artık 2FA koduna gerek kalmayacak.",
@ -646,5 +648,9 @@
"invalid_input": "Geçersiz Giriş",
"fiat_balance": "Fiat Bakiyesi",
"gross_balance": "Brüt Bakiye",
"alphabetical": "Alfabetik"
"alphabetical": "Alfabetik",
"generate_name": "İsim Oluştur",
"balance_page": "Bakiye Sayfası",
"share": "Paylaşmak",
"slidable": "kaydırılabilir"
}

View file

@ -608,6 +608,8 @@
"error_text_input_above_maximum_limit": "Сума більше максимальної",
"show_market_place": "Відображати маркетплейс",
"prevent_screenshots": "Запобігати знімкам екрана та запису екрана",
"profile": "Профіль",
"close": "Закрити",
"modify_2fa": "Змінити торт 2FA",
"disable_cake_2fa": "Вимкнути Cake 2FA",
"question_to_disable_2fa": "Ви впевнені, що хочете вимкнути Cake 2FA? Код 2FA більше не потрібен для доступу до гаманця та певних функцій.",
@ -646,5 +648,9 @@
"invalid_input": "Неправильні дані",
"fiat_balance": "Фіат Баланс",
"gross_balance": "Валовий баланс",
"alphabetical": "Алфавітний"
"alphabetical": "Алфавітний",
"generate_name": "Згенерувати назву",
"balance_page": "Сторінка балансу",
"share": "Поділіться",
"slidable": "Розсувний"
}

View file

@ -602,6 +602,8 @@
"error_text_input_above_maximum_limit": "رقم زیادہ سے زیادہ سے زیادہ ہے۔",
"show_market_place": "بازار دکھائیں۔",
"prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔",
"profile": "پروفائل",
"close": "بند کریں",
"modify_2fa": "کیک 2FA میں ترمیم کریں۔",
"disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔",
"question_to_disable_2fa": "کیا آپ واقعی کیک 2FA کو غیر فعال کرنا چاہتے ہیں؟ بٹوے اور بعض افعال تک رسائی کے لیے اب 2FA کوڈ کی ضرورت نہیں ہوگی۔",
@ -640,5 +642,9 @@
"invalid_input": "غلط ان پٹ",
"fiat_balance": "فیاٹ بیلنس",
"gross_balance": "مجموعی بیلنس",
"alphabetical": "حروف تہجی کے مطابق"
"alphabetical": "حروف تہجی کے مطابق",
"generate_name": "نام پیدا کریں۔",
"balance_page": "بیلنس صفحہ",
"share": "بانٹیں",
"slidable": "سلائیڈ ایبل"
}

View file

@ -604,6 +604,8 @@
"error_text_input_above_maximum_limit": "Iye jọwọ ni o yẹ diẹ ti o wọle diẹ",
"show_market_place": "Wa Sopọ Pataki",
"prevent_screenshots": "Pese asapọ ti awọn ẹrọ eto aṣa",
"profile": "profaili",
"close": "sunmo",
"modify_2fa": "Fi iṣiro 2FA sii Cake",
"disable_cake_2fa": "Ko 2FA Cake sii",
"question_to_disable_2fa": "Ṣe o wa daadaa pe o fẹ ko 2FA Cake? Ko si itumọ ti a yoo nilo lati ranse si iwe iwe naa ati eyikeyi iṣẹ ti o ni.",
@ -642,5 +644,9 @@
"invalid_input": "Iṣawọle ti ko tọ",
"fiat_balance": "Fiat Iwontunws.funfun",
"gross_balance": "Iwontunws.funfun apapọ",
"alphabetical": "Labidibi"
"alphabetical": "Labidibi",
"generate_name": "Ṣẹda Orukọ",
"balance_page": "Oju-iwe iwọntunwọnsi",
"share": "Pinpin",
"slidable": "Slidable"
}

View file

@ -607,6 +607,8 @@
"error_text_input_above_maximum_limit": "金额大于最大值",
"show_market_place": "显示市场",
"prevent_screenshots": "防止截屏和录屏",
"profile": "轮廓",
"close": "关闭",
"modify_2fa": "修改蛋糕2FA",
"disable_cake_2fa": "禁用蛋糕 2FA",
"question_to_disable_2fa": "您确定要禁用 Cake 2FA 吗?访问钱包和某些功能将不再需要 2FA 代码。",
@ -645,5 +647,9 @@
"invalid_input": "输入无效",
"fiat_balance": "法币余额",
"gross_balance": "毛余额",
"alphabetical": "按字母顺序"
"alphabetical": "按字母顺序",
"generate_name": "生成名称",
"balance_page": "余额页",
"share": "分享",
"slidable": "可滑动"
}