enhance UI for used addresses (#1337)

* enhance UI for used addresses

* Update electrum_wallet_addresses.dart

* fix tablet UI

---------

Co-authored-by: Serhii <borodenko.sv@gmail.com>
This commit is contained in:
Omar Hatem 2024-04-10 03:28:31 +02:00 committed by GitHub
parent f9679fecbe
commit 8a61ab7780
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
31 changed files with 72 additions and 31 deletions

View file

@ -241,6 +241,8 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
final index = _addresses.indexOf(addressRecord); final index = _addresses.indexOf(addressRecord);
_addresses.remove(addressRecord); _addresses.remove(addressRecord);
_addresses.insert(index, addressRecord); _addresses.insert(index, addressRecord);
updateAddressesByMatch();
} }
@action @action

View file

@ -1,5 +1,6 @@
import 'package:auto_size_text/auto_size_text.dart'; import 'package:auto_size_text/auto_size_text.dart';
import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/utils/responsive_layout_util.dart';
import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart'; import 'package:cake_wallet/view_model/wallet_address_list/wallet_address_list_item.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:flutter_slidable/flutter_slidable.dart';
@ -81,41 +82,45 @@ class AddressCell extends StatelessWidget {
child: Column( child: Column(
children: [ children: [
Row( Row(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: name.isNotEmpty ? MainAxisAlignment.spaceBetween : MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
if (isChange) Row(
Padding( children: [
padding: const EdgeInsets.only(right: 8.0), if (isChange)
child: Container( Padding(
height: 20, padding: const EdgeInsets.only(right: 8.0),
padding: EdgeInsets.all(4), child: Container(
decoration: BoxDecoration( height: 20,
borderRadius: BorderRadius.all(Radius.circular(8.5)), padding: EdgeInsets.all(4),
color: textColor), decoration: BoxDecoration(
alignment: Alignment.center, borderRadius: BorderRadius.all(Radius.circular(8.5)),
child: Text( color: textColor),
S.of(context).unspent_change, alignment: Alignment.center,
style: TextStyle( child: Text(
color: backgroundColor, S.of(context).unspent_change,
fontSize: 10, style: TextStyle(
fontWeight: FontWeight.w600, color: backgroundColor,
fontSize: 10,
fontWeight: FontWeight.w600,
),
),
), ),
), ),
), if (name.isNotEmpty)
), Text(
if (name.isNotEmpty) '$name',
Text( style: TextStyle(
'$name - ', fontSize: 14,
style: TextStyle( fontWeight: FontWeight.w600,
fontSize: 14, color: textColor,
fontWeight: FontWeight.w600, ),
color: textColor, ),
), ],
), ),
Flexible( Flexible(
child: AutoSizeText( child: AutoSizeText(
formattedAddress, responsiveLayoutUtil.shouldRenderTabletUI ? address : formattedAddress,
maxLines: 1, maxLines: 1,
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
style: TextStyle( style: TextStyle(

View file

@ -55,7 +55,9 @@ class PrivacyPage extends BasePage {
}), }),
if (_privacySettingsViewModel.isAutoGenerateSubaddressesVisible) if (_privacySettingsViewModel.isAutoGenerateSubaddressesVisible)
SettingsSwitcherCell( SettingsSwitcherCell(
title: S.current.auto_generate_subaddresses, title: _privacySettingsViewModel.isMoneroWallet
? S.current.auto_generate_subaddresses
: S.current.auto_generate_addresses,
value: _privacySettingsViewModel.isAutoGenerateSubaddressesEnabled, value: _privacySettingsViewModel.isAutoGenerateSubaddressesEnabled,
onValueChange: (BuildContext _, bool value) { onValueChange: (BuildContext _, bool value) {
_privacySettingsViewModel.setAutoGenerateSubaddresses(value); _privacySettingsViewModel.setAutoGenerateSubaddresses(value);

View file

@ -46,6 +46,10 @@ abstract class ResponsiveLayoutUtilBase with Store, WidgetsBindingObserver {
(orientation == Orientation.portrait && screenWidth < screenHeight) || (orientation == Orientation.portrait && screenWidth < screenHeight) ||
(orientation == Orientation.landscape && screenWidth < screenHeight); (orientation == Orientation.landscape && screenWidth < screenHeight);
} }
bool get shouldRenderTabletUI {
return screenWidth > _kMobileThreshold && screenWidth < kDesktopMaxDashBoardWidthConstraint;
}
} }
_ResponsiveLayoutUtil _singletonResponsiveLayoutUtil = _ResponsiveLayoutUtil(); _ResponsiveLayoutUtil _singletonResponsiveLayoutUtil = _ResponsiveLayoutUtil();

View file

@ -44,6 +44,8 @@ abstract class PrivacySettingsViewModelBase with Store {
_wallet.type == WalletType.litecoin || _wallet.type == WalletType.litecoin ||
_wallet.type == WalletType.bitcoinCash; _wallet.type == WalletType.bitcoinCash;
bool get isMoneroWallet => _wallet.type == WalletType.monero;
@computed @computed
bool get shouldSaveRecipientAddress => _settingsStore.shouldSaveRecipientAddress; bool get shouldSaveRecipientAddress => _settingsStore.shouldSaveRecipientAddress;

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN خطأ", "auth_store_incorrect_password": "PIN خطأ",
"authenticated": "تم المصادقة", "authenticated": "تم المصادقة",
"authentication": "المصادقة", "authentication": "المصادقة",
"auto_generate_addresses": "تلقائي توليد العناوين",
"auto_generate_subaddresses": "تلقائي توليد subddresses", "auto_generate_subaddresses": "تلقائي توليد subddresses",
"automatic": "تلقائي", "automatic": "تلقائي",
"available_balance": "الرصيد المتوفر", "available_balance": "الرصيد المتوفر",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Грешен PIN", "auth_store_incorrect_password": "Грешен PIN",
"authenticated": "Удостоверено", "authenticated": "Удостоверено",
"authentication": "Удостоверяване", "authentication": "Удостоверяване",
"auto_generate_addresses": "Автоматично генериране на адреси",
"auto_generate_subaddresses": "Автоматично генериране на подадреси", "auto_generate_subaddresses": "Автоматично генериране на подадреси",
"automatic": "Автоматично", "automatic": "Автоматично",
"available_balance": "Наличен баланс", "available_balance": "Наличен баланс",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Nesprávný PIN", "auth_store_incorrect_password": "Nesprávný PIN",
"authenticated": "Ověřeno", "authenticated": "Ověřeno",
"authentication": "Ověřování", "authentication": "Ověřování",
"auto_generate_addresses": "Automatické generování adres",
"auto_generate_subaddresses": "Automaticky generovat podadresy", "auto_generate_subaddresses": "Automaticky generovat podadresy",
"automatic": "Automatický", "automatic": "Automatický",
"available_balance": "Dostupný zůstatek", "available_balance": "Dostupný zůstatek",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Falsche PIN", "auth_store_incorrect_password": "Falsche PIN",
"authenticated": "Authentifiziert", "authenticated": "Authentifiziert",
"authentication": "Authentifizierung", "authentication": "Authentifizierung",
"auto_generate_addresses": "Automatisch generieren Adressen",
"auto_generate_subaddresses": "Unteradressen automatisch generieren", "auto_generate_subaddresses": "Unteradressen automatisch generieren",
"automatic": "Automatisch", "automatic": "Automatisch",
"available_balance": "Verfügbares Guthaben", "available_balance": "Verfügbares Guthaben",
@ -422,8 +423,8 @@
"placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt",
"please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist",
"please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.",
"please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
"Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
"please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
"please_select": "Bitte auswählen:", "please_select": "Bitte auswählen:",
"please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.",
"please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Wrong PIN", "auth_store_incorrect_password": "Wrong PIN",
"authenticated": "Authenticated", "authenticated": "Authenticated",
"authentication": "Authentication", "authentication": "Authentication",
"auto_generate_addresses": "Auto generate addresses",
"auto_generate_subaddresses": "Auto generate subaddresses", "auto_generate_subaddresses": "Auto generate subaddresses",
"automatic": "Automatic", "automatic": "Automatic",
"available_balance": "Available Balance", "available_balance": "Available Balance",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Contraseña PIN", "auth_store_incorrect_password": "Contraseña PIN",
"authenticated": "Autenticados", "authenticated": "Autenticados",
"authentication": "Autenticación", "authentication": "Autenticación",
"auto_generate_addresses": "Auto Generar direcciones",
"auto_generate_subaddresses": "Generar subdirecciones automáticamente", "auto_generate_subaddresses": "Generar subdirecciones automáticamente",
"automatic": "Automático", "automatic": "Automático",
"available_balance": "Balance disponible", "available_balance": "Balance disponible",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Mauvais code PIN", "auth_store_incorrect_password": "Mauvais code PIN",
"authenticated": "Authentifié", "authenticated": "Authentifié",
"authentication": "Authentification", "authentication": "Authentification",
"auto_generate_addresses": "Adresses de génération automatique",
"auto_generate_subaddresses": "Générer automatiquement des sous-adresses", "auto_generate_subaddresses": "Générer automatiquement des sous-adresses",
"automatic": "Automatique", "automatic": "Automatique",
"available_balance": "Solde Disponible", "available_balance": "Solde Disponible",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN na gaskiya", "auth_store_incorrect_password": "PIN na gaskiya",
"authenticated": "Ingantacce", "authenticated": "Ingantacce",
"authentication": "Tabbatarwa", "authentication": "Tabbatarwa",
"auto_generate_addresses": "Adireshin Auto",
"auto_generate_subaddresses": "Saɓaƙa subaddresses ta kai tsaye", "auto_generate_subaddresses": "Saɓaƙa subaddresses ta kai tsaye",
"automatic": "Na atomatik", "automatic": "Na atomatik",
"available_balance": "KUDI", "available_balance": "KUDI",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "गलत पिन", "auth_store_incorrect_password": "गलत पिन",
"authenticated": "प्रमाणीकृत", "authenticated": "प्रमाणीकृत",
"authentication": "प्रमाणीकरण", "authentication": "प्रमाणीकरण",
"auto_generate_addresses": "ऑटो उत्पन्न पते",
"auto_generate_subaddresses": "स्वचालित रूप से उप-पते उत्पन्न करें", "auto_generate_subaddresses": "स्वचालित रूप से उप-पते उत्पन्न करें",
"automatic": "स्वचालित", "automatic": "स्वचालित",
"available_balance": "उपलब्ध शेष राशि", "available_balance": "उपलब्ध शेष राशि",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Pogrešan PIN", "auth_store_incorrect_password": "Pogrešan PIN",
"authenticated": "Autentificiran", "authenticated": "Autentificiran",
"authentication": "Autentifikacija", "authentication": "Autentifikacija",
"auto_generate_addresses": "Automatsko generiranje adresa",
"auto_generate_subaddresses": "Automatski generirajte podadrese", "auto_generate_subaddresses": "Automatski generirajte podadrese",
"automatic": "Automatski", "automatic": "Automatski",
"available_balance": "Raspoloživ iznos", "available_balance": "Raspoloživ iznos",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN yang salah", "auth_store_incorrect_password": "PIN yang salah",
"authenticated": "Terotentikasi", "authenticated": "Terotentikasi",
"authentication": "Otentikasi", "authentication": "Otentikasi",
"auto_generate_addresses": "Auto menghasilkan alamat",
"auto_generate_subaddresses": "Menghasilkan subalamat secara otomatis", "auto_generate_subaddresses": "Menghasilkan subalamat secara otomatis",
"automatic": "Otomatis", "automatic": "Otomatis",
"available_balance": "Saldo Tersedia", "available_balance": "Saldo Tersedia",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN non corretto", "auth_store_incorrect_password": "PIN non corretto",
"authenticated": "Autenticato", "authenticated": "Autenticato",
"authentication": "Autenticazione", "authentication": "Autenticazione",
"auto_generate_addresses": "Auto Genera indirizzi",
"auto_generate_subaddresses": "Genera automaticamente sottindirizzi", "auto_generate_subaddresses": "Genera automaticamente sottindirizzi",
"automatic": "Automatico", "automatic": "Automatico",
"available_balance": "Saldo Disponibile", "available_balance": "Saldo Disponibile",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "間違ったPIN", "auth_store_incorrect_password": "間違ったPIN",
"authenticated": "認証済み", "authenticated": "認証済み",
"authentication": "認証", "authentication": "認証",
"auto_generate_addresses": "Autoはアドレスを生成します",
"auto_generate_subaddresses": "Autoはサブアドレスを生成します", "auto_generate_subaddresses": "Autoはサブアドレスを生成します",
"automatic": "自動", "automatic": "自動",
"available_balance": "利用可能残高", "available_balance": "利用可能残高",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "잘못된 PIN", "auth_store_incorrect_password": "잘못된 PIN",
"authenticated": "인증", "authenticated": "인증",
"authentication": "입증", "authentication": "입증",
"auto_generate_addresses": "자동 생성 주소",
"auto_generate_subaddresses": "자동 생성 서브 아드 드레스", "auto_generate_subaddresses": "자동 생성 서브 아드 드레스",
"automatic": "자동적 인", "automatic": "자동적 인",
"available_balance": "사용 가능한 잔액", "available_balance": "사용 가능한 잔액",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "ပင်နံပါတ် မှားနေသည်။", "auth_store_incorrect_password": "ပင်နံပါတ် မှားနေသည်။",
"authenticated": "အစစ်အမှန်", "authenticated": "အစစ်အမှန်",
"authentication": "စစ်ဆေးခြင်း", "authentication": "စစ်ဆေးခြင်း",
"auto_generate_addresses": "Auto Generate လိပ်စာများ",
"auto_generate_subaddresses": "အော်တို Generate Subaddresses", "auto_generate_subaddresses": "အော်တို Generate Subaddresses",
"automatic": "အလိုအလျောက်", "automatic": "အလိုအလျောက်",
"available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", "available_balance": "လက်ကျန်ငွေ ရရှိနိုင်",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Incorrect PIN", "auth_store_incorrect_password": "Incorrect PIN",
"authenticated": "Authenticated", "authenticated": "Authenticated",
"authentication": "Authenticatie", "authentication": "Authenticatie",
"auto_generate_addresses": "Auto -genereer adressen",
"auto_generate_subaddresses": "Automatisch subadressen genereren", "auto_generate_subaddresses": "Automatisch subadressen genereren",
"automatic": "automatisch", "automatic": "automatisch",
"available_balance": "Beschikbaar saldo", "available_balance": "Beschikbaar saldo",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Niepoprawny PIN", "auth_store_incorrect_password": "Niepoprawny PIN",
"authenticated": "Uwierzytelniony", "authenticated": "Uwierzytelniony",
"authentication": "Uwierzytelnianie", "authentication": "Uwierzytelnianie",
"auto_generate_addresses": "Auto generują adresy",
"auto_generate_subaddresses": "Automatycznie generuj podadresy", "auto_generate_subaddresses": "Automatycznie generuj podadresy",
"automatic": "Automatyczny", "automatic": "Automatyczny",
"available_balance": "Dostępne środki", "available_balance": "Dostępne środki",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN incorreto", "auth_store_incorrect_password": "PIN incorreto",
"authenticated": "Autenticado", "authenticated": "Autenticado",
"authentication": "Autenticação", "authentication": "Autenticação",
"auto_generate_addresses": "Endereços gerados automaticamente",
"auto_generate_subaddresses": "Gerar subendereços automaticamente", "auto_generate_subaddresses": "Gerar subendereços automaticamente",
"automatic": "Automático", "automatic": "Automático",
"available_balance": "Saldo disponível", "available_balance": "Saldo disponível",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Некорректный PIN", "auth_store_incorrect_password": "Некорректный PIN",
"authenticated": "Аутентифицировано", "authenticated": "Аутентифицировано",
"authentication": "Аутентификация", "authentication": "Аутентификация",
"auto_generate_addresses": "Авто генерируйте адреса",
"auto_generate_subaddresses": "Авто генерируйте Subaddresses", "auto_generate_subaddresses": "Авто генерируйте Subaddresses",
"automatic": "автоматический", "automatic": "автоматический",
"available_balance": "Доступный баланс", "available_balance": "Доступный баланс",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "รหัสผ่านไม่ถูกต้อง", "auth_store_incorrect_password": "รหัสผ่านไม่ถูกต้อง",
"authenticated": "ได้รับการยืนยันสิทธิ์", "authenticated": "ได้รับการยืนยันสิทธิ์",
"authentication": "การยืนยันสิทธิ์", "authentication": "การยืนยันสิทธิ์",
"auto_generate_addresses": "สร้างที่อยู่อัตโนมัติ",
"auto_generate_subaddresses": "Auto สร้าง subaddresses", "auto_generate_subaddresses": "Auto สร้าง subaddresses",
"automatic": "อัตโนมัติ", "automatic": "อัตโนมัติ",
"available_balance": "ยอดคงเหลือที่ใช้งานได้", "available_balance": "ยอดคงเหลือที่ใช้งานได้",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Maling pin", "auth_store_incorrect_password": "Maling pin",
"authenticated": "Napatunayan", "authenticated": "Napatunayan",
"authentication": "Pagpapatunay", "authentication": "Pagpapatunay",
"auto_generate_addresses": "Auto bumuo ng mga address",
"auto_generate_subaddresses": "Ang Auto ay bumubuo ng mga subaddresses", "auto_generate_subaddresses": "Ang Auto ay bumubuo ng mga subaddresses",
"automatic": "Awtomatiko", "automatic": "Awtomatiko",
"available_balance": "Magagamit na balanse", "available_balance": "Magagamit na balanse",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Hatalı PIN", "auth_store_incorrect_password": "Hatalı PIN",
"authenticated": "Doğrulandı", "authenticated": "Doğrulandı",
"authentication": "Doğrulama", "authentication": "Doğrulama",
"auto_generate_addresses": "Otomatik Adres Oluşturma",
"auto_generate_subaddresses": "Alt adresleri otomatik olarak oluştur", "auto_generate_subaddresses": "Alt adresleri otomatik olarak oluştur",
"automatic": "Otomatik", "automatic": "Otomatik",
"available_balance": "Kullanılabilir Bakiye", "available_balance": "Kullanılabilir Bakiye",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Некоректний PIN", "auth_store_incorrect_password": "Некоректний PIN",
"authenticated": "Аутентифіковано", "authenticated": "Аутентифіковано",
"authentication": "Аутентифікація", "authentication": "Аутентифікація",
"auto_generate_addresses": "Авто генерувати адреси",
"auto_generate_subaddresses": "Автоматично генерувати підадреси", "auto_generate_subaddresses": "Автоматично генерувати підадреси",
"automatic": "Автоматичний", "automatic": "Автоматичний",
"available_balance": "Доступний баланс", "available_balance": "Доступний баланс",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "غلط PIN", "auth_store_incorrect_password": "غلط PIN",
"authenticated": "تصدیق شدہ", "authenticated": "تصدیق شدہ",
"authentication": "تصدیق", "authentication": "تصدیق",
"auto_generate_addresses": "آٹو پیدا کرنے والے پتے",
"auto_generate_subaddresses": "آٹو سب ایڈریس تیار کرتا ہے", "auto_generate_subaddresses": "آٹو سب ایڈریس تیار کرتا ہے",
"automatic": "خودکار", "automatic": "خودکار",
"available_balance": "دستیاب بیلنس", "available_balance": "دستیاب بیلنس",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "Òǹkà ìdánimọ̀ àdáni kọ́ ni èyí", "auth_store_incorrect_password": "Òǹkà ìdánimọ̀ àdáni kọ́ ni èyí",
"authenticated": "A ti jẹ́rìísí yín", "authenticated": "A ti jẹ́rìísí yín",
"authentication": "Ìfẹ̀rílàdí", "authentication": "Ìfẹ̀rílàdí",
"auto_generate_addresses": "Awọn adirẹsi ṣe agbekalẹ awọn adirẹsi",
"auto_generate_subaddresses": "Aṣiṣe Ibi-Afọwọkọ", "auto_generate_subaddresses": "Aṣiṣe Ibi-Afọwọkọ",
"automatic": "Ó máa ń ṣàdédé", "automatic": "Ó máa ń ṣàdédé",
"available_balance": "Ìyókù owó tó wà níbẹ̀", "available_balance": "Ìyókù owó tó wà níbẹ̀",

View file

@ -59,6 +59,7 @@
"auth_store_incorrect_password": "PIN码错误", "auth_store_incorrect_password": "PIN码错误",
"authenticated": "已认证", "authenticated": "已认证",
"authentication": "认证方式", "authentication": "认证方式",
"auto_generate_addresses": "自动生成地址",
"auto_generate_subaddresses": "自动生成子辅助", "auto_generate_subaddresses": "自动生成子辅助",
"automatic": "自动的", "automatic": "自动的",
"available_balance": "可用余额", "available_balance": "可用余额",