mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-11-17 01:37:40 +00:00
Merge branch 'main' of https://github.com/cake-tech/cake_wallet into CW-477-add-ens
This commit is contained in:
commit
fc4e9ac978
35 changed files with 266 additions and 138 deletions
|
@ -132,6 +132,9 @@ class NodeForm extends StatelessWidget {
|
|||
Observer(
|
||||
builder: (_) => StandardCheckbox(
|
||||
value: nodeViewModel.useSSL,
|
||||
gradientBackground: true,
|
||||
borderColor: Theme.of(context).dividerColor,
|
||||
iconColor: Colors.white,
|
||||
onChanged: (value) => nodeViewModel.useSSL = value,
|
||||
caption: S.of(context).use_ssl,
|
||||
),
|
||||
|
@ -148,6 +151,9 @@ class NodeForm extends StatelessWidget {
|
|||
Observer(
|
||||
builder: (_) => StandardCheckbox(
|
||||
value: nodeViewModel.trusted,
|
||||
gradientBackground: true,
|
||||
borderColor: Theme.of(context).dividerColor,
|
||||
iconColor: Colors.white,
|
||||
onChanged: (value) => nodeViewModel.trusted = value,
|
||||
caption: S.of(context).trusted,
|
||||
),
|
||||
|
@ -166,6 +172,9 @@ class NodeForm extends StatelessWidget {
|
|||
children: [
|
||||
StandardCheckbox(
|
||||
value: nodeViewModel.useSocksProxy,
|
||||
gradientBackground: true,
|
||||
borderColor: Theme.of(context).dividerColor,
|
||||
iconColor: Colors.white,
|
||||
onChanged: (value) {
|
||||
if (!value) {
|
||||
_socksAddressController.text = '';
|
||||
|
|
|
@ -10,7 +10,7 @@ import 'package:cake_wallet/src/screens/receive/widgets/anonpay_status_section.d
|
|||
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
|
||||
import 'package:cake_wallet/src/screens/receive/widgets/copy_link_item.dart';
|
||||
import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
||||
import 'package:device_display_brightness/device_display_brightness.dart';
|
||||
import 'package:cake_wallet/utils/brightness_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:qr_flutter/qr_flutter.dart' as qr;
|
||||
import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart';
|
||||
|
@ -82,8 +82,7 @@ class AnonPayReceivePage extends BasePage {
|
|||
|
||||
@override
|
||||
Widget Function(BuildContext, Widget) get rootWrapper =>
|
||||
(BuildContext context, Widget scaffold) =>
|
||||
GradientBackground(scaffold: scaffold);
|
||||
(BuildContext context, Widget scaffold) => GradientBackground(scaffold: scaffold);
|
||||
|
||||
@override
|
||||
Widget body(BuildContext context) {
|
||||
|
@ -101,19 +100,13 @@ class AnonPayReceivePage extends BasePage {
|
|||
),
|
||||
child: GestureDetector(
|
||||
onTap: () async {
|
||||
final double brightness = await DeviceDisplayBrightness.getBrightness();
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(1.0);
|
||||
await Navigator.pushNamed(
|
||||
context,
|
||||
Routes.fullscreenQR,
|
||||
arguments: QrViewData(data: invoiceInfo.clearnetUrl,
|
||||
version: qr.QrVersions.auto,
|
||||
)
|
||||
);
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(brightness);
|
||||
BrightnessUtil.changeBrightnessForFunction(() async {
|
||||
await Navigator.pushNamed(context, Routes.fullscreenQR,
|
||||
arguments: QrViewData(
|
||||
data: invoiceInfo.clearnetUrl,
|
||||
version: qr.QrVersions.auto,
|
||||
));
|
||||
});
|
||||
},
|
||||
child: Hero(
|
||||
tag: Key(invoiceInfo.clearnetUrl),
|
||||
|
|
|
@ -3,10 +3,9 @@ import 'package:cake_wallet/themes/extensions/qr_code_theme.dart';
|
|||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/src/screens/exchange/widgets/currency_picker.dart';
|
||||
import 'package:cake_wallet/src/screens/receive/widgets/currency_input_field.dart';
|
||||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:cake_wallet/utils/brightness_util.dart';
|
||||
import 'package:cake_wallet/utils/show_bar.dart';
|
||||
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||
import 'package:device_display_brightness/device_display_brightness.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||
|
@ -64,7 +63,7 @@ class QRWidget extends StatelessWidget {
|
|||
flex: 5,
|
||||
child: GestureDetector(
|
||||
onTap: () {
|
||||
changeBrightnessForRoute(
|
||||
BrightnessUtil.changeBrightnessForFunction(
|
||||
() async {
|
||||
await Navigator.pushNamed(context, Routes.fullscreenQR,
|
||||
arguments: QrViewData(
|
||||
|
@ -178,23 +177,4 @@ class QRWidget extends StatelessWidget {
|
|||
// update amount if currency changed
|
||||
addressListViewModel.changeAmount(amountController.text);
|
||||
}
|
||||
|
||||
Future<void> changeBrightnessForRoute(Future<void> Function() navigation) async {
|
||||
// if not mobile, just navigate
|
||||
if (!DeviceInfo.instance.isMobile) {
|
||||
navigation();
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the current brightness:
|
||||
final brightness = await DeviceDisplayBrightness.getBrightness();
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(1.0);
|
||||
|
||||
await navigation();
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(brightness);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,7 +14,6 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter/services.dart';
|
||||
import 'package:qr_flutter/qr_flutter.dart' as qr;
|
||||
|
||||
|
||||
class Setup2FAQRPage extends BasePage {
|
||||
Setup2FAQRPage({required this.setup2FAViewModel});
|
||||
|
||||
|
@ -25,7 +24,6 @@ class Setup2FAQRPage extends BasePage {
|
|||
|
||||
@override
|
||||
Widget body(BuildContext context) {
|
||||
|
||||
final copyImage = Image.asset(
|
||||
'assets/images/copy_content.png',
|
||||
height: 12,
|
||||
|
@ -126,16 +124,69 @@ class Setup2FAQRPage extends BasePage {
|
|||
),
|
||||
SizedBox(height: 8),
|
||||
StandardListSeparator(),
|
||||
SizedBox(height: 13),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Expanded(
|
||||
flex: 2,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
S.current.totp_auth_url,
|
||||
style: TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Palette.darkGray,
|
||||
height: 1.8333,
|
||||
),
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
Text(
|
||||
'${setup2FAViewModel.totpVersionOneLink}',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w700,
|
||||
height: 1.375,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(width: 8),
|
||||
Container(
|
||||
width: 32,
|
||||
height: 32,
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
ClipboardUtil.setSensitiveDataToClipboard(
|
||||
ClipboardData(text: '${setup2FAViewModel.totpVersionOneLink}'));
|
||||
showBar<void>(context, S.of(context).copied_to_clipboard);
|
||||
},
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(6),
|
||||
color: Color(0xFFF2F0FA),
|
||||
),
|
||||
child: copyImage,
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
SizedBox(height: 8),
|
||||
StandardListSeparator(),
|
||||
Spacer(),
|
||||
PrimaryButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pushReplacementNamed(
|
||||
Routes.totpAuthCodePage,
|
||||
Navigator.of(context).pushReplacementNamed(Routes.totpAuthCodePage,
|
||||
arguments: TotpAuthArgumentsModel(
|
||||
isForSetup: true,
|
||||
)
|
||||
|
||||
);
|
||||
));
|
||||
},
|
||||
text: S.current.continue_text,
|
||||
color: Theme.of(context).primaryColor,
|
||||
|
|
|
@ -5,10 +5,10 @@ import 'package:cake_wallet/src/widgets/list_row.dart';
|
|||
import 'package:cake_wallet/src/widgets/section_divider.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/routes.dart';
|
||||
import 'package:cake_wallet/utils/brightness_util.dart';
|
||||
import 'package:cake_wallet/utils/clipboard_util.dart';
|
||||
import 'package:cake_wallet/utils/show_bar.dart';
|
||||
import 'package:cake_wallet/view_model/wallet_keys_view_model.dart';
|
||||
import 'package:device_display_brightness/device_display_brightness.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||
|
@ -26,19 +26,15 @@ class WalletKeysPage extends BasePage {
|
|||
@override
|
||||
Widget trailing(BuildContext context) => IconButton(
|
||||
onPressed: () async {
|
||||
// Get the current brightness:
|
||||
final double brightness = await DeviceDisplayBrightness.getBrightness();
|
||||
final url = await walletKeysViewModel.url;
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(1.0);
|
||||
await Navigator.pushNamed(
|
||||
context,
|
||||
Routes.fullscreenQR,
|
||||
arguments: QrViewData(data: url.toString(), version: QrVersions.auto),
|
||||
);
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(brightness);
|
||||
BrightnessUtil.changeBrightnessForFunction(() async {
|
||||
await Navigator.pushNamed(
|
||||
context,
|
||||
Routes.fullscreenQR,
|
||||
arguments: QrViewData(data: url.toString(), version: QrVersions.auto),
|
||||
);
|
||||
});
|
||||
},
|
||||
splashColor: Colors.transparent,
|
||||
highlightColor: Colors.transparent,
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:cake_wallet/src/widgets/standard_checkbox.dart';
|
||||
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
|
||||
import 'package:cake_wallet/palette.dart';
|
||||
import 'package:cake_wallet/utils/responsive_layout_util.dart';
|
||||
|
@ -101,7 +102,7 @@ class CheckBoxPickerState extends State<CheckBoxPicker> {
|
|||
height: 1,
|
||||
)
|
||||
: const SizedBox(),
|
||||
itemCount: items == null || items.isEmpty ? 0 : items.length,
|
||||
itemCount: items.isEmpty ? 0 : items.length,
|
||||
itemBuilder: (context, index) => buildItem(index),
|
||||
),
|
||||
);
|
||||
|
@ -112,41 +113,51 @@ class CheckBoxPickerState extends State<CheckBoxPicker> {
|
|||
|
||||
return GestureDetector(
|
||||
onTap: () {
|
||||
Navigator.of(context).pop();
|
||||
if (item.isDisabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool newValue = !item.value;
|
||||
item.value = newValue;
|
||||
widget.onChanged(index, newValue);
|
||||
setState(() {});
|
||||
},
|
||||
child: Container(
|
||||
height: 55,
|
||||
color: Theme.of(context).dialogTheme.backgroundColor,
|
||||
padding: EdgeInsets.only(left: 24, right: 24),
|
||||
child: CheckboxListTile(
|
||||
value: item.value,
|
||||
activeColor: item.value
|
||||
? Palette.blueCraiola
|
||||
: Theme.of(context).extension<FilterTheme>()!.checkboxBackgroundColor,
|
||||
checkColor: Colors.white,
|
||||
title: widget.displayItem?.call(item) ??
|
||||
Text(
|
||||
item.title,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
fontFamily: 'Lato',
|
||||
fontWeight: FontWeight.w600,
|
||||
color: item.isDisabled
|
||||
? Colors.grey.withOpacity(0.5)
|
||||
: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
|
||||
decoration: TextDecoration.none,
|
||||
),
|
||||
),
|
||||
onChanged: (bool? value) {
|
||||
if (value == null) {
|
||||
return;
|
||||
}
|
||||
child: Row(
|
||||
children: [
|
||||
StandardCheckbox(
|
||||
value: item.value,
|
||||
gradientBackground: true,
|
||||
borderColor: Theme.of(context).dividerColor,
|
||||
iconColor: Colors.white,
|
||||
onChanged: (bool? value) {
|
||||
if (value == null || item.isDisabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
item.value = value;
|
||||
widget.onChanged(index, value);
|
||||
setState(() {});
|
||||
},
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
item.value = value;
|
||||
widget.onChanged(index, value);
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
SizedBox(width: 16),
|
||||
widget.displayItem?.call(item) ??
|
||||
Text(
|
||||
item.title,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
fontFamily: 'Lato',
|
||||
fontWeight: FontWeight.w600,
|
||||
color: item.isDisabled
|
||||
? Colors.grey.withOpacity(0.5)
|
||||
: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
|
||||
decoration: TextDecoration.none,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
23
lib/utils/brightness_util.dart
Normal file
23
lib/utils/brightness_util.dart
Normal file
|
@ -0,0 +1,23 @@
|
|||
import 'package:cake_wallet/utils/device_info.dart';
|
||||
import 'package:device_display_brightness/device_display_brightness.dart';
|
||||
|
||||
class BrightnessUtil {
|
||||
static Future<void> changeBrightnessForFunction(Future<void> Function() func) async {
|
||||
// if not mobile, just navigate
|
||||
if (!DeviceInfo.instance.isMobile) {
|
||||
func();
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the current brightness:
|
||||
final brightness = await DeviceDisplayBrightness.getBrightness();
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(1.0);
|
||||
|
||||
await func();
|
||||
|
||||
// ignore: unawaited_futures
|
||||
DeviceDisplayBrightness.setBrightness(brightness);
|
||||
}
|
||||
}
|
|
@ -30,6 +30,7 @@ import 'package:cake_wallet/view_model/send/send_view_model_state.dart';
|
|||
import 'package:cake_wallet/entities/parsed_address.dart';
|
||||
import 'package:cake_wallet/bitcoin/bitcoin.dart';
|
||||
import 'package:cake_wallet/haven/haven.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
|
||||
part 'send_view_model.g.dart';
|
||||
|
||||
|
@ -325,7 +326,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
|
|||
|
||||
state = TransactionCommitted();
|
||||
} catch (e) {
|
||||
state = FailureState(e.toString());
|
||||
String translatedError = translateErrorMessage(e.toString(), wallet.type, wallet.currency);
|
||||
state = FailureState(translatedError);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -412,4 +414,14 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
|
|||
selectedCryptoCurrency = wallet.currency;
|
||||
}
|
||||
}
|
||||
|
||||
String translateErrorMessage(String error, WalletType walletType, CryptoCurrency currency,) {
|
||||
if (walletType == WalletType.ethereum || walletType == WalletType.haven) {
|
||||
if (error.contains('gas required exceeds allowance (0)') || error.contains('insufficient funds for gas')) {
|
||||
return S.current.do_not_have_enough_gas_asset(currency.toString());
|
||||
}
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -689,5 +689,8 @@
|
|||
"default_buy_provider": "مزود شراء الافتراضي",
|
||||
"ask_each_time": "اسأل في كل مرة",
|
||||
"buy_provider_unavailable": "مزود حاليا غير متوفر.",
|
||||
"address_from_ens": "هذا العنوان من ${domain} على ENS"
|
||||
}
|
||||
"address_from_ens": "هذا العنوان من ${domain} على ENS",
|
||||
"do_not_have_enough_gas_asset": "ليس لديك ما يكفي من ${currency} لإجراء معاملة وفقًا لشروط شبكة blockchain الحالية. أنت بحاجة إلى المزيد من ${currency} لدفع رسوم شبكة blockchain، حتى لو كنت ترسل أصلًا مختلفًا.",
|
||||
"totp_auth_url": " TOTP ﺔﻗﺩﺎﺼﻤﻟ URL ﻥﺍﻮﻨﻋ"
|
||||
}
|
||||
|
||||
|
|
|
@ -685,5 +685,7 @@
|
|||
"default_buy_provider": "Доставчик по подразбиране купува",
|
||||
"ask_each_time": "Питайте всеки път",
|
||||
"buy_provider_unavailable": "Понастоящем доставчик не е наличен.",
|
||||
"address_from_ens": "Този адрес е от ${domain} на ENS"
|
||||
}
|
||||
"address_from_ens": "Този адрес е от ${domain} на ENS",
|
||||
"do_not_have_enough_gas_asset": "Нямате достатъчно ${currency}, за да извършите транзакция с текущите условия на блокчейн мрежата. Имате нужда от повече ${currency}, за да платите таксите за блокчейн мрежа, дори ако изпращате различен актив.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -685,5 +685,7 @@
|
|||
"default_buy_provider": "Výchozí poskytovatel nákupu",
|
||||
"ask_each_time": "Zeptejte se pokaždé",
|
||||
"buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.",
|
||||
"address_from_ens": "Tato adresa pochází z ${domain} na ENS"
|
||||
}
|
||||
"address_from_ens": "Tato adresa pochází z ${domain} na ENS",
|
||||
"do_not_have_enough_gas_asset": "Nemáte dostatek ${currency} k provedení transakce s aktuálními podmínkami blockchainové sítě. K placení poplatků za blockchainovou síť potřebujete více ${currency}, i když posíláte jiné aktivum.",
|
||||
"totp_auth_url": "URL AUTH TOTP"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Standard-Kaufanbieter",
|
||||
"ask_each_time": "Jedes Mal fragen",
|
||||
"buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.",
|
||||
"address_from_ens": "Diese Adresse stammt von ${domain} auf Ens"
|
||||
}
|
||||
"address_from_ens": "Diese Adresse stammt von ${domain} auf Ens",
|
||||
"do_not_have_enough_gas_asset": "Sie verfügen nicht über genügend ${currency}, um eine Transaktion unter den aktuellen Bedingungen des Blockchain-Netzwerks durchzuführen. Sie benötigen mehr ${currency}, um die Gebühren für das Blockchain-Netzwerk zu bezahlen, auch wenn Sie einen anderen Vermögenswert senden.",
|
||||
"totp_auth_url": "TOTP-Auth-URL"
|
||||
}
|
||||
|
|
|
@ -694,5 +694,7 @@
|
|||
"ask_each_time": "Ask each time",
|
||||
"robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.",
|
||||
"buy_provider_unavailable": "Provider currently unavailable.",
|
||||
"address_from_ens": "This address is from ${domain} on ENS"
|
||||
}
|
||||
"address_from_ens": "This address is from ${domain} on ENS",
|
||||
"do_not_have_enough_gas_asset": "You do not have enough ${currency} to make a transaction with the current blockchain network conditions. You need more ${currency} to pay blockchain network fees, even if you are sending a different asset.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Proveedor de compra predeterminado",
|
||||
"ask_each_time": "Pregunta cada vez",
|
||||
"buy_provider_unavailable": "Proveedor actualmente no disponible.",
|
||||
"address_from_ens": "Esta dirección es de ${domain} en ENS"
|
||||
}
|
||||
"address_from_ens": "Esta dirección es de ${domain} en ENS",
|
||||
"do_not_have_enough_gas_asset": "No tienes suficiente ${currency} para realizar una transacción con las condiciones actuales de la red blockchain. Necesita más ${currency} para pagar las tarifas de la red blockchain, incluso si envía un activo diferente.",
|
||||
"totp_auth_url": "URL de autenticación TOTP"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Fournisseur d'achat par défaut",
|
||||
"ask_each_time": "Demandez à chaque fois",
|
||||
"buy_provider_unavailable": "Fournisseur actuellement indisponible.",
|
||||
"address_from_ens": "Cette adresse provient de ${domain} sur ENS"
|
||||
}
|
||||
"address_from_ens": "Cette adresse provient de ${domain} sur ENS",
|
||||
"do_not_have_enough_gas_asset": "Vous n'avez pas assez de ${currency} pour effectuer une transaction avec les conditions actuelles du réseau blockchain. Vous avez besoin de plus de ${currency} pour payer les frais du réseau blockchain, même si vous envoyez un actif différent.",
|
||||
"totp_auth_url": "URL D'AUTORISATION TOTP"
|
||||
}
|
||||
|
|
|
@ -671,5 +671,7 @@
|
|||
"default_buy_provider": "Tsohuwar Siyarwa",
|
||||
"ask_each_time": "Tambaya kowane lokaci",
|
||||
"buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.",
|
||||
"address_from_ens": "Wannan adireshin daga ${domain} Don tabbatarwa"
|
||||
}
|
||||
"address_from_ens": "Wannan adireshin daga ${domain} Don tabbatarwa",
|
||||
"do_not_have_enough_gas_asset": "Ba ku da isassun ${currency} don yin ma'amala tare da yanayin cibiyar sadarwar blockchain na yanzu. Kuna buƙatar ƙarin ${currency} don biyan kuɗaɗen cibiyar sadarwar blockchain, koda kuwa kuna aika wata kadara daban.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता",
|
||||
"ask_each_time": "हर बार पूछें",
|
||||
"buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।",
|
||||
"address_from_ens": "यह पता ENS पर ${domain} से है"
|
||||
}
|
||||
"address_from_ens": "यह पता ENS पर ${domain} से है",
|
||||
"do_not_have_enough_gas_asset": "वर्तमान ब्लॉकचेन नेटवर्क स्थितियों में लेनदेन करने के लिए आपके पास पर्याप्त ${currency} नहीं है। ब्लॉकचेन नेटवर्क शुल्क का भुगतान करने के लिए आपको अधिक ${currency} की आवश्यकता है, भले ही आप एक अलग संपत्ति भेज रहे हों।",
|
||||
"totp_auth_url": "TOTP प्रामाणिक यूआरएल"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Zadani davatelj kupnje",
|
||||
"ask_each_time": "Pitajte svaki put",
|
||||
"buy_provider_unavailable": "Davatelj trenutno nije dostupan.",
|
||||
"address_from_ens": "Ova je adresa od ${domain} na ens"
|
||||
"address_from_ens": "Ova je adresa od ${domain} na ens",
|
||||
"do_not_have_enough_gas_asset": "Nemate dovoljno ${currency} da izvršite transakciju s trenutačnim uvjetima blockchain mreže. Trebate više ${currency} da platite naknade za blockchain mrežu, čak i ako šaljete drugu imovinu.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
|
@ -681,5 +681,7 @@
|
|||
"default_buy_provider": "Penyedia beli default",
|
||||
"ask_each_time": "Tanyakan setiap kali",
|
||||
"buy_provider_unavailable": "Penyedia saat ini tidak tersedia.",
|
||||
"address_from_ens": "Alamat ini dari ${domain} di ENS"
|
||||
"address_from_ens": "Alamat ini dari ${domain} di ENS",
|
||||
"do_not_have_enough_gas_asset": "Anda tidak memiliki cukup ${currency} untuk melakukan transaksi dengan kondisi jaringan blockchain saat ini. Anda memerlukan lebih banyak ${currency} untuk membayar biaya jaringan blockchain, meskipun Anda mengirimkan aset yang berbeda.",
|
||||
"totp_auth_url": "URL Otentikasi TOTP"
|
||||
}
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Provider di acquisto predefinito",
|
||||
"ask_each_time": "Chiedi ogni volta",
|
||||
"buy_provider_unavailable": "Provider attualmente non disponibile.",
|
||||
"address_from_ens": "Questo indirizzo è da ${domain} su ENS"
|
||||
}
|
||||
"address_from_ens": "Questo indirizzo è da ${domain} su ENS",
|
||||
"do_not_have_enough_gas_asset": "Non hai abbastanza ${currency} per effettuare una transazione con le attuali condizioni della rete blockchain. Hai bisogno di più ${currency} per pagare le commissioni della rete blockchain, anche se stai inviando una risorsa diversa.",
|
||||
"totp_auth_url": "URL DI AUT. TOTP"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "デフォルトの購入プロバイダー",
|
||||
"ask_each_time": "毎回尋ねてください",
|
||||
"buy_provider_unavailable": "現在、プロバイダーは利用できません。",
|
||||
"address_from_ens": "このアドレスはENSの${domain}からです"
|
||||
}
|
||||
"address_from_ens": "このアドレスはENSの${domain}からです",
|
||||
"do_not_have_enough_gas_asset": "現在のブロックチェーン ネットワークの状況では、トランザクションを行うのに十分な ${currency} がありません。別のアセットを送信する場合でも、ブロックチェーン ネットワーク料金を支払うにはさらに ${currency} が必要です。",
|
||||
"totp_auth_url": "TOTP認証URL"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "기본 구매 제공자",
|
||||
"ask_each_time": "매번 물어보십시오",
|
||||
"buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.",
|
||||
"address_from_ens": "이 주소는 ens의 ${domain}에서입니다."
|
||||
}
|
||||
"address_from_ens": "이 주소는 ens의 ${domain}에서입니다.",
|
||||
"do_not_have_enough_gas_asset": "현재 블록체인 네트워크 조건으로 거래를 하기에는 ${currency}이(가) 충분하지 않습니다. 다른 자산을 보내더라도 블록체인 네트워크 수수료를 지불하려면 ${currency}가 더 필요합니다.",
|
||||
"totp_auth_url": "TOTP 인증 URL"
|
||||
}
|
||||
|
|
|
@ -691,5 +691,7 @@
|
|||
"default_buy_provider": "Default Provider ကိုဝယ်ပါ",
|
||||
"ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ",
|
||||
"buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။",
|
||||
"address_from_ens": "ဒီလိပ်စာက ens အပေါ် ${domain} မှဖြစ်ပါတယ်"
|
||||
}
|
||||
"address_from_ens": "ဒီလိပ်စာက ens အပေါ် ${domain} မှဖြစ်ပါတယ်",
|
||||
"do_not_have_enough_gas_asset": "လက်ရှိ blockchain ကွန်ရက်အခြေအနေများနှင့် အရောင်းအဝယ်ပြုလုပ်ရန် သင့်တွင် ${currency} လုံလောက်မှုမရှိပါ။ သင်သည် မတူညီသော ပိုင်ဆိုင်မှုတစ်ခုကို ပေးပို့နေသော်လည်း blockchain ကွန်ရက်အခကြေးငွေကို ပေးဆောင်ရန် သင်သည် နောက်ထပ် ${currency} လိုအပ်ပါသည်။",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Standaard Koopprovider",
|
||||
"ask_each_time": "Vraag het elke keer",
|
||||
"buy_provider_unavailable": "Provider momenteel niet beschikbaar.",
|
||||
"address_from_ens": "Dit adres is van ${domain} op ENS"
|
||||
}
|
||||
"address_from_ens": "Dit adres is van ${domain} op ENS",
|
||||
"do_not_have_enough_gas_asset": "U heeft niet genoeg ${currency} om een transactie uit te voeren met de huidige blockchain-netwerkomstandigheden. U heeft meer ${currency} nodig om blockchain-netwerkkosten te betalen, zelfs als u een ander item verzendt.",
|
||||
"totp_auth_url": "TOTP AUTH-URL"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Domyślny dostawca zakupu",
|
||||
"ask_each_time": "Zapytaj za każdym razem",
|
||||
"buy_provider_unavailable": "Dostawca obecnie niedostępny.",
|
||||
"address_from_ens": "Ten adres pochodzi od ${domain} na ens"
|
||||
}
|
||||
"address_from_ens": "Ten adres pochodzi od ${domain} na ens",
|
||||
"do_not_have_enough_gas_asset": "Nie masz wystarczającej ilości ${currency}, aby dokonać transakcji przy bieżących warunkach sieci blockchain. Potrzebujesz więcej ${currency}, aby uiścić opłaty za sieć blockchain, nawet jeśli wysyłasz inny zasób.",
|
||||
"totp_auth_url": "Adres URL TOTP AUTH"
|
||||
}
|
||||
|
|
|
@ -692,5 +692,7 @@
|
|||
"default_buy_provider": "Provedor de compra padrão",
|
||||
"ask_each_time": "Pergunte cada vez",
|
||||
"buy_provider_unavailable": "Provedor atualmente indisponível.",
|
||||
"address_from_ens": "Este endereço é de ${domain} no ENS"
|
||||
}
|
||||
"address_from_ens": "Este endereço é de ${domain} no ENS",
|
||||
"do_not_have_enough_gas_asset": "Você não tem ${currency} suficiente para fazer uma transação com as condições atuais da rede blockchain. Você precisa de mais ${currency} para pagar as taxas da rede blockchain, mesmo se estiver enviando um ativo diferente.",
|
||||
"totp_auth_url": "URL de autenticação TOTP"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "По умолчанию поставщик покупки",
|
||||
"ask_each_time": "Спросите каждый раз",
|
||||
"buy_provider_unavailable": "Поставщик в настоящее время недоступен.",
|
||||
"address_from_ens": "Этот адрес от ${domain} на ENS"
|
||||
}
|
||||
"address_from_ens": "Этот адрес от ${domain} на ENS",
|
||||
"do_not_have_enough_gas_asset": "У вас недостаточно ${currency} для совершения транзакции при текущих условиях сети блокчейн. Вам нужно больше ${currency} для оплаты комиссий за сеть блокчейна, даже если вы отправляете другой актив.",
|
||||
"totp_auth_url": "URL-адрес TOTP-АВТОРИЗАЦИИ"
|
||||
}
|
||||
|
|
|
@ -691,5 +691,7 @@
|
|||
"default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น",
|
||||
"ask_each_time": "ถามทุกครั้ง",
|
||||
"buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน",
|
||||
"address_from_ens": "ที่อยู่นี้มาจาก ${domain} บน Ens"
|
||||
}
|
||||
"address_from_ens": "ที่อยู่นี้มาจาก ${domain} บน Ens",
|
||||
"do_not_have_enough_gas_asset": "คุณมี ${currency} ไม่เพียงพอที่จะทำธุรกรรมกับเงื่อนไขเครือข่ายบล็อคเชนในปัจจุบัน คุณต้องมี ${currency} เพิ่มขึ้นเพื่อชำระค่าธรรมเนียมเครือข่ายบล็อคเชน แม้ว่าคุณจะส่งสินทรัพย์อื่นก็ตาม",
|
||||
"totp_auth_url": "URL การตรวจสอบสิทธิ์ TOTP"
|
||||
}
|
||||
|
|
|
@ -688,5 +688,7 @@
|
|||
"support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan",
|
||||
"select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.",
|
||||
"save_to_downloads": "I -save sa mga pag -download",
|
||||
"address_from_ens": "Ang address na ito ay mula sa ${domain} sa ens"
|
||||
"address_from_ens": "Ang address na ito ay mula sa ${domain} sa ens",
|
||||
"do_not_have_enough_gas_asset": "Wala kang sapat na ${currency} para gumawa ng transaksyon sa kasalukuyang kundisyon ng network ng blockchain. Kailangan mo ng higit pang ${currency} upang magbayad ng mga bayarin sa network ng blockchain, kahit na nagpapadala ka ng ibang asset.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
|
@ -691,5 +691,7 @@
|
|||
"default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı",
|
||||
"ask_each_time": "Her seferinde sor",
|
||||
"buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.",
|
||||
"address_from_ens": "Bu adres ens'deki ${domain} 'den"
|
||||
}
|
||||
"address_from_ens": "Bu adres ens'deki ${domain} 'den",
|
||||
"do_not_have_enough_gas_asset": "Mevcut blockchain ağ koşullarıyla işlem yapmak için yeterli ${currency} paranız yok. Farklı bir varlık gönderiyor olsanız bile blockchain ağ ücretlerini ödemek için daha fazla ${currency} miktarına ihtiyacınız var.",
|
||||
"totp_auth_url": "TOTP YETKİ URL'si"
|
||||
}
|
||||
|
|
|
@ -693,5 +693,7 @@
|
|||
"default_buy_provider": "Постачальник покупки за замовчуванням",
|
||||
"ask_each_time": "Запитайте кожен раз",
|
||||
"buy_provider_unavailable": "В даний час постачальник недоступний.",
|
||||
"address_from_ens": "Ця адреса від ${domain} на ENS"
|
||||
}
|
||||
"address_from_ens": "Ця адреса від ${domain} на ENS",
|
||||
"do_not_have_enough_gas_asset": "У вас недостатньо ${currency}, щоб здійснити трансакцію з поточними умовами мережі блокчейн. Вам потрібно більше ${currency}, щоб сплатити комісію мережі блокчейн, навіть якщо ви надсилаєте інший актив.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -685,5 +685,7 @@
|
|||
"default_buy_provider": "پہلے سے طے شدہ خریدنے والا",
|
||||
"ask_each_time": "ہر بار پوچھیں",
|
||||
"buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔",
|
||||
"address_from_ens": "یہ پتہ ENS پر ${domain} سے ہے"
|
||||
}
|
||||
"address_from_ens": "یہ پتہ ENS پر ${domain} سے ہے",
|
||||
"do_not_have_enough_gas_asset": "آپ کے پاس موجودہ بلاکچین نیٹ ورک کی شرائط کے ساتھ لین دین کرنے کے لیے کافی ${currency} نہیں ہے۔ آپ کو بلاکچین نیٹ ورک کی فیس ادا کرنے کے لیے مزید ${currency} کی ضرورت ہے، چاہے آپ کوئی مختلف اثاثہ بھیج رہے ہوں۔",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -687,5 +687,7 @@
|
|||
"default_buy_provider": "Aiyipada Ra Olupese",
|
||||
"ask_each_time": "Beere lọwọ kọọkan",
|
||||
"buy_provider_unavailable": "Olupese lọwọlọwọ ko si.",
|
||||
"address_from_ens": "Adirẹsi yii ni lati ${domain} Lori ens"
|
||||
}
|
||||
"address_from_ens": "Adirẹsi yii ni lati ${domain} Lori ens",
|
||||
"do_not_have_enough_gas_asset": "O ko ni to ${currency} lati ṣe idunadura kan pẹlu awọn ipo nẹtiwọki blockchain lọwọlọwọ. O nilo diẹ sii ${currency} lati san awọn owo nẹtiwọọki blockchain, paapaa ti o ba nfi dukia miiran ranṣẹ.",
|
||||
"totp_auth_url": "TOTP AUTH URL"
|
||||
}
|
||||
|
|
|
@ -692,5 +692,7 @@
|
|||
"default_buy_provider": "默认购买提供商",
|
||||
"ask_each_time": "每次问",
|
||||
"buy_provider_unavailable": "提供者目前不可用。",
|
||||
"address_from_ens": "此地址来自ENS上的${domain}"
|
||||
}
|
||||
"address_from_ens": "此地址来自ENS上的${domain}",
|
||||
"do_not_have_enough_gas_asset": "您没有足够的 ${currency} 来在当前的区块链网络条件下进行交易。即使您发送的是不同的资产,您也需要更多的 ${currency} 来支付区块链网络费用。",
|
||||
"totp_auth_url": "TOTP 授权 URL"
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
# if you get an error `command not found`
|
||||
# give the correct permissions to this file using `chmod 777 append_translation.sh`
|
||||
|
||||
langs=("ar" "bg" "cs" "de" "en" "es" "fr" "ha" "hi" "hr" "id" "it" "ja" "ko" "my" "nl" "pl" "pt" "ru" "th" "tr" "uk" "ur" "yo" "zh")
|
||||
langs=("ar" "bg" "cs" "de" "en" "es" "fr" "ha" "hi" "hr" "id" "it" "ja" "ko" "my" "nl" "pl" "pt" "ru" "th" "tl" "tr" "uk" "ur" "yo" "zh")
|
||||
|
||||
name=$1
|
||||
text=$2
|
||||
|
|
Loading…
Reference in a new issue