diff --git a/cw_bitcoin/lib/electrum_transaction_info.dart b/cw_bitcoin/lib/electrum_transaction_info.dart index e8ed955fb..f42e7c8bf 100644 --- a/cw_bitcoin/lib/electrum_transaction_info.dart +++ b/cw_bitcoin/lib/electrum_transaction_info.dart @@ -237,4 +237,7 @@ class ElectrumTransactionInfo extends TransactionInfo { } @override String? unlockTimeFormatted() => null; + + @override + bool get isLocked => false; } diff --git a/cw_core/lib/transaction_info.dart b/cw_core/lib/transaction_info.dart index f1900ee49..ef3be8404 100644 --- a/cw_core/lib/transaction_info.dart +++ b/cw_core/lib/transaction_info.dart @@ -16,6 +16,7 @@ abstract class TransactionInfo extends Object with Keyable { String? feeFormatted(); void changeFiatAmount(String amount); String? unlockTimeFormatted(); + bool get isLocked; @override dynamic get keyIndex => id; diff --git a/cw_haven/lib/api/structs/transaction_info_row.dart b/cw_haven/lib/api/structs/transaction_info_row.dart index 177cdfde7..913632d8e 100644 --- a/cw_haven/lib/api/structs/transaction_info_row.dart +++ b/cw_haven/lib/api/structs/transaction_info_row.dart @@ -14,6 +14,9 @@ class TransactionInfoRow extends Struct { @Uint64() external int confirmations; + @Uint64() + external int unlockTime; + @Uint32() external int subaddrAccount; @@ -41,4 +44,5 @@ class TransactionInfoRow extends Struct { String getHash() => hash.toDartString(); String getPaymentId() => paymentId.toDartString(); String getAssetType() => assetType.toDartString(); + int getUnlockTime() => unlockTime * 2; } diff --git a/cw_haven/lib/haven_transaction_info.dart b/cw_haven/lib/haven_transaction_info.dart index 870319b37..44767acd7 100644 --- a/cw_haven/lib/haven_transaction_info.dart +++ b/cw_haven/lib/haven_transaction_info.dart @@ -8,7 +8,7 @@ import 'package:cw_haven/api/transaction_history.dart'; class HavenTransactionInfo extends TransactionInfo { HavenTransactionInfo(this.id, this.height, this.direction, this.date, - this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee); + this.isPending, this.amount, this.accountIndex, this.addressIndex, this.fee, this.unlockTime); HavenTransactionInfo.fromRow(TransactionInfoRow row) : id = row.getHash(), @@ -19,6 +19,7 @@ class HavenTransactionInfo extends TransactionInfo { amount = row.getAmount(), accountIndex = row.subaddrAccount, addressIndex = row.subaddrIndex, + unlockTime = row.getUnlockTime(), key = null, //getTxKey(row.getHash()), fee = row.fee, assetType = row.getAssetType(); @@ -34,6 +35,7 @@ class HavenTransactionInfo extends TransactionInfo { final int addressIndex; late String recipientAddress; late String assetType; + final int unlockTime; String? _fiatAmount; String? key; @@ -52,5 +54,17 @@ class HavenTransactionInfo extends TransactionInfo { '${formatAmount(moneroAmountToString(amount: fee))} $assetType'; @override - String? unlockTimeFormatted() => null; + String? unlockTimeFormatted() { + if (direction == TransactionDirection.outgoing || unlockTime == 0) { + return null; + } + + if (unlockTime > 500000) { + return '>1 year'; + } + return '~ $unlockTime minutes'; + } + + @override + bool get isLocked => direction == TransactionDirection.incoming && unlockTime > 0; } diff --git a/cw_monero/lib/monero_transaction_info.dart b/cw_monero/lib/monero_transaction_info.dart index 359c3d9b5..12daf9f1a 100644 --- a/cw_monero/lib/monero_transaction_info.dart +++ b/cw_monero/lib/monero_transaction_info.dart @@ -22,12 +22,12 @@ class MoneroTransactionInfo extends TransactionInfo { unlockTime = row.getUnlockTime(), key = getTxKey(row.getHash()), fee = row.fee { - additionalInfo = { - 'key': key, - 'accountIndex': accountIndex, - 'addressIndex': addressIndex - }; - } + additionalInfo = { + 'key': key, + 'accountIndex': accountIndex, + 'addressIndex': addressIndex + }; + } final String id; final int height; @@ -68,4 +68,7 @@ class MoneroTransactionInfo extends TransactionInfo { } return '~ $unlockTime minutes'; } + + @override + bool get isLocked => direction == TransactionDirection.incoming && unlockTime > 0; } diff --git a/lib/src/screens/dashboard/widgets/transaction_raw.dart b/lib/src/screens/dashboard/widgets/transaction_raw.dart index 9e6e89c61..0009b2195 100644 --- a/lib/src/screens/dashboard/widgets/transaction_raw.dart +++ b/lib/src/screens/dashboard/widgets/transaction_raw.dart @@ -1,22 +1,21 @@ import 'package:flutter/material.dart'; import 'package:cw_core/transaction_direction.dart'; -import 'package:cake_wallet/generated/i18n.dart'; class TransactionRow extends StatelessWidget { TransactionRow( - {required this.direction, + {required this.icon, required this.formattedDate, required this.formattedAmount, required this.formattedFiatAmount, - required this.isPending, + required this.title, required this.onTap}); final VoidCallback onTap; - final TransactionDirection direction; + final String icon; final String formattedDate; final String formattedAmount; final String formattedFiatAmount; - final bool isPending; + final String title; @override Widget build(BuildContext context) { @@ -36,8 +35,7 @@ class TransactionRow extends StatelessWidget { shape: BoxShape.circle, color: Theme.of(context).textTheme!.overline!.decorationColor! ), - child: Image.asset( - direction.iconPath ?? ''), + child: Image.asset(icon), ), SizedBox(width: 12), Expanded( @@ -47,11 +45,7 @@ class TransactionRow extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text( - (direction == TransactionDirection.incoming - ? S.of(context).received - : S.of(context).sent) + - (isPending ? S.of(context).pending : ''), + Text(title, style: TextStyle( fontSize: 16, fontWeight: FontWeight.w500, diff --git a/lib/src/screens/dashboard/widgets/transactions_page.dart b/lib/src/screens/dashboard/widgets/transactions_page.dart index 64f02c73c..0db2e7524 100644 --- a/lib/src/screens/dashboard/widgets/transactions_page.dart +++ b/lib/src/screens/dashboard/widgets/transactions_page.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/src/screens/dashboard/widgets/order_row.dart'; import 'package:cake_wallet/view_model/dashboard/order_list_item.dart'; +import 'package:cw_core/transaction_direction.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -50,17 +51,23 @@ class TransactionsPage extends StatelessWidget { return Observer( builder: (_) => TransactionRow( - onTap: () => Navigator.of(context).pushNamed( - Routes.transactionDetails, - arguments: transaction), - direction: transaction.direction, - formattedDate: DateFormat('HH:mm') - .format(transaction.date), - formattedAmount: item.formattedCryptoAmount, - formattedFiatAmount: - dashboardViewModel.balanceViewModel.isFiatDisabled - ? '' : item.formattedFiatAmount, - isPending: transaction.isPending)); + onTap: () => Navigator.of(context) + .pushNamed(Routes.transactionDetails, arguments: transaction), + icon: transaction.direction.iconPath ?? '', + formattedDate: DateFormat('HH:mm').format(transaction.date), + formattedAmount: item.formattedCryptoAmount, + formattedFiatAmount: + dashboardViewModel.balanceViewModel.isFiatDisabled + ? '' + : item.formattedFiatAmount, + title: (transaction.direction == TransactionDirection.incoming + ? S.of(context).received + : S.of(context).sent) + + (transaction.isLocked + ? ' ' + S.of(context).locked + : (transaction.isPending + ? S.of(context).pending + : '')))); } if (item is TradeListItem) { diff --git a/lib/view_model/transactions/transaction_details_view_model.dart b/lib/view_model/transactions/transaction_details_view_model.dart index 5328ea295..acc1455b2 100644 --- a/lib/view_model/transactions/transaction_details_view_model.dart +++ b/lib/view_model/transactions/transaction_details_view_model.dart @@ -42,7 +42,7 @@ abstract class TransactionDetailsViewModelBase with Store { final _items = [ if (unlockTimeFormatted != null) StandartListItem( - title: 'Unlock time', value: unlockTimeFormatted), + title: S.current.unlock_time, value: unlockTimeFormatted), StandartListItem( title: S.current.transaction_details_transaction_id, value: tx.id), StandartListItem( @@ -116,7 +116,11 @@ abstract class TransactionDetailsViewModelBase with Store { } if (wallet.type == WalletType.haven) { + final unlockTimeFormatted = tx.unlockTimeFormatted(); items.addAll([ + if (unlockTimeFormatted != null) + StandartListItem( + title: S.current.unlock_time, value: unlockTimeFormatted), StandartListItem( title: S.current.transaction_details_transaction_id, value: tx.id), StandartListItem( diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 8222467bd..724cf5b6d 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -682,5 +682,7 @@ "send_to_this_address" : "أرسل ${currency} ${tag}إلى هذا العنوان", "arrive_in_this_address" : "سيصل ${currency} ${tag}إلى هذا العنوان", "do_not_send": "لا ترسل", - "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق." + "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق.", + "unlock_time": "فتح الوقت", + "locked": "(مقفل)" } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 6483305a4..009ebb1ce 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Senden Sie ${currency} ${tag}an diese Adresse", "arrive_in_this_address" : "${currency} ${tag}wird an dieser Adresse ankommen", "do_not_send": "Nicht senden", - "error_dialog_content": "Hoppla, wir haben einen Fehler.\n\nBitte senden Sie den Absturzbericht an unser Support-Team, um die Anwendung zu verbessern." + "error_dialog_content": "Hoppla, wir haben einen Fehler.\n\nBitte senden Sie den Absturzbericht an unser Support-Team, um die Anwendung zu verbessern.", + "unlock_time": "Zeit entsperren", + "locked": "(gesperrt)" } diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 655350304..b7e40fe5d 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Send ${currency} ${tag}to this address", "arrive_in_this_address" : "${currency} ${tag}will arrive in this address", "do_not_send": "Don't send", - "error_dialog_content": "Oops, we got some error.\n\nPlease send the crash report to our support team to make the application better." + "error_dialog_content": "Oops, we got some error.\n\nPlease send the crash report to our support team to make the application better.", + "unlock_time": "Unlock time", + "locked": "(locked)" } diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 51d4bb0e3..7403b2726 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Enviar ${currency} ${tag}a esta dirección", "arrive_in_this_address" : "${currency} ${tag}llegará a esta dirección", "do_not_send": "no enviar", - "error_dialog_content": "Vaya, tenemos un error.\n\nEnvíe el informe de bloqueo a nuestro equipo de soporte para mejorar la aplicación." + "error_dialog_content": "Vaya, tenemos un error.\n\nEnvíe el informe de bloqueo a nuestro equipo de soporte para mejorar la aplicación.", + "unlock_time": "Tiempo de desbloqueo", + "locked": "(bloqueado)" } diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 5e412d4f1..d30c816ee 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -682,5 +682,7 @@ "send_to_this_address" : "Envoyez ${currency} ${tag}à cette adresse", "arrive_in_this_address" : "${currency} ${tag}arrivera à cette adresse", "do_not_send": "N'envoyez pas", - "error_dialog_content": "Oups, nous avons eu une erreur.\n\nVeuillez envoyer le rapport de plantage à notre équipe d'assistance pour améliorer l'application." + "error_dialog_content": "Oups, nous avons eu une erreur.\n\nVeuillez envoyer le rapport de plantage à notre équipe d'assistance pour améliorer l'application.", + "unlock_time": "Temps de déverrouillage", + "locked": "(fermé à clé)" } diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 1a3ddff74..7c3389727 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "इस पते पर ${currency} ${tag}भेजें", "arrive_in_this_address" : "${currency} ${tag}इस पते पर पहुंचेंगे", "do_not_send": "मत भेजो", - "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।" + "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।", + "unlock_time": "अनलॉक समय", + "locked": "(बंद)" } diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index c012ca72d..fcb449513 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Pošaljite ${currency} ${tag}na ovu adresu", "arrive_in_this_address" : "${currency} ${tag}će stići na ovu adresu", "do_not_send": "Ne šalji", - "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju." + "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju.", + "unlock_time": "Vrijeme otključavanja", + "locked": "(zaključan)" } diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 4048e0866..db32dd65c 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Invia ${currency} ${tag}a questo indirizzo", "arrive_in_this_address" : "${currency} ${tag}arriverà a questo indirizzo", "do_not_send": "Non inviare", - "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju." + "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju.", + "unlock_time": "Tempo di sblocco", + "locked": "(bloccato)" } diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 831056785..bc386586d 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "${currency} ${tag}をこのアドレスに送金", "arrive_in_this_address" : "${currency} ${tag}はこの住所に到着します", "do_not_send": "送信しない", - "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione." + "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione.", + "unlock_time": "ロック解除時間", + "locked": "(ロックされた)" } diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 2c2d564ae..748118601 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "이 주소로 ${currency} ${tag}송금", "arrive_in_this_address" : "${currency} ${tag}이(가) 이 주소로 도착합니다", "do_not_send": "보내지 마세요", - "error_dialog_content": "죄송합니다. 오류가 발생했습니다.\n\n응용 프로그램을 개선하려면 지원 팀에 충돌 보고서를 보내주십시오." + "error_dialog_content": "죄송합니다. 오류가 발생했습니다.\n\n응용 프로그램을 개선하려면 지원 팀에 충돌 보고서를 보내주십시오.", + "unlock_time": "잠금 해제 시간", + "locked": "(잠긴)" } diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 401f5af3a..5f89781b9 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "ဤလိပ်စာသို့ ${currency} ${tag}သို့ ပို့ပါ။", "arrive_in_this_address" : "${currency} ${tag}ဤလိပ်စာသို့ ရောက်ရှိပါမည်။", "do_not_send": "မပို့ပါနှင့်", - "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။" + "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။", + "unlock_time": "လော့ခ်ဖွင့်ချိန်", + "locked": "(သော့ခတ်ထားသည်။)" } diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a3a043b75..2ba996999 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Stuur ${currency} ${tag}naar dit adres", "arrive_in_this_address" : "${currency} ${tag}komt aan op dit adres", "do_not_send": "Niet sturen", - "error_dialog_content": "Oeps, er is een fout opgetreden.\n\nStuur het crashrapport naar ons ondersteuningsteam om de applicatie te verbeteren." + "error_dialog_content": "Oeps, er is een fout opgetreden.\n\nStuur het crashrapport naar ons ondersteuningsteam om de applicatie te verbeteren.", + "unlock_time": "Ontgrendel de tijd", + "locked": "(op slot)" } diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 3c9b60eaa..515f4ec0a 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Wyślij ${currency} ${tag}na ten adres", "arrive_in_this_address" : "${currency} ${tag}dotrze na ten adres", "do_not_send": "Nie wysyłaj", - "error_dialog_content": "Ups, wystąpił błąd.\n\nPrześlij raport o awarii do naszego zespołu wsparcia, aby ulepszyć aplikację." + "error_dialog_content": "Ups, wystąpił błąd.\n\nPrześlij raport o awarii do naszego zespołu wsparcia, aby ulepszyć aplikację.", + "unlock_time": "Czas odblokowania", + "locked": "(zablokowany)" } diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 39cef5f67..da23022a8 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -683,5 +683,7 @@ "send_to_this_address" : "Envie ${currency} ${tag}para este endereço", "arrive_in_this_address" : "${currency} ${tag}chegará neste endereço", "do_not_send": "não envie", - "error_dialog_content": "Ops, houve algum erro.\n\nPor favor, envie o relatório de falha para nossa equipe de suporte para melhorar o aplicativo." + "error_dialog_content": "Ops, houve algum erro.\n\nPor favor, envie o relatório de falha para nossa equipe de suporte para melhorar o aplicativo.", + "unlock_time": "Tempo de desbloqueio", + "locked": "(bloqueado)" } diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 50c183f1b..a61fbb4a3 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Отправить ${currency} ${tag}на этот адрес", "arrive_in_this_address" : "${currency} ${tag}придет на этот адрес", "do_not_send": "Не отправлять", - "error_dialog_content": "Ой, у нас какая-то ошибка.\n\nПожалуйста, отправьте отчет о сбое в нашу службу поддержки, чтобы сделать приложение лучше." + "error_dialog_content": "Ой, у нас какая-то ошибка.\n\nПожалуйста, отправьте отчет о сбое в нашу службу поддержки, чтобы сделать приложение лучше.", + "unlock_time": "Время разблокирования", + "locked": "(заблокировано)" } diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 2ecf1bf75..bcc8428c8 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -682,5 +682,7 @@ "send_to_this_address" : "ส่ง ${currency} ${tag}ไปยังที่อยู่นี้", "arrive_in_this_address" : "${currency} ${tag}จะมาถึงที่อยู่นี้", "do_not_send": "อย่าส่ง", - "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น" + "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น", + "unlock_time": "ปลดล็อกเวลา", + "locked": "(ล็อค)" } diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 08dec0649..2050f1c3d 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -684,5 +684,7 @@ "send_to_this_address" : "Bu adrese ${currency} ${tag}gönder", "arrive_in_this_address" : "${currency} ${tag}bu adrese ulaşacak", "do_not_send": "Gönderme", - "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin." + "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin.", + "unlock_time": "Kilit açma zamanı", + "locked": "(kilitli)" } diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 19cf7946d..a84b1a068 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -683,5 +683,7 @@ "send_to_this_address" : "Надіслати ${currency} ${tag}на цю адресу", "arrive_in_this_address" : "${currency} ${tag}надійде на цю адресу", "do_not_send": "Не надсилайте", - "error_dialog_content": "На жаль, ми отримали помилку.\n\nБудь ласка, надішліть звіт про збій нашій команді підтримки, щоб покращити додаток." + "error_dialog_content": "На жаль, ми отримали помилку.\n\nБудь ласка, надішліть звіт про збій нашій команді підтримки, щоб покращити додаток.", + "unlock_time": "Час розблокування", + "locked": "(заблоковано)" } diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 52fc9cd7a..a24b5e1fd 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -682,5 +682,7 @@ "send_to_this_address" : "发送 ${currency} ${tag}到这个地址", "arrive_in_this_address" : "${currency} ${tag}将到达此地址", "do_not_send": "不要发送", - "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。" + "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。", + "unlock_time": "解锁时间", + "locked": "(锁定)" }