From f93561c0491572e678c1d3de05d7d0c7e435dfa4 Mon Sep 17 00:00:00 2001 From: Zy143L Date: Sat, 17 Apr 2021 04:27:39 +0800 Subject: [PATCH 01/28] Simplified Chinese Fix translation Add simplified Chinese --- res/values/strings_zh-CN.arb | 473 +++++++++++++++++++++++++++++++++++ 1 file changed, 473 insertions(+) create mode 100644 res/values/strings_zh-CN.arb diff --git a/res/values/strings_zh-CN.arb b/res/values/strings_zh-CN.arb new file mode 100644 index 000000000..128a18df1 --- /dev/null +++ b/res/values/strings_zh-CN.arb @@ -0,0 +1,473 @@ +{ + "welcome" : "欢迎使用", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "很棒的门罗币和比特币钱包", + "please_make_selection" : "请在下面进行选择 创建或恢复您的钱包.", + "create_new" : "创建新钱包", + "restore_wallet" : "恢复钱包", + + + "accounts" : "账户", + "edit" : "编辑", + "account" : "帐户", + "add" : "添加", + + + "address_book" : "地址簿", + "contact" : "联系", + "please_select" : "请选择:", + "cancel" : "取消", + "ok" : "确认", + "contact_name" : "联系人姓名", + "reset" : "重启", + "save" : "保存", + "address_remove_contact" : "刪除联系人", + "address_remove_content" : "您确定要刪除所选的联系人吗?", + + + "authenticated" : "已认证", + "authentication" : "认证方式", + "failed_authentication" : "身份验证失败. ${state_error}", + + + "wallet_menu" : "钱包菜单", + "Blocks_remaining" : "${status} 剩余的块", + "please_try_to_connect_to_another_node" : "请尝试连接到其他节点", + "xmr_hidden" : "隐藏", + "xmr_available_balance" : "可用余额 ", + "xmr_full_balance" : "全部余额", + "send" : "发送", + "receive" : "接收", + "transactions" : "交易情况", + "incoming" : "收到", + "outgoing" : "发送", + "transactions_by_date" : "按日期交易", + "trades" : "交易", + "filters" : "过滤", + "today" : "今天", + "yesterday" : "昨天", + "received" : "已收到", + "sent" : "已发送", + "pending" : " (待定)", + "rescan" : "重新扫描", + "reconnect" : "重新连接", + "wallets" : "钱包", + "show_seed" : "显示种子", + "show_keys" : "显示种子/密钥", + "address_book_menu" : "地址簿", + "reconnection" : "重新连接", + "reconnect_alert_text" : "您确定要重新连接吗?", + + + "exchange" : "兑换", + "clear" : "清空", + "refund_address" : "退款地址", + "change_exchange_provider" : "更改交易所", + "you_will_send" : "转换自", + "you_will_get" : "转换到", + "amount_is_guaranteed" : "保证收到的金额", + "amount_is_estimate" : "收款金额为估算值", + "powered_by" : "Powered by ${title}", + "error" : "错误", + "estimated" : "估计值", + "min_value" : "最低: ${value} ${currency}", + "max_value" : "最高: ${value} ${currency}", + "change_currency" : "更改币种", + + + "copy_id" : "复制ID", + "exchange_result_write_down_trade_id" : "请复制或写下交易编号以继续.", + "trade_id" : "交易编号:", + "copied_to_clipboard" : "复制到剪贴板", + "saved_the_trade_id" : "我已经保存了交易编号", + "fetching" : "正在获取", + "id" : "ID: ", + "amount" : "金额: ", + "payment_id" : "付款 ID: ", + "status" : "状态: ", + "offer_expires_in" : "优惠有效期至 ", + "trade_is_powered_by" : "该交易由 ${provider}", + "copy_address" : "复制地址", + "exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到下面显示的地址。 或者您可以从外部钱包发送到以下地址/ QR码。\n\n请按确认继续或返回以更改金额", + "exchange_result_description" : "您必須至少发送 ${fetchingLabel} ${from} 到下一页上显示的地址。 如果您发送的金额少于 ${fetchingLabel} ${from},则可能无法转换,因此无法退还。", + "exchange_result_write_down_ID" : "*请复制或写下您上面显示的ID.", + "confirm" : "确认", + "confirm_sending" : "确认发送", + "commit_transaction_amount_fee" : "提交交易\n金额: ${amount}\n手续费: ${fee}", + "sending" : "正在发送", + "transaction_sent" : "交易已发送", + "expired" : "已过期", + "time" : "${minutes}m ${seconds}s", + "send_xmr" : "发送 XMR", + "exchange_new_template" : "新模板", + + "faq" : "FAQ", + + + "enter_your_pin" : "输入密码", + "loading_your_wallet" : "加载您的钱包", + + + "new_wallet" : "新钱包", + "wallet_name" : "钱包名称", + "continue_text" : "继续", + "choose_wallet_currency" : "请选择钱包货币:", + + + "node_new" : "新节点", + "node_address" : "节点地址", + "node_port" : "节点端口", + "login" : "登录", + "password" : "密码", + "nodes" : "节点", + "node_reset_settings_title" : "重新设置", + "nodes_list_reset_to_default_message" : "您确定要将设置重设为默认值吗?", + "change_current_node" : "您确定将当前节点更改为 ${node}?", + "change" : "更改", + "remove_node" : "删除节点", + "remove_node_message" : "您确定要删除所选节点吗?", + "remove" : "去掉", + "delete" : "删除", + "add_new_node" : "添加新节点", + "change_current_node_title" : "更改当前节点", + "node_test" : "测试", + "node_connection_successful" : "连接成功", + "node_connection_failed" : "连接失敗", + "new_node_testing" : "新节点测试", + + + "use" : "使用 ", + "digit_pin" : "位 PIN", + + + "share_address" : "分享地址", + "receive_amount" : "金额", + "subaddresses" : "子地址", + "addresses" : "地址", + "scan_qr_code" : "扫描二维码获取地址", + "rename" : "重命名", + "choose_account" : "选择账户", + "create_new_account" : "建立新账户", + "accounts_subaddresses" : "账户和子地址", + + + "restore_restore_wallet" : "恢复钱包", + "restore_title_from_seed_keys" : "从种子/密钥还原", + "restore_description_from_seed_keys" : "从保存到安全地方的种子/钥匙取回钱包", + "restore_next" : "下一个", + "restore_title_from_backup" : "从备份文件还原", + "restore_description_from_backup" : "您可以从还原整个Cake Wallet应用您的备份文件", + "restore_seed_keys_restore" : "种子/密钥还原", + "restore_title_from_seed" : "从种子还原", + "restore_description_from_seed" : "从25个字中恢复您的钱包或13个字的组合码", + "restore_title_from_keys" : "从密钥还原", + "restore_description_from_keys" : "使用私钥恢复钱包", + "restore_wallet_name" : "钱包名称", + "restore_address" : "地址", + "restore_view_key_private" : "View私钥", + "restore_spend_key_private" : "Spend私钥", + "restore_recover" : "恢复", + "restore_wallet_restore_description" : "钱包还原说明", + "restore_new_seed" : "新种子", + "restore_active_seed" : "活性種子", + "restore_bitcoin_description_from_seed" : "从12个文字的组成码恢复您的钱包", + "restore_bitcoin_description_from_keys" : "从私钥中生成的WIF字符串恢复您钱包", + "restore_bitcoin_title_from_keys" : "从WIF还原", + "restore_from_date_or_blockheight" : "请输入您创建这个钱包前几天的日期。或者如果您知道区块高度,请输入区块高度", + + + "seed_reminder" : "请记下这些内容,以防丟失或数据清除", + "seed_title" : "种子", + "seed_share" : "分享种子", + "copy" : "复制", + + + "seed_language_choose" : "请选择种子语言:", + "seed_choose" : "选择种子语言", + "seed_language_next" : "下一个", + "seed_language_english" : "英语", + "seed_language_chinese" : "中文", + "seed_language_dutch" : "荷兰语", + "seed_language_german" : "德语", + "seed_language_japanese" : "日语", + "seed_language_portuguese" : "葡萄牙语", + "seed_language_russian" : "俄语", + "seed_language_spanish" : "西班牙语", + + + "send_title" : "发送", + "send_your_wallet" : "你的钱包", + "send_address" : "${cryptoCurrency} 地址", + "send_payment_id" : "付款编号 (可选的)", + "all" : "所有", + "send_error_minimum_value" : "最小金额为0.01", + "send_error_currency" : "货币只能包含数字", + "send_estimated_fee" : "预估费用:", + "send_priority" : "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整", + "send_creating_transaction" : "创建交易", + "send_templates" : "模板", + "send_new" : "新建", + "send_amount" : "金额:", + "send_fee" : "手续费:", + "send_name" : "名称", + "send_got_it" : "明白", + "send_sending" : "正在发送...", + "send_success" : "您的${crypto}已成功发送", + + + "settings_title" : "设定值", + "settings_nodes" : "节点数", + "settings_current_node" : "当前节点", + "settings_wallets" : "钱包", + "settings_display_balance_as" : "将余额显示为", + "settings_currency" : "货币", + "settings_fee_priority" : "交易优先级", + "settings_save_recipient_address" : "保存收件人地址", + "settings_personal" : "个人", + "settings_change_pin" : "更改密码", + "settings_change_language" : "修改语言", + "settings_allow_biometrical_authentication" : "允许生物识别认证", + "settings_dark_mode" : "黑暗模式", + "settings_transactions" : "交易情况", + "settings_trades" : "交易", + "settings_display_on_dashboard_list" : "显示在仪表板上", + "settings_all" : "所有", + "settings_only_trades" : "只交易", + "settings_only_transactions" : "仅交易", + "settings_none" : "没有", + "settings_support" : "帮助", + "settings_terms_and_conditions" : "条款和条件", + "pin_is_incorrect" : "PIN码不正确", + + + "setup_pin" : "设定PIN码", + "enter_your_pin_again" : "再次输入您的PIN码", + "setup_successful" : "您的PIN码已成功设置!", + + + "wallet_keys" : "钱包种子/密钥", + "wallet_seed" : "钱包种子", + "private_key" : "私钥", + "public_key" : "公钥", + "view_key_private" : "View 密钥(私钥)", + "view_key_public" : "View 密钥(公钥)", + "spend_key_private" : "Spend 密钥 (私钥)", + "spend_key_public" : "Spend 密钥 (公钥)", + "copied_key_to_clipboard" : "复制 ${key} 到剪贴板", + + + "new_subaddress_title" : "新地址", + "new_subaddress_label_name" : "标签名称", + "new_subaddress_create" : "创建", + + + "subaddress_title" : "子地址列表", + + + "trade_details_title" : "交易明细", + "trade_details_id" : "ID", + "trade_details_state" : "条件", + "trade_details_fetching" : "正在取得", + "trade_details_provider" : "提供者", + "trade_details_created_at" : "创建于", + "trade_details_pair" : "对", + "trade_details_copied" : "${title} 复制到剪贴板", + + + "trade_history_title" : "交易历史", + + + "transaction_details_title" : "交易明细", + "transaction_details_transaction_id" : "交易编号", + "transaction_details_date" : "日期", + "transaction_details_height" : "区块高度", + "transaction_details_amount" : "金额", + "transaction_details_fee" : "手续费", + "transaction_details_copied" : "${title} 复制到剪贴板", + "transaction_details_recipient_address" : "收件人地址", + + + "wallet_list_title" : "Monero 钱包", + "wallet_list_create_new_wallet" : "创建新钱包", + "wallet_list_restore_wallet" : "恢复钱包", + "wallet_list_load_wallet" : "加载钱包", + "wallet_list_loading_wallet" : "载入中 ${wallet_name} 钱包", + "wallet_list_failed_to_load" : "加载失败 ${wallet_name} 钱包. ${error}", + "wallet_list_removing_wallet" : "删除 ${wallet_name} 钱包", + "wallet_list_failed_to_remove" : "删除失败 ${wallet_name} 钱包. ${error}", + + + "widgets_address" : "地址", + "widgets_restore_from_blockheight" : "从块高还原", + "widgets_restore_from_date" : "从日期还原", + "widgets_or" : "或者", + "widgets_seed" : "种子", + + + "router_no_route" : "未定义路线 ${name}", + + + "error_text_account_name" : "帐户名称只能包含字母数字\n且必须介于1到15个字符之间", + "error_text_contact_name" : "联系人姓名不能包含`,' \" 符号\n并且必须介于1到32个字符之间", + "error_text_address" : "钱包地址必须与类型对应\n加密货币", + "error_text_node_address" : "请输入一个IPv4地址", + "error_text_node_port" : "节点端口只能包含0到65535之间的数字", + "error_text_payment_id" : "付款ID只能包含16到64个字符(十六进制)", + "error_text_xmr" : "XMR值不能超过可用余额.\n小数位数必须小于或等于12", + "error_text_fiat" : "金额不能超过可用余额.\n小数位数必须小于或等于2", + "error_text_subaddress_name" : "子地址名称不能包含`,' \" 符号\n并且必须在1到20个字符之间", + "error_text_amount" : "金额只能包含数字", + "error_text_wallet_name" : "钱包名称只能包含字母,数字\n且必须介于1到15个字符之间", + "error_text_keys" : "钱包密钥只能包含16个字符的十六进制字符", + "error_text_crypto_currency" : "小数位数\n必须小于或等于12", + "error_text_minimal_limit" : "未创建 ${provider} 交易。 金额小于最小值:${min} ${currency}", + "error_text_maximum_limit" : "未创建 ${provider} 交易。 金额大于最大值:${max} ${currency}", + "error_text_limits_loading_failed" : "未创建 ${provider} 交易。 限制加载失敗", + "error_text_template" : "模板名称和地址不能包含`,' \" 符号\n并且必须在1到106个字符之间", + + + "auth_store_ban_timeout" : "禁止超时", + "auth_store_banned_for" : "禁止 ", + "auth_store_banned_minutes" : " 分钟", + "auth_store_incorrect_password" : "PIN码错误", + "wallet_store_monero_wallet" : "Monero 钱包", + "wallet_restoration_store_incorrect_seed_length" : "种子长度错误", + + + "full_balance" : "全部余额", + "available_balance" : "可用余额", + "hidden_balance" : "隐藏余额", + + + "sync_status_syncronizing" : "正在同步", + "sync_status_syncronized" : "已同步", + "sync_status_not_connected" : "未连接", + "sync_status_starting_sync" : "开始同步", + "sync_status_failed_connect" : "断线", + "sync_status_connecting" : "连接中", + "sync_status_connected" : "已连接", + + + "transaction_priority_slow" : "慢速", + "transaction_priority_regular" : "常规", + "transaction_priority_medium" : "中等", + "transaction_priority_fast" : "快速", + "transaction_priority_fastest" : "最快", + + + "trade_for_not_created" : "交易 ${title} 未创建.", + "trade_not_created" : "未建立交易.", + "trade_id_not_found" : "交易方式 ${tradeId} 的 ${title} 未找到.", + "trade_not_found" : "找不到交易.", + + + "trade_state_pending" : "待定", + "trade_state_confirming" : "确认中", + "trade_state_trading" : "交易", + "trade_state_traded" : "已交易", + "trade_state_complete" : "完成", + "trade_state_to_be_created" : "待创建", + "trade_state_unpaid" : "未付", + "trade_state_underpaid" : "支付不足", + "trade_state_paid_unconfirmed" : "付费未确认", + "trade_state_paid" : "已付费", + "trade_state_btc_sent" : "已发送", + "trade_state_timeout" : "超时", + "trade_state_created" : "已建立", + "trade_state_finished" : "已完成", + + "change_language" : "修改语言", + "change_language_to" : "修改语言为 ${language}?", + + "paste" : "粘贴", + "restore_from_seed_placeholder" : "请在此处输入或粘贴您的代码短语", + "add_new_word" : "添加新词", + "incorrect_seed" : "输入的文字无效。", + + "biometric_auth_reason" : "扫描指纹进行身份认证", + "version" : "版本 ${currentVersion}", + + "openalias_alert_title" : "检测到XMR收件人", + "openalias_alert_content" : "您将汇款至\n${recipient_name}", + + "card_address" : "地址:", + "buy" : "购买", + + "placeholder_transactions" : "您的交易将显示在这里", + "placeholder_contacts" : "您的联系人将显示在这里", + + "template" : "模板", + "confirm_delete_template" : "此操作将刪除此模板。 确定吗?", + "confirm_delete_wallet" : "此操作将刪除此钱包。确定吗?", + + "picker_description" : "要选择ChangeNOW或MorphToken,请先更改您的交易币", + + "change_wallet_alert_title" : "更换当前钱包", + "change_wallet_alert_content" : "您是否想将当前钱包改为 ${wallet_name}?", + + "creating_new_wallet" : "创建新钱包", + "creating_new_wallet_error" : "错误: ${description}", + + "seed_alert_title" : "注意", + "seed_alert_content" : "种子是恢复钱包的唯一方法。 记住了吗?", + "seed_alert_back" : "返回", + "seed_alert_yes" : "确定", + + "exchange_sync_alert_content" : "请等待,直到您的钱包同步", + + "pre_seed_title" : "重要", + "pre_seed_description" : "在下一页上,您将看到${words}个文字。 这是您独有的种子,是丟失或出现故障时恢复钱包的唯一方法。 您有必须将其写下并储存在Cake Wallet应用程序以外的安全地方。", + "pre_seed_button_text" : "我明白。 查看种子", + + "xmr_to_error" : "XMR.TO 错误", + "xmr_to_error_description" : "无效的金额。 小数点后最多8位数字", + + "provider_error" : "${provider} 错误", + + "use_ssl" : "使用SSL", + + "color_theme" : "主題", + "light_theme" : "艳丽", + "bright_theme" : "明亮", + "dark_theme" : "黑暗", + "enter_your_note" : "输入您的笔记...", + "note_optional" : "注意(可选)", + "note_tap_to_change" : "注意(轻按即可更改)", + "transaction_key" : "交易密码", + "confirmations" : "确认", + "recipient_address" : "收件人地址", + + "extra_id" : "额外ID:", + "destination_tag" : "目标Tag:", + "memo" : "备忘录:", + + "backup" : "备份", + "change_password" : "更改密码", + "backup_password" : "备份密码", + "write_down_backup_password" : "请写下您的备份密码,该密码用于导入备份文件。", + "export_backup" : "导出备份", + "save_backup_password" : "请确保您已保存备份密码。 沒有它,您将无法导入备份文件。", + "backup_file" : "备份文件", + + "edit_backup_password" : "编辑备份密码", + "save_backup_password_alert" : "保存备份密码", + "change_backup_password_alert" : "您以前的备份文件将无法使用新的备份密码導入。 新的备份密码将仅用于新的备份文件。 您确定要更改备份密码吗?", + + "enter_backup_password" : "在此处输入備用密码", + "select_backup_file" : "选择备份文件", + "import" : "导入", + "please_select_backup_file" : "请选择备份文件,然后输入备份密码。", + + "fixed_rate" : "固定汇率", + "fixed_rate_alert" : "选中固定汇率模式后,您将可以输入接收金额。 您要切换到固定汇率模式吗?", + + "xlm_extra_info" : "发送用于交换的XLM交易时,请不要忘记指定备忘录ID", + "xrp_extra_info" : "发送用于交换的XRP交易时,请不要忘记指定目标Tag", + + "exchange_incorrect_current_wallet_for_xmr" : "如果要从Cake Wallet Monero余额中兑换XMR,请先切换到Monero钱包。", + "confirmed" : "已确认", + "unconfirmed" : "未经证实", + "displayable" : "可显示", + + "submit_request" : "提交请求" +} \ No newline at end of file From 7fc43abcc31c585ededa8d3fcd7f8c3d0037f5b6 Mon Sep 17 00:00:00 2001 From: Zy143L Date: Sat, 17 Apr 2021 23:51:40 +0800 Subject: [PATCH 02/28] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20strings=5Fzh-CN.arb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix "reset" --- res/values/strings_zh-CN.arb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings_zh-CN.arb b/res/values/strings_zh-CN.arb index 128a18df1..7b994647c 100644 --- a/res/values/strings_zh-CN.arb +++ b/res/values/strings_zh-CN.arb @@ -19,7 +19,7 @@ "cancel" : "取消", "ok" : "确认", "contact_name" : "联系人姓名", - "reset" : "重启", + "reset" : "重置", "save" : "保存", "address_remove_contact" : "刪除联系人", "address_remove_content" : "您确定要刪除所选的联系人吗?", From d23228ac01f85339cfd4ba2859a52f2941a21e1a Mon Sep 17 00:00:00 2001 From: M Date: Wed, 21 Apr 2021 11:59:13 +0300 Subject: [PATCH 03/28] Updated bitcoin slow transaction priority. Changed version to 4.1.6. --- ios/Runner.xcodeproj/project.pbxproj | 12 ++++++------ lib/bitcoin/bitcoin_transaction_priority.dart | 2 +- lib/bitcoin/electrum.dart | 13 +++++++++---- lib/store/app_store.dart | 2 +- pubspec.yaml | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6e3df44f7..a60dfb75f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -358,7 +358,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 34; + CURRENT_PROJECT_VERSION = 35; DEVELOPMENT_TEAM = 32J6BB6VUS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -375,7 +375,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.1.5; + MARKETING_VERSION = 4.1.6; PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -501,7 +501,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 34; + CURRENT_PROJECT_VERSION = 35; DEVELOPMENT_TEAM = 32J6BB6VUS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -518,7 +518,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.1.5; + MARKETING_VERSION = 4.1.6; PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -536,7 +536,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 34; + CURRENT_PROJECT_VERSION = 35; DEVELOPMENT_TEAM = 32J6BB6VUS; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( @@ -553,7 +553,7 @@ "$(inherited)", "$(PROJECT_DIR)/Flutter", ); - MARKETING_VERSION = 4.1.5; + MARKETING_VERSION = 4.1.6; PRODUCT_BUNDLE_IDENTIFIER = com.fotolockr.cakewallet; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/lib/bitcoin/bitcoin_transaction_priority.dart b/lib/bitcoin/bitcoin_transaction_priority.dart index 71002819b..9e2fbc24b 100644 --- a/lib/bitcoin/bitcoin_transaction_priority.dart +++ b/lib/bitcoin/bitcoin_transaction_priority.dart @@ -32,7 +32,7 @@ class BitcoinTransactionPriority extends TransactionPriority { switch (this) { case BitcoinTransactionPriority.slow: - label = S.current.transaction_priority_slow; + label = '${S.current.transaction_priority_slow} ~24hrs'; break; case BitcoinTransactionPriority.medium: label = S.current.transaction_priority_medium; diff --git a/lib/bitcoin/electrum.dart b/lib/bitcoin/electrum.dart index 29e85afa5..2592d2c22 100644 --- a/lib/bitcoin/electrum.dart +++ b/lib/bitcoin/electrum.dart @@ -305,10 +305,15 @@ class ElectrumClient { Future> feeRates() async { final topDoubleString = await estimatefee(p: 1); final middleDoubleString = await estimatefee(p: 20); - final bottomDoubleString = await estimatefee(p: 150); - final top = (stringDoubleToBitcoinAmount(topDoubleString.toString()) / 1000).round(); - final middle = (stringDoubleToBitcoinAmount(middleDoubleString.toString()) / 1000).round(); - final bottom = (stringDoubleToBitcoinAmount(bottomDoubleString.toString()) / 1000).round(); + final bottomDoubleString = await estimatefee(p: 100); + final top = (stringDoubleToBitcoinAmount(topDoubleString.toString()) / 1000) + .round(); + final middle = + (stringDoubleToBitcoinAmount(middleDoubleString.toString()) / 1000) + .round(); + final bottom = + (stringDoubleToBitcoinAmount(bottomDoubleString.toString()) / 1000) + .round(); return [bottom, middle, top]; } diff --git a/lib/store/app_store.dart b/lib/store/app_store.dart index 06e0de1b2..e90b76375 100644 --- a/lib/store/app_store.dart +++ b/lib/store/app_store.dart @@ -29,7 +29,7 @@ abstract class AppStoreBase with Store { NodeListStore nodeListStore; @action - void changeCurrentWallet(WalletBase wallet) { + void changeCurrentWallet(WalletBase wallet) { this.wallet?.close(); this.wallet = wallet; } diff --git a/pubspec.yaml b/pubspec.yaml index 388b8a5f2..15ccf8cec 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,7 +11,7 @@ description: Cake Wallet. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 4.1.5+44 +version: 4.1.6+45 environment: sdk: ">=2.7.0 <3.0.0" From bbe75451a479a12652f6828920a0d35a47a82d63 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Thu, 22 Apr 2021 18:56:14 +0300 Subject: [PATCH 04/28] CAKE-312 | wrapped unlock page by WillPopScope; fixed biometricAuth() in the auth_view_model.dart --- lib/router.dart | 8 +++++--- lib/view_model/auth_view_model.dart | 2 -- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/router.dart b/lib/router.dart index 0474758e3..19a6b760f 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -237,9 +237,11 @@ Route createRoute(RouteSettings settings) { case Routes.unlock: return MaterialPageRoute( fullscreenDialog: true, - builder: (_) => getIt.get( - param1: settings.arguments as OnAuthenticationFinished, - param2: false)); + builder: (_) => WillPopScope( + child: getIt.get( + param1: settings.arguments as OnAuthenticationFinished, + param2: false), + onWillPop: () async => false)); case Routes.nodeList: return CupertinoPageRoute( diff --git a/lib/view_model/auth_view_model.dart b/lib/view_model/auth_view_model.dart index 5bf5c25a1..76df95283 100644 --- a/lib/view_model/auth_view_model.dart +++ b/lib/view_model/auth_view_model.dart @@ -110,8 +110,6 @@ abstract class AuthViewModelBase with Store { if (isAuthenticated) { state = ExecutedSuccessfullyState(); - } else { - state = FailureState('Failure biometric authentication'); } } } catch(e) { From c9df68ca06794f660e12a9b51c5d6e74137bb327 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 23 Apr 2021 18:12:43 +0300 Subject: [PATCH 05/28] CAKE-315 | removed nano from list of crypto currencies in the crypto_currency.dart --- lib/entities/crypto_currency.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/entities/crypto_currency.dart b/lib/entities/crypto_currency.dart index d5f23a0fa..0f28288ed 100644 --- a/lib/entities/crypto_currency.dart +++ b/lib/entities/crypto_currency.dart @@ -19,7 +19,6 @@ class CryptoCurrency extends EnumerableItem with Serializable { CryptoCurrency.eos, CryptoCurrency.eth, CryptoCurrency.ltc, - CryptoCurrency.nano, CryptoCurrency.trx, CryptoCurrency.usdt, CryptoCurrency.usdterc20, From e188806f16274a28ee83e225c0657502893e5ac6 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 23 Apr 2021 18:33:51 +0300 Subject: [PATCH 06/28] CAKE-316 | added Italian language to the app --- lib/entities/language_service.dart | 3 +- res/values/strings_it.arb | 473 +++++++++++++++++++++++++++++ 2 files changed, 475 insertions(+), 1 deletion(-) create mode 100644 res/values/strings_it.arb diff --git a/lib/entities/language_service.dart b/lib/entities/language_service.dart index e405522c0..af230212a 100644 --- a/lib/entities/language_service.dart +++ b/lib/entities/language_service.dart @@ -15,7 +15,8 @@ class LanguageService { 'pt': 'Português (Portuguese)', 'ru': 'Русский (Russian)', 'uk': 'Українська (Ukrainian)', - 'zh': '中文 (Chinese)' + 'zh': '中文 (Chinese)', + 'it': 'Italiano (Italian)' }; static final list = {}; diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb new file mode 100644 index 000000000..21f61ec6f --- /dev/null +++ b/res/values/strings_it.arb @@ -0,0 +1,473 @@ +{ + "welcome" : "Benvenuto", + "cake_wallet" : "Cake Wallet", + "first_wallet_text" : "Fantastico portafoglio per Monero e Bitcoin", + "please_make_selection" : "Gentilmente seleziona se vuoi generare o recuperare il tuo portafoglio.", + "create_new" : "Genera nuovo Portafoglio", + "restore_wallet" : "Recupera Portafoglio", + + + "accounts" : "Accounts", + "edit" : "Modifica", + "account" : "Account", + "add" : "Aggiungi", + + + "address_book" : "Rubrica indirizzi", + "contact" : "Contatta", + "please_select" : "Gentilmente seleziona:", + "cancel" : "Cancella", + "ok" : "OK", + "contact_name" : "Nome Contatto", + "reset" : "Resetta", + "save" : "Salva", + "address_remove_contact" : "Rimuovi contatto", + "address_remove_content" : "Sei sicuro di voler eliminare il contatto selezionato?", + + + "authenticated" : "Autenticato", + "authentication" : "Autenticazione", + "failed_authentication" : "Autenticazione fallita. ${state_error}", + + + "wallet_menu" : "Menu", + "Blocks_remaining" : "${status} Blocchi Rimanenti", + "please_try_to_connect_to_another_node" : "Gentilmente prova a connetterti ad un altro nodo", + "xmr_hidden" : "Nascosto", + "xmr_available_balance" : "Saldo Disponibile", + "xmr_full_balance" : "Saldo Completo", + "send" : "Invia", + "receive" : "Ricevi", + "transactions" : "Transazioni", + "incoming" : "In arrivo", + "outgoing" : "In uscita", + "transactions_by_date" : "Transazioni per data", + "trades" : "Scambi", + "filters" : "Filtri", + "today" : "Oggi", + "yesterday" : "Ieri", + "received" : "Ricevuto", + "sent" : "Inviato", + "pending" : " (pendente)", + "rescan" : "Scansiona di nuovo", + "reconnect" : "Riconnetti", + "wallets" : "Portafogli", + "show_seed" : "Mostra seme", + "show_keys" : "Mostra seme/chiavi", + "address_book_menu" : "Rubrica indirizzi", + "reconnection" : "Riconnessione", + "reconnect_alert_text" : "Sei sicuro di volerti riconnettere?", + + + "exchange" : "Scambia", + "clear" : "Pulisci", + "refund_address" : "Indirizzo di rimborso", + "change_exchange_provider" : "Cambia Exchange", + "you_will_send" : "Conveti da", + "you_will_get" : "Converti a", + "amount_is_guaranteed" : "L'ammonare da ricevere è fissato", + "amount_is_estimate" : "L'ammontare da ricevere è una stima", + "powered_by" : "Sviluppato da ${title}", + "error" : "Errore", + "estimated" : "Stimato", + "min_value" : "Min: ${value} ${currency}", + "max_value" : "Max: ${value} ${currency}", + "change_currency" : "Cambia Moneta", + + + "copy_id" : "Copia ID", + "exchange_result_write_down_trade_id" : "Gentilmente fai una copia o trascrivi l'ID dello scambio per continuare.", + "trade_id" : "ID Scambio:", + "copied_to_clipboard" : "Copiato negli Appunti", + "saved_the_trade_id" : "Ho salvato l'ID dello scambio", + "fetching" : "Recupero", + "id" : "ID: ", + "amount" : "Ammontare: ", + "payment_id" : "ID Pagamento: ", + "status" : "Stato: ", + "offer_expires_in" : "Offerta termina tra: ", + "trade_is_powered_by" : "Questo scambio è fornito da ${provider}", + "copy_address" : "Copia Indirizzo", + "exchange_result_confirm" : "Cliccando su Conferma, invierai ${fetchingLabel} ${from} dal tuo portafoglio chiamato ${walletName} all'indirizzo mostrato qui in basso. O puoi inviare dal tuo portafoglio esterno all'indirizzo/codice QR mostrato in basso.\n\nGentilmente clicca su Conferma per continuare o torna indietro per cambiare l'ammontare.", + "exchange_result_description" : "Devi inviare un minimo di ${fetchingLabel} ${from} all'indirizzo mostrato nella pagina seguente. Se invii un ammontare inferiore a ${fetchingLabel} ${from} la conversione potrebbe non andare a buon fine e l'indirizzo potrebbe non essere rimborsato.", + "exchange_result_write_down_ID" : "*Gentilmente fai una copia o trascrivi il tuo ID mostrato in alto.", + "confirm" : "Conferma", + "confirm_sending" : "Conferma l'invio", + "commit_transaction_amount_fee" : "Invia transazione\nAmmontare: ${amount}\nCommissione: ${fee}", + "sending" : "Invio", + "transaction_sent" : "Transazione inviata!", + "expired" : "Scaduta", + "time" : "${minutes}m ${seconds}s", + "send_xmr" : "Invia XMR", + "exchange_new_template" : "Nuovo modello", + + "faq" : "Domande Frequenti", + + + "enter_your_pin" : "Inserisci il tuo PIN", + "loading_your_wallet" : "Caricamento portafoglio", + + + "new_wallet" : "Nuovo Portafoglio", + "wallet_name" : "Nome del Portafoglio", + "continue_text" : "Continua", + "choose_wallet_currency" : "Gentilmente scegli la moneta del portafoglio:", + + + "node_new" : "Nuovo Nodo", + "node_address" : "Indirizzo Nodo", + "node_port" : "Porta Nodo", + "login" : "Accedi", + "password" : "Password", + "nodes" : "Nodi", + "node_reset_settings_title" : "Ripristina impostazioni", + "nodes_list_reset_to_default_message" : "Sei sicuro di voler ripristinare le impostazioni predefinite?", + "change_current_node" : "Sei sicuro di voler cambiare il nodo corrente con ${node}?", + "change" : "Cambia", + "remove_node" : "Rimuovi nodo", + "remove_node_message" : "Sei sicuro di voler rimuovere il nodo selezionato?", + "remove" : "Remuovi", + "delete" : "Elimina", + "add_new_node" : "Aggiungi nuovo nodo", + "change_current_node_title" : "Cambia nodo corrente", + "node_test" : "Test", + "node_connection_successful" : "Connessione avvenuta con successo", + "node_connection_failed" : "Connessione fallita", + "new_node_testing" : "Test novo nodo", + + + "use" : "Passa a ", + "digit_pin" : "-cifre PIN", + + + "share_address" : "Condividi indirizzo", + "receive_amount" : "Ammontare", + "subaddresses" : "Sottoindirizzi", + "addresses" : "Indirizzi", + "scan_qr_code" : "Scansiona il codice QR per ottenere l'indirizzo", + "rename" : "Rinomina", + "choose_account" : "Scegli account", + "create_new_account" : "Crea nuovo account", + "accounts_subaddresses" : "Accounts e sottoindirizzi", + + + "restore_restore_wallet" : "Recupera Portafoglio", + "restore_title_from_seed_keys" : "Recupera dal seme/chiavi", + "restore_description_from_seed_keys" : "Recupera il tuo portafoglio dal seme/chiavi che hai salvato in un posto sicuro", + "restore_next" : "Prossimo", + "restore_title_from_backup" : "Recupera da backup", + "restore_description_from_backup" : "Puoi recuperare l'app Cake Wallet per intero dal tuo file di backup", + "restore_seed_keys_restore" : "Recupera Seme/Chiavi", + "restore_title_from_seed" : "Recupera dal seme", + "restore_description_from_seed" : "Recupera il tuo portafoglio da una combinazione di 25 o 13 parole", + "restore_title_from_keys" : "Recupera dalle chiavi", + "restore_description_from_keys" : "Recupera il tuo portafoglio da una sequenza di caratteri generati dalle tue chiavi private", + "restore_wallet_name" : "Nome Portafoglio", + "restore_address" : "Indirizzo", + "restore_view_key_private" : "Chiave di Visualizzazione (privata)", + "restore_spend_key_private" : "Chiave di Spesa (privata)", + "restore_recover" : "Recupera", + "restore_wallet_restore_description" : "Descrizione recupero Portafoglio", + "restore_new_seed" : "Nuovo seme", + "restore_active_seed" : "Seme attivo", + "restore_bitcoin_description_from_seed" : "Recupera il tuo portafoglio da una combinazione di 12 parole", + "restore_bitcoin_description_from_keys" : "Recupera il tuo portafoglio da una stringa WIF generata dalle tue chiavi private", + "restore_bitcoin_title_from_keys" : "Recupera da WIF", + "restore_from_date_or_blockheight" : "Gentilmente inserisci la data di un paio di giorni prima che hai creato questo portafoglio. Oppure inserisci l'altezza del blocco se la conosci", + + + "seed_reminder" : "Gentilmente trascrivi le parole. Ti tornerà utie in caso perdessi o ripristinassi il tuo telefono", + "seed_title" : "Seme", + "seed_share" : "Condividi seme", + "copy" : "Copia", + + + "seed_language_choose" : "Gentilmente scegli la lingua del seme:", + "seed_choose" : "Scegli la lingua del seme", + "seed_language_next" : "Prossimo", + "seed_language_english" : "Inglese", + "seed_language_chinese" : "Cinese", + "seed_language_dutch" : "Olandese", + "seed_language_german" : "Tedesco", + "seed_language_japanese" : "Giapponese", + "seed_language_portuguese" : "Portoghese", + "seed_language_russian" : "Russo", + "seed_language_spanish" : "Spagnolo", + + + "send_title" : "Invia", + "send_your_wallet" : "Il tuo portafoglio", + "send_address" : "${cryptoCurrency} indirizzo", + "send_payment_id" : "ID Pagamento (opzionale)", + "all" : "TUTTO", + "send_error_minimum_value" : "L'ammontare minimo è 0.01", + "send_error_currency" : "L'ammontare può contenere solo numeri", + "send_estimated_fee" : "Commissione stimata:", + "send_priority" : "Attualmente la commissione è impostata a priorità ${transactionPriority} .\nLa priorità della transazione può essere modificata nelle impostazioni", + "send_creating_transaction" : "Creazione della transazione", + "send_templates" : "Modelli", + "send_new" : "Nuovo", + "send_amount" : "Ammontare:", + "send_fee" : "Commissione:", + "send_name" : "Nome", + "send_got_it" : "Ho capito", + "send_sending" : "Invio...", + "send_success" : " ${crypto} inviati con successo", + + + "settings_title" : "Impostazioni", + "settings_nodes" : "Nodi", + "settings_current_node" : "Nodo attuale", + "settings_wallets" : "Portafogli", + "settings_display_balance_as" : "Mostra saldo come", + "settings_currency" : "Moneta", + "settings_fee_priority" : "Priorità commissione", + "settings_save_recipient_address" : "Salva indirizzo di destinazione", + "settings_personal" : "Personali", + "settings_change_pin" : "Cambia PIN", + "settings_change_language" : "Cambia lingua", + "settings_allow_biometrical_authentication" : "Consenti autenticazione biometrica", + "settings_dark_mode" : "Tema scuro", + "settings_transactions" : "Transazioni", + "settings_trades" : "Scambi", + "settings_display_on_dashboard_list" : "Mostra nella lista della pagina principale", + "settings_all" : "TUTTO", + "settings_only_trades" : "Solo scambi", + "settings_only_transactions" : "Solo transazioni", + "settings_none" : "Nessuno", + "settings_support" : "Supporto", + "settings_terms_and_conditions" : "Termini e condizioni", + "pin_is_incorrect" : "Il PIN non è corretto", + + + "setup_pin" : "Imposta PIN", + "enter_your_pin_again" : "Inserisci il tuo pin di nuovo", + "setup_successful" : "Il tuo PIN è stato impostato con successo!", + + + "wallet_keys" : "Seme Portafoglio /chiavi", + "wallet_seed" : "Seme Portafoglio", + "private_key" : "Chiave privata", + "public_key" : "Chiave pubblica", + "view_key_private" : "Chiave di visualizzazione (privata)", + "view_key_public" : "Chiave di visualizzazione (pubblica)", + "spend_key_private" : "Chiave di spesa (privata)", + "spend_key_public" : "Chiave di spesa (pubblica)", + "copied_key_to_clipboard" : " ${key} copiata negli Appunti", + + + "new_subaddress_title" : "Nuovo indirizzo", + "new_subaddress_label_name" : "Nome etichetta", + "new_subaddress_create" : "Crea", + + + "subaddress_title" : "Lista sottoindirizzi", + + + "trade_details_title" : "Dettagli Scambio", + "trade_details_id" : "ID", + "trade_details_state" : "Stato", + "trade_details_fetching" : "Recupero", + "trade_details_provider" : "Fornitore", + "trade_details_created_at" : "Creato alle", + "trade_details_pair" : "Coppia", + "trade_details_copied" : "${title} copiati negli Appunti", + + + "trade_history_title" : "Storico scambi", + + + "transaction_details_title" : "Dettagli Transazione", + "transaction_details_transaction_id" : "ID Transazione", + "transaction_details_date" : "Data", + "transaction_details_height" : "Altezza", + "transaction_details_amount" : "Ammontare", + "transaction_details_fee" : "Commissione", + "transaction_details_copied" : "${title} copiati negli Appunti", + "transaction_details_recipient_address" : "Indirizzo destinatario", + + + "wallet_list_title" : "Portafoglio Monero", + "wallet_list_create_new_wallet" : "Crea Nuovo Portafoglio", + "wallet_list_restore_wallet" : "Recupera Portafoglio", + "wallet_list_load_wallet" : "Caricamento Portafoglio", + "wallet_list_loading_wallet" : "Caricamento portafoglio ${wallet_name}", + "wallet_list_failed_to_load" : "Caricamento portafoglio ${wallet_name} fallito. ${error}", + "wallet_list_removing_wallet" : "Rimozione portafoglio ${wallet_name}", + "wallet_list_failed_to_remove" : "Rimozione portafoglio ${wallet_name} fallita. ${error}", + + + "widgets_address" : "Indirizzo", + "widgets_restore_from_blockheight" : "Recupera da altezza blocco", + "widgets_restore_from_date" : "Recupera da data", + "widgets_or" : "o", + "widgets_seed" : "Seme", + + + "router_no_route" : "Nessun percorso definito per ${name}", + + + "error_text_account_name" : "Il nome dell'Account può contenere solo lettere, numeri\ne deve avere una lunghezza compresa tra 1 e 15 caratteri", + "error_text_contact_name" : "Il nome del Contatto non può contenere i simboli ` , ' \" \ne deve avere una lunghezza compresa tra 1 e 32 caratteri", + "error_text_address" : "L'indirizzo del Portafoglio deve corrispondere alla tipologia\ndi criptovaluta", + "error_text_node_address" : "Gentilmente inserisci un indirizzo iPv4", + "error_text_node_port" : "La porta del nodo può contenere solo numeri compresi tra 0 e 65535", + "error_text_payment_id" : "l'ID del pagamento può contenere solo da 16 a 64 caratteri in hex", + "error_text_xmr" : "Il valore XMR non può eccedere il saldo disponibile.\nIl numero delle cifre decimali deve essere inferiore o uguale a 12", + "error_text_fiat" : "L'ammontare non può eccedere il saldo dispoinibile.\nIl numero di cifre decimali deve essere inferiore o uguale a 2", + "error_text_subaddress_name" : "Il nome del sottoindirizzo non può contenere i simboli ` , ' \" \ne deve avere una lunghezza compresa tra 1 e 20 caratteri", + "error_text_amount" : "L'ammontare può contenere solo numeri", + "error_text_wallet_name" : "Il nome del portafoglio può contenere solo lettere, numeri\ne deve avere una lunghezza compresa tra 1 e 15 caratteri", + "error_text_keys" : "Le chiavi del portafoglio possono contenere solo 64 caratteri in hex", + "error_text_crypto_currency" : "Il numero delle cifre decimali\ndeve essere inferiore o uguale a 12", + "error_text_minimal_limit" : "Lo scambio per ${provider} non è stato creato. L'ammontare è inferiore al minimo: ${min} ${currency}", + "error_text_maximum_limit" : "Lo scambio per ${provider} non è stato creato. L'ammontare è superiore al massimo: ${max} ${currency}", + "error_text_limits_loading_failed" : "Lo scambio per ${provider} non è stato creato. Caricamento dei limiti fallito", + "error_text_template" : "Il nome del modello e l'indirizzo non possono contenere i simboli ` , ' \" \ne devono avere una lunghezza compresa tra 1 e 106 caratteri", + + + "auth_store_ban_timeout" : "ban_timeout", + "auth_store_banned_for" : "Bannato per ", + "auth_store_banned_minutes" : " minuti", + "auth_store_incorrect_password" : "PIN non corretto", + "wallet_store_monero_wallet" : "Portafoglio Monero", + "wallet_restoration_store_incorrect_seed_length" : "Lunghezza seme non corretta", + + + "full_balance" : "Saldo Completo", + "available_balance" : "Saldo Disponibile", + "hidden_balance" : "Saldo Nascosto", + + + "sync_status_syncronizing" : "SINCRONIZZAZIONE", + "sync_status_syncronized" : "SINCRONIZZATO", + "sync_status_not_connected" : "NON CONNESSO", + "sync_status_starting_sync" : "INIZIO SINC", + "sync_status_failed_connect" : "DISCONNESSO", + "sync_status_connecting" : "CONNESSIONE", + "sync_status_connected" : "CONNESSO", + + + "transaction_priority_slow" : "Bassa", + "transaction_priority_regular" : "Regolare", + "transaction_priority_medium" : "Media", + "transaction_priority_fast" : "Alta", + "transaction_priority_fastest" : "Massima", + + + "trade_for_not_created" : "Lo scambio per ${title} non è stato creato.", + "trade_not_created" : "Scambio non creato.", + "trade_id_not_found" : "Scambio ${tradeId} di ${title} not trovato.", + "trade_not_found" : "Scambio non trovato.", + + + "trade_state_pending" : "In corso", + "trade_state_confirming" : "Conferma", + "trade_state_trading" : "Scambio", + "trade_state_traded" : "Scambiato", + "trade_state_complete" : "Completato", + "trade_state_to_be_created" : "Da creare", + "trade_state_unpaid" : "Non pagato", + "trade_state_underpaid" : "Sottopagato", + "trade_state_paid_unconfirmed" : "Pagato non confermato", + "trade_state_paid" : "Pagato", + "trade_state_btc_sent" : "Btc inviati", + "trade_state_timeout" : "Timeout", + "trade_state_created" : "Creato", + "trade_state_finished" : "Finito", + + "change_language" : "Cambia lingua", + "change_language_to" : "Cambia lingua in ${language}?", + + "paste" : "Incolla", + "restore_from_seed_placeholder" : "Gentilmente inserisci o incolla il tuo seme qui", + "add_new_word" : "Aggiungi nuova parola", + "incorrect_seed" : "Il testo inserito non è valido.", + + "biometric_auth_reason" : "Scansiona la tua impronta per autenticarti", + "version" : "Versione ${currentVersion}", + + "openalias_alert_title" : "XMR Destinatario Rilevato", + "openalias_alert_content" : "Invierai i tuoi fondi a\n${recipient_name}", + + "card_address" : "Indirizzo:", + "buy" : "Compra", + + "placeholder_transactions" : "Le tue transazioni saranno mostrate qui", + "placeholder_contacts" : "I tuoi contatti saranno mostrati qui", + + "template" : "Modello", + "confirm_delete_template" : "Questa azione cancellerà questo modello. Desideri continuare?", + "confirm_delete_wallet" : "Questa azione cancellerà questo portafoglio. Desideri continuare?", + + "picker_description" : "Per scegliere ChangeNOW o MorphToken, gentilmente cambia prima la tua coppia di valute", + + "change_wallet_alert_title" : "Cambia portafoglio attuale", + "change_wallet_alert_content" : "Sei sicuro di voler cambiare il portafoglio attuale con ${wallet_name}?", + + "creating_new_wallet" : "Creazione nuovo portafoglio", + "creating_new_wallet_error" : "Errore: ${description}", + + "seed_alert_title" : "Attenzione", + "seed_alert_content" : "Il seme è l'unico modo per recuperare il tuo portafoglio. L'hai trascritto?", + "seed_alert_back" : "Torna indietro", + "seed_alert_yes" : "Sì, l'ho fatto", + + "exchange_sync_alert_content" : "Gentilmente aspetta che il tuo portafoglio sia sincronizzato", + + "pre_seed_title" : "IMPORTANTE", + "pre_seed_description" : "Nella pagina seguente ti sarà mostrata una serie di parole ${words}. Questo è il tuo seme unico e privato ed è l'UNICO modo per recuperare il tuo portafoglio in caso di perdita o malfunzionamento. E' TUA responsabilità trascriverlo e conservarlo in un posto sicuro fuori dall'app Cake Wallet.", + "pre_seed_button_text" : "Ho capito. Mostrami il seme", + + "xmr_to_error" : "XMR.TO errore", + "xmr_to_error_description" : "Ammontare invalido. Il limite massimo è 8 cifre dopo il punto decimale", + + "provider_error" : "${provider} errore", + + "use_ssl" : "Usa SSL", + + "color_theme" : "Colore tema", + "light_theme" : "Bianco", + "bright_theme" : "Colorato", + "dark_theme" : "Scuro", + "enter_your_note" : "Inserisci la tua nota…", + "note_optional" : "Nota (opzionale)", + "note_tap_to_change" : "Nota (clicca per cambiare)", + "transaction_key" : "Chiave Transazione", + "confirmations" : "Conferme", + "recipient_address" : "Indirizzo di destinazione", + + "extra_id" : "Extra ID:", + "destination_tag" : "Tag destinazione:", + "memo" : "Memo:", + + "backup" : "Backup", + "change_password" : "Cambia password", + "backup_password" : "Backup password", + "write_down_backup_password" : "Gentilmente trascrivi la password del backup, che è usata per importare i tuoi file di backup.", + "export_backup" : "Esporta backup", + "save_backup_password" : "Gentilmente assicurati di aver salvato la password del tuo backup. Senza questa non sarai in grado di importare i tuoi file di backup.", + "backup_file" : "Backup file", + + "edit_backup_password" : "Modifica Password Backup", + "save_backup_password_alert" : "Salva password Backup", + "change_backup_password_alert" : "I precedenti file di backup non potranno essere importati con la nuova password di backup. La nuova password di backup verrà usata soltanto per i nuovi file di backup. Sei sicuro di voler cambiare la tua password di backup?", + + "enter_backup_password" : "Inserisci la password di backup qui", + "select_backup_file" : "Seleziona file di backup", + "import" : "Importa", + "please_select_backup_file" : "Gentilmente seleziona il file di backup e inserisci la password di backup.", + + "fixed_rate" : "Tasso fisso", + "fixed_rate_alert" : "Potrai inserire l'ammontare da ricevere quando il tasso è fisso. Vuoi cambiare alla modalità tasso fisso?", + + "xlm_extra_info" : "Gentilmente ricorda di indicare il Memo ID quando invii la transazione XLM per lo scambio", + "xrp_extra_info" : "Gentilmente ricorda di indicare il Tag di Destinazione quando invii una transazione XRP per lo scambio", + + "exchange_incorrect_current_wallet_for_xmr" : "Se vuoi scambiare XMR dal tuo saldo Cake Wallet Monero, gentilmente passa al tuo portafoglio Monero.", + "confirmed" : "Confermato", + "unconfirmed" : "Non confermato", + "displayable" : "Visualizzabile", + + "submit_request" : "invia una richiesta" +} \ No newline at end of file From b7cb5147e1f8188887d8de6178d2e830e2923fc8 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Mon, 26 Apr 2021 21:06:21 +0300 Subject: [PATCH 07/28] CAKE-303 | added buy button for xmr wallet and applied buy alert --- lib/src/screens/dashboard/dashboard_page.dart | 53 +++++++++++++------ res/values/strings_de.arb | 4 +- res/values/strings_en.arb | 4 +- res/values/strings_es.arb | 4 +- res/values/strings_hi.arb | 4 +- res/values/strings_ja.arb | 4 +- res/values/strings_ko.arb | 4 +- res/values/strings_nl.arb | 4 +- res/values/strings_pl.arb | 4 +- res/values/strings_pt.arb | 4 +- res/values/strings_ru.arb | 4 +- res/values/strings_uk.arb | 4 +- res/values/strings_zh.arb | 4 +- 13 files changed, 72 insertions(+), 29 deletions(-) diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 172483ed0..be540164e 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -1,7 +1,9 @@ import 'package:cake_wallet/entities/wallet_type.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/themes/theme_base.dart'; +import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; @@ -42,7 +44,7 @@ class DashboardPage extends BasePage { child: scaffold); @override - bool get resizeToAvoidBottomPadding => false; + bool get resizeToAvoidBottomInset => false; @override Widget get endDrawer => MenuWidget(walletViewModel); @@ -114,7 +116,7 @@ class DashboardPage extends BasePage { )), Container( padding: EdgeInsets.only(left: 45, right: 45, bottom: 24), - child: Observer(builder: (_) => Row( + child: Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ ActionButton( @@ -125,7 +127,7 @@ class DashboardPage extends BasePage { image: exchangeImage, title: S.of(context).exchange, route: Routes.exchange), - if (walletViewModel.type == WalletType.bitcoin) Observer( + Observer( builder: (_) => Stack( clipBehavior: Clip.none, alignment: Alignment.topCenter, @@ -143,23 +145,11 @@ class DashboardPage extends BasePage { title: S.of(context).buy, onClick: walletViewModel.isRunningWebView ? null - : () async { - try { - walletViewModel.isRunningWebView = true; - final url = - await walletViewModel.wyreViewModel.wyreUrl; - await Navigator.of(context) - .pushNamed(Routes.wyre, arguments: url); - walletViewModel.isRunningWebView = false; - } catch(e) { - print(e.toString()); - walletViewModel.isRunningWebView = false; - } - }) + : () async => await _onClickBuyButton(context)) ], )), ], - )), + ), ) ], )); @@ -176,4 +166,33 @@ class DashboardPage extends BasePage { _isEffectsInstalled = true; } + + Future _onClickBuyButton(BuildContext context) async { + final walletType = walletViewModel.type; + + switch (walletType) { + case WalletType.bitcoin: + try { + walletViewModel.isRunningWebView = true; + final url = await walletViewModel.wyreViewModel.wyreUrl; + await Navigator.of(context).pushNamed(Routes.wyre, arguments: url); + walletViewModel.isRunningWebView = false; + } catch(e) { + print(e.toString()); + walletViewModel.isRunningWebView = false; + } + break; + default: + await showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).buy, + alertContent: S.of(context).buy_alert_content, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + break; + } + } } diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 6d1d66b84..5ad965141 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Unbestätigt", "displayable" : "Anzeigebar", - "submit_request" : "Einen Antrag stellen" + "submit_request" : "Einen Antrag stellen", + + "buy_alert_content" : "Derzeit unterstützen wir nur den Kauf von Bitcoin. Um Bitcoin zu kaufen, erstellen Sie bitte Ihre Bitcoin-Brieftasche oder wechseln Sie zu dieser" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index b0d98b7c9..d7a9513ab 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Unconfirmed", "displayable" : "Displayable", - "submit_request" : "submit a request" + "submit_request" : "submit a request", + + "buy_alert_content" : "Currently we only support the purchase of Bitcoin. To buy Bitcoin, please create or switch to your Bitcoin wallet" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 190ad4304..d6a68c50d 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Inconfirmado", "displayable" : "Visualizable", - "submit_request" : "presentar una solicitud" + "submit_request" : "presentar una solicitud", + + "buy_alert_content" : "Actualmente solo apoyamos la compra de Bitcoin. Para comprar Bitcoin, cree o cambie a su billetera Bitcoin" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 6eac14e99..9998155f1 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -469,5 +469,7 @@ "unconfirmed" : "अपुष्ट", "displayable" : "प्रदर्शन योग्य", - "submit_request" : "एक अनुरोध सबमिट करें" + "submit_request" : "एक अनुरोध सबमिट करें", + + "buy_alert_content" : "वर्तमान में हम केवल बिटकॉइन की खरीद का समर्थन करते हैं। बिटकॉइन खरीदने के लिए, कृपया अपना बिटकॉइन वॉलेट बनाएं या स्विच करें" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 291d5afd3..c380d51a3 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -469,5 +469,7 @@ "unconfirmed" : "未確認", "displayable" : "表示可能", - "submit_request" : "リクエストを送信する" + "submit_request" : "リクエストを送信する", + + "buy_alert_content" : "現在、ビットコインの購入のみをサポートしています。 ビットコインを購入するには、ビットコインウォレットを作成するか切り替えてください" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 781df8d8a..09b6f427a 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -469,5 +469,7 @@ "unconfirmed" : "미확인", "displayable" : "표시 가능", - "submit_request" : "요청을 제출" + "submit_request" : "요청을 제출", + + "buy_alert_content" : "현재 우리는 비트 코인 구매 만 지원합니다. 비트 코인을 구매하려면 비트 코인 지갑을 생성하거나 전환하십시오" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 9a6183efb..81e599b49 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Niet bevestigd", "displayable" : "Weer te geven", - "submit_request" : "een verzoek indienen" + "submit_request" : "een verzoek indienen", + + "buy_alert_content" : "Momenteel ondersteunen we alleen de aankoop van Bitcoin. Om Bitcoin te kopen, moet u uw Bitcoin-portemonnee aanmaken of naar uw Bitcoin-portemonnee overschakelen" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 6db66958e..6e8ad95d7 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Niepotwierdzony", "displayable" : "Wyświetlane", - "submit_request" : "złożyć wniosek" + "submit_request" : "złożyć wniosek", + + "buy_alert_content" : "Obecnie obsługujemy tylko zakup Bitcoinów. Aby kupić Bitcoin, utwórz lub przełącz się na swój portfel Bitcoin" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 631be8f42..d8e480b94 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Não confirmado", "displayable" : "Exibível", - "submit_request" : "enviar um pedido" + "submit_request" : "enviar um pedido", + + "buy_alert_content" : "Atualmente, apoiamos apenas a compra de Bitcoin. Para comprar Bitcoin, crie ou mude para sua carteira Bitcoin" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 333a823d8..16c1188ad 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Неподтвержденный", "displayable" : "Отображаемый", - "submit_request" : "отправить запрос" + "submit_request" : "отправить запрос", + + "buy_alert_content" : "В настоящее время мы поддерживаем только покупку Bitcoin. Чтобы купить Bitcoin, создайте или переключитесь на ваш Bitcoin кошелек" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index cc10a2d89..1a2b53357 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -469,5 +469,7 @@ "unconfirmed" : "Непідтверджений", "displayable" : "Відображуваний", - "submit_request" : "надіслати запит" + "submit_request" : "надіслати запит", + + "buy_alert_content" : "На даний час ми підтримуємо тільки покупку Bitcoin. Щоб купити Bitcoin, будь ласка, створіть або переключіться на ваш Bitcoin гаманець" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 639babcbc..055706527 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -469,5 +469,7 @@ "unconfirmed" : "未经证实", "displayable" : "可显示", - "submit_request" : "提交請求" + "submit_request" : "提交請求", + + "buy_alert_content" : "目前,我們僅支持購買比特幣。 要購買比特幣,請創建或切換到您的比特幣錢包" } \ No newline at end of file From 73eb4d2a37da084b79e7f40df95e0ff048af434d Mon Sep 17 00:00:00 2001 From: Zy143L Date: Thu, 29 Apr 2021 11:06:41 +0800 Subject: [PATCH 08/28] fix --- res/values/strings_zh-CN.arb | 473 ----------------------------------- res/values/strings_zh.arb | 342 ++++++++++++------------- 2 files changed, 171 insertions(+), 644 deletions(-) delete mode 100644 res/values/strings_zh-CN.arb diff --git a/res/values/strings_zh-CN.arb b/res/values/strings_zh-CN.arb deleted file mode 100644 index 7b994647c..000000000 --- a/res/values/strings_zh-CN.arb +++ /dev/null @@ -1,473 +0,0 @@ -{ - "welcome" : "欢迎使用", - "cake_wallet" : "Cake Wallet", - "first_wallet_text" : "很棒的门罗币和比特币钱包", - "please_make_selection" : "请在下面进行选择 创建或恢复您的钱包.", - "create_new" : "创建新钱包", - "restore_wallet" : "恢复钱包", - - - "accounts" : "账户", - "edit" : "编辑", - "account" : "帐户", - "add" : "添加", - - - "address_book" : "地址簿", - "contact" : "联系", - "please_select" : "请选择:", - "cancel" : "取消", - "ok" : "确认", - "contact_name" : "联系人姓名", - "reset" : "重置", - "save" : "保存", - "address_remove_contact" : "刪除联系人", - "address_remove_content" : "您确定要刪除所选的联系人吗?", - - - "authenticated" : "已认证", - "authentication" : "认证方式", - "failed_authentication" : "身份验证失败. ${state_error}", - - - "wallet_menu" : "钱包菜单", - "Blocks_remaining" : "${status} 剩余的块", - "please_try_to_connect_to_another_node" : "请尝试连接到其他节点", - "xmr_hidden" : "隐藏", - "xmr_available_balance" : "可用余额 ", - "xmr_full_balance" : "全部余额", - "send" : "发送", - "receive" : "接收", - "transactions" : "交易情况", - "incoming" : "收到", - "outgoing" : "发送", - "transactions_by_date" : "按日期交易", - "trades" : "交易", - "filters" : "过滤", - "today" : "今天", - "yesterday" : "昨天", - "received" : "已收到", - "sent" : "已发送", - "pending" : " (待定)", - "rescan" : "重新扫描", - "reconnect" : "重新连接", - "wallets" : "钱包", - "show_seed" : "显示种子", - "show_keys" : "显示种子/密钥", - "address_book_menu" : "地址簿", - "reconnection" : "重新连接", - "reconnect_alert_text" : "您确定要重新连接吗?", - - - "exchange" : "兑换", - "clear" : "清空", - "refund_address" : "退款地址", - "change_exchange_provider" : "更改交易所", - "you_will_send" : "转换自", - "you_will_get" : "转换到", - "amount_is_guaranteed" : "保证收到的金额", - "amount_is_estimate" : "收款金额为估算值", - "powered_by" : "Powered by ${title}", - "error" : "错误", - "estimated" : "估计值", - "min_value" : "最低: ${value} ${currency}", - "max_value" : "最高: ${value} ${currency}", - "change_currency" : "更改币种", - - - "copy_id" : "复制ID", - "exchange_result_write_down_trade_id" : "请复制或写下交易编号以继续.", - "trade_id" : "交易编号:", - "copied_to_clipboard" : "复制到剪贴板", - "saved_the_trade_id" : "我已经保存了交易编号", - "fetching" : "正在获取", - "id" : "ID: ", - "amount" : "金额: ", - "payment_id" : "付款 ID: ", - "status" : "状态: ", - "offer_expires_in" : "优惠有效期至 ", - "trade_is_powered_by" : "该交易由 ${provider}", - "copy_address" : "复制地址", - "exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到下面显示的地址。 或者您可以从外部钱包发送到以下地址/ QR码。\n\n请按确认继续或返回以更改金额", - "exchange_result_description" : "您必須至少发送 ${fetchingLabel} ${from} 到下一页上显示的地址。 如果您发送的金额少于 ${fetchingLabel} ${from},则可能无法转换,因此无法退还。", - "exchange_result_write_down_ID" : "*请复制或写下您上面显示的ID.", - "confirm" : "确认", - "confirm_sending" : "确认发送", - "commit_transaction_amount_fee" : "提交交易\n金额: ${amount}\n手续费: ${fee}", - "sending" : "正在发送", - "transaction_sent" : "交易已发送", - "expired" : "已过期", - "time" : "${minutes}m ${seconds}s", - "send_xmr" : "发送 XMR", - "exchange_new_template" : "新模板", - - "faq" : "FAQ", - - - "enter_your_pin" : "输入密码", - "loading_your_wallet" : "加载您的钱包", - - - "new_wallet" : "新钱包", - "wallet_name" : "钱包名称", - "continue_text" : "继续", - "choose_wallet_currency" : "请选择钱包货币:", - - - "node_new" : "新节点", - "node_address" : "节点地址", - "node_port" : "节点端口", - "login" : "登录", - "password" : "密码", - "nodes" : "节点", - "node_reset_settings_title" : "重新设置", - "nodes_list_reset_to_default_message" : "您确定要将设置重设为默认值吗?", - "change_current_node" : "您确定将当前节点更改为 ${node}?", - "change" : "更改", - "remove_node" : "删除节点", - "remove_node_message" : "您确定要删除所选节点吗?", - "remove" : "去掉", - "delete" : "删除", - "add_new_node" : "添加新节点", - "change_current_node_title" : "更改当前节点", - "node_test" : "测试", - "node_connection_successful" : "连接成功", - "node_connection_failed" : "连接失敗", - "new_node_testing" : "新节点测试", - - - "use" : "使用 ", - "digit_pin" : "位 PIN", - - - "share_address" : "分享地址", - "receive_amount" : "金额", - "subaddresses" : "子地址", - "addresses" : "地址", - "scan_qr_code" : "扫描二维码获取地址", - "rename" : "重命名", - "choose_account" : "选择账户", - "create_new_account" : "建立新账户", - "accounts_subaddresses" : "账户和子地址", - - - "restore_restore_wallet" : "恢复钱包", - "restore_title_from_seed_keys" : "从种子/密钥还原", - "restore_description_from_seed_keys" : "从保存到安全地方的种子/钥匙取回钱包", - "restore_next" : "下一个", - "restore_title_from_backup" : "从备份文件还原", - "restore_description_from_backup" : "您可以从还原整个Cake Wallet应用您的备份文件", - "restore_seed_keys_restore" : "种子/密钥还原", - "restore_title_from_seed" : "从种子还原", - "restore_description_from_seed" : "从25个字中恢复您的钱包或13个字的组合码", - "restore_title_from_keys" : "从密钥还原", - "restore_description_from_keys" : "使用私钥恢复钱包", - "restore_wallet_name" : "钱包名称", - "restore_address" : "地址", - "restore_view_key_private" : "View私钥", - "restore_spend_key_private" : "Spend私钥", - "restore_recover" : "恢复", - "restore_wallet_restore_description" : "钱包还原说明", - "restore_new_seed" : "新种子", - "restore_active_seed" : "活性種子", - "restore_bitcoin_description_from_seed" : "从12个文字的组成码恢复您的钱包", - "restore_bitcoin_description_from_keys" : "从私钥中生成的WIF字符串恢复您钱包", - "restore_bitcoin_title_from_keys" : "从WIF还原", - "restore_from_date_or_blockheight" : "请输入您创建这个钱包前几天的日期。或者如果您知道区块高度,请输入区块高度", - - - "seed_reminder" : "请记下这些内容,以防丟失或数据清除", - "seed_title" : "种子", - "seed_share" : "分享种子", - "copy" : "复制", - - - "seed_language_choose" : "请选择种子语言:", - "seed_choose" : "选择种子语言", - "seed_language_next" : "下一个", - "seed_language_english" : "英语", - "seed_language_chinese" : "中文", - "seed_language_dutch" : "荷兰语", - "seed_language_german" : "德语", - "seed_language_japanese" : "日语", - "seed_language_portuguese" : "葡萄牙语", - "seed_language_russian" : "俄语", - "seed_language_spanish" : "西班牙语", - - - "send_title" : "发送", - "send_your_wallet" : "你的钱包", - "send_address" : "${cryptoCurrency} 地址", - "send_payment_id" : "付款编号 (可选的)", - "all" : "所有", - "send_error_minimum_value" : "最小金额为0.01", - "send_error_currency" : "货币只能包含数字", - "send_estimated_fee" : "预估费用:", - "send_priority" : "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整", - "send_creating_transaction" : "创建交易", - "send_templates" : "模板", - "send_new" : "新建", - "send_amount" : "金额:", - "send_fee" : "手续费:", - "send_name" : "名称", - "send_got_it" : "明白", - "send_sending" : "正在发送...", - "send_success" : "您的${crypto}已成功发送", - - - "settings_title" : "设定值", - "settings_nodes" : "节点数", - "settings_current_node" : "当前节点", - "settings_wallets" : "钱包", - "settings_display_balance_as" : "将余额显示为", - "settings_currency" : "货币", - "settings_fee_priority" : "交易优先级", - "settings_save_recipient_address" : "保存收件人地址", - "settings_personal" : "个人", - "settings_change_pin" : "更改密码", - "settings_change_language" : "修改语言", - "settings_allow_biometrical_authentication" : "允许生物识别认证", - "settings_dark_mode" : "黑暗模式", - "settings_transactions" : "交易情况", - "settings_trades" : "交易", - "settings_display_on_dashboard_list" : "显示在仪表板上", - "settings_all" : "所有", - "settings_only_trades" : "只交易", - "settings_only_transactions" : "仅交易", - "settings_none" : "没有", - "settings_support" : "帮助", - "settings_terms_and_conditions" : "条款和条件", - "pin_is_incorrect" : "PIN码不正确", - - - "setup_pin" : "设定PIN码", - "enter_your_pin_again" : "再次输入您的PIN码", - "setup_successful" : "您的PIN码已成功设置!", - - - "wallet_keys" : "钱包种子/密钥", - "wallet_seed" : "钱包种子", - "private_key" : "私钥", - "public_key" : "公钥", - "view_key_private" : "View 密钥(私钥)", - "view_key_public" : "View 密钥(公钥)", - "spend_key_private" : "Spend 密钥 (私钥)", - "spend_key_public" : "Spend 密钥 (公钥)", - "copied_key_to_clipboard" : "复制 ${key} 到剪贴板", - - - "new_subaddress_title" : "新地址", - "new_subaddress_label_name" : "标签名称", - "new_subaddress_create" : "创建", - - - "subaddress_title" : "子地址列表", - - - "trade_details_title" : "交易明细", - "trade_details_id" : "ID", - "trade_details_state" : "条件", - "trade_details_fetching" : "正在取得", - "trade_details_provider" : "提供者", - "trade_details_created_at" : "创建于", - "trade_details_pair" : "对", - "trade_details_copied" : "${title} 复制到剪贴板", - - - "trade_history_title" : "交易历史", - - - "transaction_details_title" : "交易明细", - "transaction_details_transaction_id" : "交易编号", - "transaction_details_date" : "日期", - "transaction_details_height" : "区块高度", - "transaction_details_amount" : "金额", - "transaction_details_fee" : "手续费", - "transaction_details_copied" : "${title} 复制到剪贴板", - "transaction_details_recipient_address" : "收件人地址", - - - "wallet_list_title" : "Monero 钱包", - "wallet_list_create_new_wallet" : "创建新钱包", - "wallet_list_restore_wallet" : "恢复钱包", - "wallet_list_load_wallet" : "加载钱包", - "wallet_list_loading_wallet" : "载入中 ${wallet_name} 钱包", - "wallet_list_failed_to_load" : "加载失败 ${wallet_name} 钱包. ${error}", - "wallet_list_removing_wallet" : "删除 ${wallet_name} 钱包", - "wallet_list_failed_to_remove" : "删除失败 ${wallet_name} 钱包. ${error}", - - - "widgets_address" : "地址", - "widgets_restore_from_blockheight" : "从块高还原", - "widgets_restore_from_date" : "从日期还原", - "widgets_or" : "或者", - "widgets_seed" : "种子", - - - "router_no_route" : "未定义路线 ${name}", - - - "error_text_account_name" : "帐户名称只能包含字母数字\n且必须介于1到15个字符之间", - "error_text_contact_name" : "联系人姓名不能包含`,' \" 符号\n并且必须介于1到32个字符之间", - "error_text_address" : "钱包地址必须与类型对应\n加密货币", - "error_text_node_address" : "请输入一个IPv4地址", - "error_text_node_port" : "节点端口只能包含0到65535之间的数字", - "error_text_payment_id" : "付款ID只能包含16到64个字符(十六进制)", - "error_text_xmr" : "XMR值不能超过可用余额.\n小数位数必须小于或等于12", - "error_text_fiat" : "金额不能超过可用余额.\n小数位数必须小于或等于2", - "error_text_subaddress_name" : "子地址名称不能包含`,' \" 符号\n并且必须在1到20个字符之间", - "error_text_amount" : "金额只能包含数字", - "error_text_wallet_name" : "钱包名称只能包含字母,数字\n且必须介于1到15个字符之间", - "error_text_keys" : "钱包密钥只能包含16个字符的十六进制字符", - "error_text_crypto_currency" : "小数位数\n必须小于或等于12", - "error_text_minimal_limit" : "未创建 ${provider} 交易。 金额小于最小值:${min} ${currency}", - "error_text_maximum_limit" : "未创建 ${provider} 交易。 金额大于最大值:${max} ${currency}", - "error_text_limits_loading_failed" : "未创建 ${provider} 交易。 限制加载失敗", - "error_text_template" : "模板名称和地址不能包含`,' \" 符号\n并且必须在1到106个字符之间", - - - "auth_store_ban_timeout" : "禁止超时", - "auth_store_banned_for" : "禁止 ", - "auth_store_banned_minutes" : " 分钟", - "auth_store_incorrect_password" : "PIN码错误", - "wallet_store_monero_wallet" : "Monero 钱包", - "wallet_restoration_store_incorrect_seed_length" : "种子长度错误", - - - "full_balance" : "全部余额", - "available_balance" : "可用余额", - "hidden_balance" : "隐藏余额", - - - "sync_status_syncronizing" : "正在同步", - "sync_status_syncronized" : "已同步", - "sync_status_not_connected" : "未连接", - "sync_status_starting_sync" : "开始同步", - "sync_status_failed_connect" : "断线", - "sync_status_connecting" : "连接中", - "sync_status_connected" : "已连接", - - - "transaction_priority_slow" : "慢速", - "transaction_priority_regular" : "常规", - "transaction_priority_medium" : "中等", - "transaction_priority_fast" : "快速", - "transaction_priority_fastest" : "最快", - - - "trade_for_not_created" : "交易 ${title} 未创建.", - "trade_not_created" : "未建立交易.", - "trade_id_not_found" : "交易方式 ${tradeId} 的 ${title} 未找到.", - "trade_not_found" : "找不到交易.", - - - "trade_state_pending" : "待定", - "trade_state_confirming" : "确认中", - "trade_state_trading" : "交易", - "trade_state_traded" : "已交易", - "trade_state_complete" : "完成", - "trade_state_to_be_created" : "待创建", - "trade_state_unpaid" : "未付", - "trade_state_underpaid" : "支付不足", - "trade_state_paid_unconfirmed" : "付费未确认", - "trade_state_paid" : "已付费", - "trade_state_btc_sent" : "已发送", - "trade_state_timeout" : "超时", - "trade_state_created" : "已建立", - "trade_state_finished" : "已完成", - - "change_language" : "修改语言", - "change_language_to" : "修改语言为 ${language}?", - - "paste" : "粘贴", - "restore_from_seed_placeholder" : "请在此处输入或粘贴您的代码短语", - "add_new_word" : "添加新词", - "incorrect_seed" : "输入的文字无效。", - - "biometric_auth_reason" : "扫描指纹进行身份认证", - "version" : "版本 ${currentVersion}", - - "openalias_alert_title" : "检测到XMR收件人", - "openalias_alert_content" : "您将汇款至\n${recipient_name}", - - "card_address" : "地址:", - "buy" : "购买", - - "placeholder_transactions" : "您的交易将显示在这里", - "placeholder_contacts" : "您的联系人将显示在这里", - - "template" : "模板", - "confirm_delete_template" : "此操作将刪除此模板。 确定吗?", - "confirm_delete_wallet" : "此操作将刪除此钱包。确定吗?", - - "picker_description" : "要选择ChangeNOW或MorphToken,请先更改您的交易币", - - "change_wallet_alert_title" : "更换当前钱包", - "change_wallet_alert_content" : "您是否想将当前钱包改为 ${wallet_name}?", - - "creating_new_wallet" : "创建新钱包", - "creating_new_wallet_error" : "错误: ${description}", - - "seed_alert_title" : "注意", - "seed_alert_content" : "种子是恢复钱包的唯一方法。 记住了吗?", - "seed_alert_back" : "返回", - "seed_alert_yes" : "确定", - - "exchange_sync_alert_content" : "请等待,直到您的钱包同步", - - "pre_seed_title" : "重要", - "pre_seed_description" : "在下一页上,您将看到${words}个文字。 这是您独有的种子,是丟失或出现故障时恢复钱包的唯一方法。 您有必须将其写下并储存在Cake Wallet应用程序以外的安全地方。", - "pre_seed_button_text" : "我明白。 查看种子", - - "xmr_to_error" : "XMR.TO 错误", - "xmr_to_error_description" : "无效的金额。 小数点后最多8位数字", - - "provider_error" : "${provider} 错误", - - "use_ssl" : "使用SSL", - - "color_theme" : "主題", - "light_theme" : "艳丽", - "bright_theme" : "明亮", - "dark_theme" : "黑暗", - "enter_your_note" : "输入您的笔记...", - "note_optional" : "注意(可选)", - "note_tap_to_change" : "注意(轻按即可更改)", - "transaction_key" : "交易密码", - "confirmations" : "确认", - "recipient_address" : "收件人地址", - - "extra_id" : "额外ID:", - "destination_tag" : "目标Tag:", - "memo" : "备忘录:", - - "backup" : "备份", - "change_password" : "更改密码", - "backup_password" : "备份密码", - "write_down_backup_password" : "请写下您的备份密码,该密码用于导入备份文件。", - "export_backup" : "导出备份", - "save_backup_password" : "请确保您已保存备份密码。 沒有它,您将无法导入备份文件。", - "backup_file" : "备份文件", - - "edit_backup_password" : "编辑备份密码", - "save_backup_password_alert" : "保存备份密码", - "change_backup_password_alert" : "您以前的备份文件将无法使用新的备份密码導入。 新的备份密码将仅用于新的备份文件。 您确定要更改备份密码吗?", - - "enter_backup_password" : "在此处输入備用密码", - "select_backup_file" : "选择备份文件", - "import" : "导入", - "please_select_backup_file" : "请选择备份文件,然后输入备份密码。", - - "fixed_rate" : "固定汇率", - "fixed_rate_alert" : "选中固定汇率模式后,您将可以输入接收金额。 您要切换到固定汇率模式吗?", - - "xlm_extra_info" : "发送用于交换的XLM交易时,请不要忘记指定备忘录ID", - "xrp_extra_info" : "发送用于交换的XRP交易时,请不要忘记指定目标Tag", - - "exchange_incorrect_current_wallet_for_xmr" : "如果要从Cake Wallet Monero余额中兑换XMR,请先切换到Monero钱包。", - "confirmed" : "已确认", - "unconfirmed" : "未经证实", - "displayable" : "可显示", - - "submit_request" : "提交请求" -} \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 639babcbc..7b994647c 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -1,28 +1,28 @@ { - "welcome" : "歡迎來到", + "welcome" : "欢迎使用", "cake_wallet" : "Cake Wallet", - "first_wallet_text" : "很棒的Monero和比特幣錢包", + "first_wallet_text" : "很棒的门罗币和比特币钱包", "please_make_selection" : "请在下面进行选择 创建或恢复您的钱包.", "create_new" : "创建新钱包", "restore_wallet" : "恢复钱包", - "accounts" : "帐目", + "accounts" : "账户", "edit" : "编辑", "account" : "帐户", - "add" : "加", + "add" : "添加", "address_book" : "地址簿", "contact" : "联系", "please_select" : "请选择:", "cancel" : "取消", - "ok" : "好", + "ok" : "确认", "contact_name" : "联系人姓名", - "reset" : "重启", + "reset" : "重置", "save" : "保存", - "address_remove_contact" : "刪除聯繫人", - "address_remove_content" : "您確定要刪除所選的聯繫人嗎?", + "address_remove_contact" : "刪除联系人", + "address_remove_content" : "您确定要刪除所选的联系人吗?", "authenticated" : "已认证", @@ -32,18 +32,18 @@ "wallet_menu" : "钱包菜单", "Blocks_remaining" : "${status} 剩余的块", - "please_try_to_connect_to_another_node" : "请尝试连接到另一个节点", - "xmr_hidden" : "隱", + "please_try_to_connect_to_another_node" : "请尝试连接到其他节点", + "xmr_hidden" : "隐藏", "xmr_available_balance" : "可用余额 ", "xmr_full_balance" : "全部余额", "send" : "发送", "receive" : "接收", - "transactions" : "交易次数", - "incoming" : "传入", - "outgoing" : "外向", + "transactions" : "交易情况", + "incoming" : "收到", + "outgoing" : "发送", "transactions_by_date" : "按日期交易", "trades" : "交易", - "filters" : "過濾", + "filters" : "过滤", "today" : "今天", "yesterday" : "昨天", "received" : "已收到", @@ -51,67 +51,67 @@ "pending" : " (待定)", "rescan" : "重新扫描", "reconnect" : "重新连接", - "wallets" : "皮夹", + "wallets" : "钱包", "show_seed" : "显示种子", - "show_keys" : "顯示種子/密鑰", + "show_keys" : "显示种子/密钥", "address_book_menu" : "地址簿", - "reconnection" : "重新连线", + "reconnection" : "重新连接", "reconnect_alert_text" : "您确定要重新连接吗?", - "exchange" : "交换", - "clear" : "明确", + "exchange" : "兑换", + "clear" : "清空", "refund_address" : "退款地址", - "change_exchange_provider" : "更改交易所提供商", - "you_will_send" : "從轉換", - "you_will_get" : "轉換成", - "amount_is_guaranteed" : "接收金額有保證", + "change_exchange_provider" : "更改交易所", + "you_will_send" : "转换自", + "you_will_get" : "转换到", + "amount_is_guaranteed" : "保证收到的金额", "amount_is_estimate" : "收款金额为估算值", - "powered_by" : "供电 ${title}", + "powered_by" : "Powered by ${title}", "error" : "错误", - "estimated" : "估计的", - "min_value" : "敏: ${value} ${currency}", + "estimated" : "估计值", + "min_value" : "最低: ${value} ${currency}", "max_value" : "最高: ${value} ${currency}", "change_currency" : "更改币种", - "copy_id" : "复印ID", + "copy_id" : "复制ID", "exchange_result_write_down_trade_id" : "请复制或写下交易编号以继续.", - "trade_id" : "贸易编号:", + "trade_id" : "交易编号:", "copied_to_clipboard" : "复制到剪贴板", - "saved_the_trade_id" : "我已经保存了交易ID", - "fetching" : "正在取得", + "saved_the_trade_id" : "我已经保存了交易编号", + "fetching" : "正在获取", "id" : "ID: ", - "amount" : "量: ", + "amount" : "金额: ", "payment_id" : "付款 ID: ", "status" : "状态: ", "offer_expires_in" : "优惠有效期至 ", "trade_is_powered_by" : "该交易由 ${provider}", "copy_address" : "复制地址", - "exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到下面顯示的地址。 或者您可以從外部錢包發送到以下地址/ QR码。\n\n请按确认继续或返回以更改金额", - "exchange_result_description" : "您必須至少發送 ${fetchingLabel} ${from} 到下一頁上顯示的地址。 如果您發送的金額少於 ${fetchingLabel} ${from},則可能無法轉換,因此無法退還。", + "exchange_result_confirm" : "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到下面显示的地址。 或者您可以从外部钱包发送到以下地址/ QR码。\n\n请按确认继续或返回以更改金额", + "exchange_result_description" : "您必須至少发送 ${fetchingLabel} ${from} 到下一页上显示的地址。 如果您发送的金额少于 ${fetchingLabel} ${from},则可能无法转换,因此无法退还。", "exchange_result_write_down_ID" : "*请复制或写下您上面显示的ID.", "confirm" : "确认", "confirm_sending" : "确认发送", - "commit_transaction_amount_fee" : "提交交易\n量: ${amount}\nFee: ${fee}", + "commit_transaction_amount_fee" : "提交交易\n金额: ${amount}\n手续费: ${fee}", "sending" : "正在发送", "transaction_sent" : "交易已发送", "expired" : "已过期", "time" : "${minutes}m ${seconds}s", "send_xmr" : "发送 XMR", - "exchange_new_template" : "新範本", + "exchange_new_template" : "新模板", "faq" : "FAQ", "enter_your_pin" : "输入密码", - "loading_your_wallet" : "装钱包", + "loading_your_wallet" : "加载您的钱包", "new_wallet" : "新钱包", "wallet_name" : "钱包名称", "continue_text" : "继续", - "choose_wallet_currency" : "請選擇錢包貨幣:", + "choose_wallet_currency" : "请选择钱包货币:", "node_new" : "新节点", @@ -128,27 +128,27 @@ "remove_node_message" : "您确定要删除所选节点吗?", "remove" : "去掉", "delete" : "删除", - "add_new_node" : "添加新節點", - "change_current_node_title" : "更改當前節點", - "node_test" : "測試", - "node_connection_successful" : "連接成功", - "node_connection_failed" : "連接失敗", - "new_node_testing" : "新節點測試", + "add_new_node" : "添加新节点", + "change_current_node_title" : "更改当前节点", + "node_test" : "测试", + "node_connection_successful" : "连接成功", + "node_connection_failed" : "连接失敗", + "new_node_testing" : "新节点测试", - "use" : "採用 ", - "digit_pin" : "数字别针", + "use" : "使用 ", + "digit_pin" : "位 PIN", "share_address" : "分享地址", - "receive_amount" : "量", + "receive_amount" : "金额", "subaddresses" : "子地址", "addresses" : "地址", - "scan_qr_code" : "掃描二維碼獲取地址", - "rename" : "改名", - "choose_account" : "選擇帳號", - "create_new_account" : "建立新帳戶", - "accounts_subaddresses" : "帳戶和子地址", + "scan_qr_code" : "扫描二维码获取地址", + "rename" : "重命名", + "choose_account" : "选择账户", + "create_new_account" : "建立新账户", + "accounts_subaddresses" : "账户和子地址", "restore_restore_wallet" : "恢复钱包", @@ -161,41 +161,41 @@ "restore_title_from_seed" : "从种子还原", "restore_description_from_seed" : "从25个字中恢复您的钱包或13个字的组合码", "restore_title_from_keys" : "从密钥还原", - "restore_description_from_keys" : "R从生成的电子钱包从您的私钥中保存的击键", + "restore_description_from_keys" : "使用私钥恢复钱包", "restore_wallet_name" : "钱包名称", "restore_address" : "地址", - "restore_view_key_private" : "查看金钥 (私人的)", - "restore_spend_key_private" : "支出金钥 (私人的)", + "restore_view_key_private" : "View私钥", + "restore_spend_key_private" : "Spend私钥", "restore_recover" : "恢复", "restore_wallet_restore_description" : "钱包还原说明", - "restore_new_seed" : "新種子", + "restore_new_seed" : "新种子", "restore_active_seed" : "活性種子", - "restore_bitcoin_description_from_seed" : "從12個單詞的組合碼恢復您的錢包", - "restore_bitcoin_description_from_keys" : "從私鑰中生成的WIF字符串還原您的錢包", - "restore_bitcoin_title_from_keys" : "從WIF還原", - "restore_from_date_or_blockheight" : "請在創建此錢包之前幾天輸入一個日期。 或者,如果您知道塊高,請改為輸入", + "restore_bitcoin_description_from_seed" : "从12个文字的组成码恢复您的钱包", + "restore_bitcoin_description_from_keys" : "从私钥中生成的WIF字符串恢复您钱包", + "restore_bitcoin_title_from_keys" : "从WIF还原", + "restore_from_date_or_blockheight" : "请输入您创建这个钱包前几天的日期。或者如果您知道区块高度,请输入区块高度", - "seed_reminder" : "請寫下這些,以防丟失或擦拭手機", + "seed_reminder" : "请记下这些内容,以防丟失或数据清除", "seed_title" : "种子", "seed_share" : "分享种子", "copy" : "复制", - "seed_language_choose" : "請選擇種子語言:", - "seed_choose" : "選擇種子語言", + "seed_language_choose" : "请选择种子语言:", + "seed_choose" : "选择种子语言", "seed_language_next" : "下一个", - "seed_language_english" : "英語", + "seed_language_english" : "英语", "seed_language_chinese" : "中文", - "seed_language_dutch" : "荷蘭人", - "seed_language_german" : "德語", - "seed_language_japanese" : "日本", - "seed_language_portuguese" : "葡萄牙語", - "seed_language_russian" : "俄語", - "seed_language_spanish" : "西班牙文", + "seed_language_dutch" : "荷兰语", + "seed_language_german" : "德语", + "seed_language_japanese" : "日语", + "seed_language_portuguese" : "葡萄牙语", + "seed_language_russian" : "俄语", + "seed_language_spanish" : "西班牙语", - "send_title" : "發送", + "send_title" : "发送", "send_your_wallet" : "你的钱包", "send_address" : "${cryptoCurrency} 地址", "send_payment_id" : "付款编号 (可选的)", @@ -205,37 +205,37 @@ "send_estimated_fee" : "预估费用:", "send_priority" : "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整", "send_creating_transaction" : "创建交易", - "send_templates" : "範本", - "send_new" : "新", - "send_amount" : "量:", - "send_fee" : "費用:", - "send_name" : "名稱", - "send_got_it" : "得到它了", - "send_sending" : "正在發送...", - "send_success" : "你${crypto}已成功發送", + "send_templates" : "模板", + "send_new" : "新建", + "send_amount" : "金额:", + "send_fee" : "手续费:", + "send_name" : "名称", + "send_got_it" : "明白", + "send_sending" : "正在发送...", + "send_success" : "您的${crypto}已成功发送", "settings_title" : "设定值", "settings_nodes" : "节点数", "settings_current_node" : "当前节点", - "settings_wallets" : "皮夹", + "settings_wallets" : "钱包", "settings_display_balance_as" : "将余额显示为", "settings_currency" : "货币", - "settings_fee_priority" : "费用优先", + "settings_fee_priority" : "交易优先级", "settings_save_recipient_address" : "保存收件人地址", "settings_personal" : "个人", "settings_change_pin" : "更改密码", - "settings_change_language" : "改变语言", - "settings_allow_biometrical_authentication" : "允许生物特征认证", - "settings_dark_mode" : "暗模式", - "settings_transactions" : "交易次数", + "settings_change_language" : "修改语言", + "settings_allow_biometrical_authentication" : "允许生物识别认证", + "settings_dark_mode" : "黑暗模式", + "settings_transactions" : "交易情况", "settings_trades" : "交易", "settings_display_on_dashboard_list" : "显示在仪表板上", "settings_all" : "所有", "settings_only_trades" : "只交易", "settings_only_transactions" : "仅交易", "settings_none" : "没有", - "settings_support" : "支持", + "settings_support" : "帮助", "settings_terms_and_conditions" : "条款和条件", "pin_is_incorrect" : "PIN码不正确", @@ -245,14 +245,14 @@ "setup_successful" : "您的PIN码已成功设置!", - "wallet_keys" : "錢包種子/鑰匙", - "wallet_seed" : "錢包種子", - "private_key" : "私鑰", - "public_key" : "公鑰", - "view_key_private" : "查看金钥 (私人的)", - "view_key_public" : "查看金钥 (public)", - "spend_key_private" : "支出金钥 (私人的)", - "spend_key_public" : "支出金钥 (public)", + "wallet_keys" : "钱包种子/密钥", + "wallet_seed" : "钱包种子", + "private_key" : "私钥", + "public_key" : "公钥", + "view_key_private" : "View 密钥(私钥)", + "view_key_public" : "View 密钥(公钥)", + "spend_key_private" : "Spend 密钥 (私钥)", + "spend_key_public" : "Spend 密钥 (公钥)", "copied_key_to_clipboard" : "复制 ${key} 到剪贴板", @@ -261,7 +261,7 @@ "new_subaddress_create" : "创建", - "subaddress_title" : "子地址清单", + "subaddress_title" : "子地址列表", "trade_details_title" : "交易明细", @@ -280,9 +280,9 @@ "transaction_details_title" : "交易明细", "transaction_details_transaction_id" : "交易编号", "transaction_details_date" : "日期", - "transaction_details_height" : "高度", - "transaction_details_amount" : "量", - "transaction_details_fee" : "費用", + "transaction_details_height" : "区块高度", + "transaction_details_amount" : "金额", + "transaction_details_fee" : "手续费", "transaction_details_copied" : "${title} 复制到剪贴板", "transaction_details_recipient_address" : "收件人地址", @@ -290,17 +290,17 @@ "wallet_list_title" : "Monero 钱包", "wallet_list_create_new_wallet" : "创建新钱包", "wallet_list_restore_wallet" : "恢复钱包", - "wallet_list_load_wallet" : "装入钱包", + "wallet_list_load_wallet" : "加载钱包", "wallet_list_loading_wallet" : "载入中 ${wallet_name} 钱包", "wallet_list_failed_to_load" : "加载失败 ${wallet_name} 钱包. ${error}", - "wallet_list_removing_wallet" : "拆下 ${wallet_name} 钱包", + "wallet_list_removing_wallet" : "删除 ${wallet_name} 钱包", "wallet_list_failed_to_remove" : "删除失败 ${wallet_name} 钱包. ${error}", "widgets_address" : "地址", "widgets_restore_from_blockheight" : "从块高还原", "widgets_restore_from_date" : "从日期还原", - "widgets_or" : "要么", + "widgets_or" : "或者", "widgets_seed" : "种子", @@ -310,7 +310,7 @@ "error_text_account_name" : "帐户名称只能包含字母数字\n且必须介于1到15个字符之间", "error_text_contact_name" : "联系人姓名不能包含`,' \" 符号\n并且必须介于1到32个字符之间", "error_text_address" : "钱包地址必须与类型对应\n加密货币", - "error_text_node_address" : "请输入一个iPv4地址", + "error_text_node_address" : "请输入一个IPv4地址", "error_text_node_port" : "节点端口只能包含0到65535之间的数字", "error_text_payment_id" : "付款ID只能包含16到64个字符(十六进制)", "error_text_xmr" : "XMR值不能超过可用余额.\n小数位数必须小于或等于12", @@ -320,10 +320,10 @@ "error_text_wallet_name" : "钱包名称只能包含字母,数字\n且必须介于1到15个字符之间", "error_text_keys" : "钱包密钥只能包含16个字符的十六进制字符", "error_text_crypto_currency" : "小数位数\n必须小于或等于12", - "error_text_minimal_limit" : "未創建 ${provider} 交易。 金額少於最小值:${min} ${currency}", - "error_text_maximum_limit" : "未創建 ${provider} 交易。 金額大於最大值:${max} ${currency}", - "error_text_limits_loading_failed" : "未創建 ${provider} 交易。 限制加載失敗", - "error_text_template" : "模板名稱和地址不能包含`,' \" 符号\n并且必须在1到106个字符之间", + "error_text_minimal_limit" : "未创建 ${provider} 交易。 金额小于最小值:${min} ${currency}", + "error_text_maximum_limit" : "未创建 ${provider} 交易。 金额大于最大值:${max} ${currency}", + "error_text_limits_loading_failed" : "未创建 ${provider} 交易。 限制加载失敗", + "error_text_template" : "模板名称和地址不能包含`,' \" 符号\n并且必须在1到106个字符之间", "auth_store_ban_timeout" : "禁止超时", @@ -339,32 +339,32 @@ "hidden_balance" : "隐藏余额", - "sync_status_syncronizing" : "同步化", + "sync_status_syncronizing" : "正在同步", "sync_status_syncronized" : "已同步", "sync_status_not_connected" : "未连接", "sync_status_starting_sync" : "开始同步", - "sync_status_failed_connect" : "斷線", + "sync_status_failed_connect" : "断线", "sync_status_connecting" : "连接中", - "sync_status_connected" : "连接的", + "sync_status_connected" : "已连接", - "transaction_priority_slow" : "慢", - "transaction_priority_regular" : "定期", - "transaction_priority_medium" : "介质", + "transaction_priority_slow" : "慢速", + "transaction_priority_regular" : "常规", + "transaction_priority_medium" : "中等", "transaction_priority_fast" : "快速", - "transaction_priority_fastest" : "最快的", + "transaction_priority_fastest" : "最快", "trade_for_not_created" : "交易 ${title} 未创建.", "trade_not_created" : "未建立交易.", - "trade_id_not_found" : "贸易方式 ${tradeId} 的 ${title} 未找到.", + "trade_id_not_found" : "交易方式 ${tradeId} 的 ${title} 未找到.", "trade_not_found" : "找不到交易.", "trade_state_pending" : "待定", "trade_state_confirming" : "确认中", - "trade_state_trading" : "贸易", - "trade_state_traded" : "交易", + "trade_state_trading" : "交易", + "trade_state_traded" : "已交易", "trade_state_complete" : "完成", "trade_state_to_be_created" : "待创建", "trade_state_unpaid" : "未付", @@ -376,98 +376,98 @@ "trade_state_created" : "已建立", "trade_state_finished" : "已完成", - "change_language" : "改變語言", - "change_language_to" : "將語言更改為 ${language}?", + "change_language" : "修改语言", + "change_language_to" : "修改语言为 ${language}?", - "paste" : "糊", + "paste" : "粘贴", "restore_from_seed_placeholder" : "请在此处输入或粘贴您的代码短语", "add_new_word" : "添加新词", "incorrect_seed" : "输入的文字无效。", - "biometric_auth_reason" : "掃描指紋以進行身份驗證", - "version" : "版 ${currentVersion}", + "biometric_auth_reason" : "扫描指纹进行身份认证", + "version" : "版本 ${currentVersion}", - "openalias_alert_title" : "檢測到XMR收件人", - "openalias_alert_content" : "您將匯款至\n${recipient_name}", + "openalias_alert_title" : "检测到XMR收件人", + "openalias_alert_content" : "您将汇款至\n${recipient_name}", "card_address" : "地址:", - "buy" : "購買", + "buy" : "购买", - "placeholder_transactions" : "您的交易將顯示在這裡", - "placeholder_contacts" : "您的聯繫人將顯示在這裡", + "placeholder_transactions" : "您的交易将显示在这里", + "placeholder_contacts" : "您的联系人将显示在这里", "template" : "模板", - "confirm_delete_template" : "此操作將刪除此模板。 你想繼續嗎?", - "confirm_delete_wallet" : "此操作將刪除此錢包。 你想繼續嗎?", + "confirm_delete_template" : "此操作将刪除此模板。 确定吗?", + "confirm_delete_wallet" : "此操作将刪除此钱包。确定吗?", - "picker_description" : "要選擇ChangeNOW或MorphToken,請先更改您的交易對", + "picker_description" : "要选择ChangeNOW或MorphToken,请先更改您的交易币", - "change_wallet_alert_title" : "更換當前錢包", - "change_wallet_alert_content" : "您要將當前的錢包更改為 ${wallet_name}?", + "change_wallet_alert_title" : "更换当前钱包", + "change_wallet_alert_content" : "您是否想将当前钱包改为 ${wallet_name}?", - "creating_new_wallet" : "創建新錢包", - "creating_new_wallet_error" : "錯誤: ${description}", + "creating_new_wallet" : "创建新钱包", + "creating_new_wallet_error" : "错误: ${description}", "seed_alert_title" : "注意", - "seed_alert_content" : "種子是恢復錢包的唯一方法。 你寫下來了嗎?", - "seed_alert_back" : "回去", - "seed_alert_yes" : "是的,我有", + "seed_alert_content" : "种子是恢复钱包的唯一方法。 记住了吗?", + "seed_alert_back" : "返回", + "seed_alert_yes" : "确定", - "exchange_sync_alert_content" : "請等待,直到您的錢包同步", + "exchange_sync_alert_content" : "请等待,直到您的钱包同步", "pre_seed_title" : "重要", - "pre_seed_description" : "在下一頁上,您將看到一系列${words}個單詞。 這是您獨特的私人種子,是丟失或出現故障時恢復錢包的唯一方法。 您有責任將其寫下並存儲在Cake Wallet應用程序外部的安全地方。", - "pre_seed_button_text" : "我明白。 給我看我的種子", + "pre_seed_description" : "在下一页上,您将看到${words}个文字。 这是您独有的种子,是丟失或出现故障时恢复钱包的唯一方法。 您有必须将其写下并储存在Cake Wallet应用程序以外的安全地方。", + "pre_seed_button_text" : "我明白。 查看种子", - "xmr_to_error" : "XMR.TO錯誤", - "xmr_to_error_description" : "無效的金額。 小數點後最多8位數字", + "xmr_to_error" : "XMR.TO 错误", + "xmr_to_error_description" : "无效的金额。 小数点后最多8位数字", - "provider_error" : "${provider} 錯誤", + "provider_error" : "${provider} 错误", "use_ssl" : "使用SSL", - "color_theme" : "顏色主題", - "light_theme" : "光", - "bright_theme" : "亮", + "color_theme" : "主題", + "light_theme" : "艳丽", + "bright_theme" : "明亮", "dark_theme" : "黑暗", - "enter_your_note" : "輸入您的筆記...", - "note_optional" : "注意(可選)", - "note_tap_to_change" : "注意(輕按即可更改)", - "transaction_key" : "交易密碼", - "confirmations" : "確認書", + "enter_your_note" : "输入您的笔记...", + "note_optional" : "注意(可选)", + "note_tap_to_change" : "注意(轻按即可更改)", + "transaction_key" : "交易密码", + "confirmations" : "确认", "recipient_address" : "收件人地址", - "extra_id" : "額外編號:", - "destination_tag" : "目標標籤:", - "memo" : "備忘錄:", + "extra_id" : "额外ID:", + "destination_tag" : "目标Tag:", + "memo" : "备忘录:", - "backup" : "後備", - "change_password" : "更改密碼", - "backup_password" : "備用密碼", - "write_down_backup_password" : "請寫下您的備份密碼,該密碼用於導入備份文件。", - "export_backup" : "導出備份", - "save_backup_password" : "請確保您已保存備份密碼。 沒有它,您將無法導入備份文件。", - "backup_file" : "備份檔案", + "backup" : "备份", + "change_password" : "更改密码", + "backup_password" : "备份密码", + "write_down_backup_password" : "请写下您的备份密码,该密码用于导入备份文件。", + "export_backup" : "导出备份", + "save_backup_password" : "请确保您已保存备份密码。 沒有它,您将无法导入备份文件。", + "backup_file" : "备份文件", - "edit_backup_password" : "編輯備份密碼", - "save_backup_password_alert" : "保存備份密碼", - "change_backup_password_alert" : "您以前的備份文件將無法使用新的備份密碼導入。 新的備份密碼將僅用於新的備份文件。 您確定要更改備份密碼嗎?", + "edit_backup_password" : "编辑备份密码", + "save_backup_password_alert" : "保存备份密码", + "change_backup_password_alert" : "您以前的备份文件将无法使用新的备份密码導入。 新的备份密码将仅用于新的备份文件。 您确定要更改备份密码吗?", - "enter_backup_password" : "在此處輸入備用密碼", - "select_backup_file" : "選擇備份文件", - "import" : "進口", - "please_select_backup_file" : "請選擇備份文件,然後輸入備份密碼。", + "enter_backup_password" : "在此处输入備用密码", + "select_backup_file" : "选择备份文件", + "import" : "导入", + "please_select_backup_file" : "请选择备份文件,然后输入备份密码。", - "fixed_rate" : "固定利率", - "fixed_rate_alert" : "選中固定費率模式後,您將可以輸入接收金額。 您要切換到固定速率模式嗎?", + "fixed_rate" : "固定汇率", + "fixed_rate_alert" : "选中固定汇率模式后,您将可以输入接收金额。 您要切换到固定汇率模式吗?", - "xlm_extra_info" : "發送用於交換的XLM交易時,請不要忘記指定備忘錄ID", - "xrp_extra_info" : "發送用於交換的XRP交易時,請不要忘記指定目標標記", + "xlm_extra_info" : "发送用于交换的XLM交易时,请不要忘记指定备忘录ID", + "xrp_extra_info" : "发送用于交换的XRP交易时,请不要忘记指定目标Tag", "exchange_incorrect_current_wallet_for_xmr" : "如果要从Cake Wallet Monero余额中兑换XMR,请先切换到Monero钱包。", "confirmed" : "已确认", "unconfirmed" : "未经证实", "displayable" : "可显示", - "submit_request" : "提交請求" + "submit_request" : "提交请求" } \ No newline at end of file From 17ea90659f15b53db02b2be47fcaca82a5425f1c Mon Sep 17 00:00:00 2001 From: Zy143L Date: Thu, 29 Apr 2021 11:23:33 +0800 Subject: [PATCH 09/28] Update strings_zh.arb --- res/values/strings_zh.arb | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 7b994647c..5c2561564 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -169,14 +169,14 @@ "restore_recover" : "恢复", "restore_wallet_restore_description" : "钱包还原说明", "restore_new_seed" : "新种子", - "restore_active_seed" : "活性種子", + "restore_active_seed" : "活性种子", "restore_bitcoin_description_from_seed" : "从12个文字的组成码恢复您的钱包", "restore_bitcoin_description_from_keys" : "从私钥中生成的WIF字符串恢复您钱包", "restore_bitcoin_title_from_keys" : "从WIF还原", "restore_from_date_or_blockheight" : "请输入您创建这个钱包前几天的日期。或者如果您知道区块高度,请输入区块高度", - "seed_reminder" : "请记下这些内容,以防丟失或数据清除", + "seed_reminder" : "请记下这些内容,以防丟失或数据损坏", "seed_title" : "种子", "seed_share" : "分享种子", "copy" : "复制", @@ -185,14 +185,14 @@ "seed_language_choose" : "请选择种子语言:", "seed_choose" : "选择种子语言", "seed_language_next" : "下一个", - "seed_language_english" : "英语", + "seed_language_english" : "英文", "seed_language_chinese" : "中文", - "seed_language_dutch" : "荷兰语", - "seed_language_german" : "德语", - "seed_language_japanese" : "日语", - "seed_language_portuguese" : "葡萄牙语", - "seed_language_russian" : "俄语", - "seed_language_spanish" : "西班牙语", + "seed_language_dutch" : "荷兰文", + "seed_language_german" : "德文", + "seed_language_japanese" : "日文", + "seed_language_portuguese" : "葡萄牙文", + "seed_language_russian" : "俄文", + "seed_language_spanish" : "西班牙文", "send_title" : "发送", @@ -409,7 +409,7 @@ "creating_new_wallet_error" : "错误: ${description}", "seed_alert_title" : "注意", - "seed_alert_content" : "种子是恢复钱包的唯一方法。 记住了吗?", + "seed_alert_content" : "种子是恢复钱包的唯一方法。记住了吗?", "seed_alert_back" : "返回", "seed_alert_yes" : "确定", From 367535045293be1d52eeff563a8e698757654ca2 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 30 Apr 2021 12:46:15 +0300 Subject: [PATCH 10/28] CAKE-314 | changed bnb crypto currency to bnb bep2; removed bnb bep2 from receive currency list on exchange page --- lib/entities/crypto_currency.dart | 4 +-- .../changenow_exchange_provider.dart | 36 +++++++++++++------ .../exchange/exchange_view_model.dart | 3 +- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/lib/entities/crypto_currency.dart b/lib/entities/crypto_currency.dart index d5f23a0fa..74694ed77 100644 --- a/lib/entities/crypto_currency.dart +++ b/lib/entities/crypto_currency.dart @@ -29,7 +29,7 @@ class CryptoCurrency extends EnumerableItem with Serializable { static const xmr = CryptoCurrency(title: 'XMR', raw: 0); static const ada = CryptoCurrency(title: 'ADA', raw: 1); static const bch = CryptoCurrency(title: 'BCH', raw: 2); - static const bnb = CryptoCurrency(title: 'BNB', raw: 3); + static const bnb = CryptoCurrency(title: 'BNB BEP2', raw: 3); static const btc = CryptoCurrency(title: 'BTC', raw: 4); static const dai = CryptoCurrency(title: 'DAI', raw: 5); static const dash = CryptoCurrency(title: 'DASH', raw: 6); @@ -90,7 +90,7 @@ class CryptoCurrency extends EnumerableItem with Serializable { return CryptoCurrency.ada; case 'bch': return CryptoCurrency.bch; - case 'bnb': + case 'bnbmainnet': return CryptoCurrency.bnb; case 'btc': return CryptoCurrency.btc; diff --git a/lib/exchange/changenow/changenow_exchange_provider.dart b/lib/exchange/changenow/changenow_exchange_provider.dart index 69674131d..0adaf6c83 100644 --- a/lib/exchange/changenow/changenow_exchange_provider.dart +++ b/lib/exchange/changenow/changenow_exchange_provider.dart @@ -48,7 +48,9 @@ class ChangeNowExchangeProvider extends ExchangeProvider { @override Future fetchLimits({CryptoCurrency from, CryptoCurrency to, bool isFixedRateMode}) async { - final symbol = from.toString() + '_' + to.toString(); + final fromTitle = defineCurrencyTitle(from); + final toTitle = defineCurrencyTitle(to); + final symbol = fromTitle + '_' + toTitle; final url = isFixedRateMode ? apiUri + _marketInfoUriSufix + _fixedRateUriSufix + apiKey : apiUri + _minAmountUriSufix + symbol; @@ -61,8 +63,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final elemFrom = elem["from"] as String; final elemTo = elem["to"] as String; - if ((elemFrom == from.toString().toLowerCase()) && - (elemTo == to.toString().toLowerCase())) { + if ((elemFrom == fromTitle) && (elemTo == toTitle)) { final min = elem["min"] as double; final max = elem["max"] as double; @@ -84,9 +85,11 @@ class ChangeNowExchangeProvider extends ExchangeProvider { ? apiUri + _transactionsUriSufix + _fixedRateUriSufix + apiKey : apiUri + _transactionsUriSufix + apiKey; final _request = request as ChangeNowRequest; + final fromTitle = defineCurrencyTitle(_request.from); + final toTitle = defineCurrencyTitle(_request.to); final body = { - 'from': _request.from.toString(), - 'to': _request.to.toString(), + 'from': fromTitle, + 'to': toTitle, 'address': _request.address, 'amount': _request.amount, 'refundAddress': _request.refundAddress @@ -182,6 +185,8 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final url = apiUri + _marketInfoUriSufix + _fixedRateUriSufix + apiKey; final response = await get(url); final responseJSON = json.decode(response.body) as List; + final fromTitle = defineCurrencyTitle(from); + final toTitle = defineCurrencyTitle(to); var rate = 0.0; var fee = 0.0; @@ -189,8 +194,7 @@ class ChangeNowExchangeProvider extends ExchangeProvider { final elemFrom = elem["from"] as String; final elemTo = elem["to"] as String; - if ((elemFrom == to.toString().toLowerCase()) && - (elemTo == from.toString().toLowerCase())) { + if ((elemFrom == toTitle) && (elemTo == fromTitle)) { rate = elem["rate"] as double; fee = elem["minerFee"] as double; break; @@ -216,22 +220,32 @@ class ChangeNowExchangeProvider extends ExchangeProvider { CryptoCurrency to, double amount, bool isFixedRateMode) { + final fromTitle = defineCurrencyTitle(from); + final toTitle = defineCurrencyTitle(to); + return isFixedRateMode ? apiUri + _exchangeAmountUriSufix + _fixedRateUriSufix + amount.toString() + '/' + - from.toString() + + fromTitle + '_' + - to.toString() + + toTitle + '?api_key=' + apiKey : apiUri + _exchangeAmountUriSufix + amount.toString() + '/' + - from.toString() + + fromTitle + '_' + - to.toString(); + toTitle; + } + + static String defineCurrencyTitle(CryptoCurrency currency) { + const bnbTitle = 'bnbmainnet'; + final currencyTitle = currency == CryptoCurrency.bnb + ? bnbTitle : currency.title.toLowerCase(); + return currencyTitle; } } diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index fc860e011..d93213c45 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -59,7 +59,8 @@ abstract class ExchangeViewModelBase with Store { }); receiveCurrencies = CryptoCurrency.all.where((cryptoCurrency) => (cryptoCurrency != CryptoCurrency.xlm)&& - (cryptoCurrency != CryptoCurrency.xrp)).toList(); + (cryptoCurrency != CryptoCurrency.xrp)&& + (cryptoCurrency != CryptoCurrency.bnb)).toList(); _defineIsReceiveAmountEditable(); isFixedRateMode = false; isReceiveAmountEntered = false; From e9ff3dd2e9ac62fbbc4520a0d7740cb9abdfdd92 Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Fri, 30 Apr 2021 20:00:27 +0300 Subject: [PATCH 11/28] CAKE-287 | created ic_launcher.png and ic_launcher.xml --- .../app/src/main/res/drawable/ic_launcher.png | Bin 0 -> 2022 bytes .../main/res/mipmap-anydpi-v26/ic_launcher.xml | 5 +++++ 2 files changed, 5 insertions(+) create mode 100755 android/app/src/main/res/drawable/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/android/app/src/main/res/drawable/ic_launcher.png b/android/app/src/main/res/drawable/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..f7ada2c75bce34828af5649020bc8cde560a7236 GIT binary patch literal 2022 zcmcJQ`9Bkk1IOo^D|3`{HRSu)9N}?PqJ}n;<8g1Tlw&iuNsGr;lCWXycvd-{xsO79 z^K~ZqVn%a?hTL)`R9G#-=e)W~ZA|4EPfdc^5EZ{Cq;;78@xq8Q9C~rUp;1*MFQqjba|5pc1F=qIia2}(EBHb+{kT5IR^3KhJ{G_}- z&5<|K24%$1fC^juRef~x<2=kT8C2ch)~4K9F|_zeo=bWorrl}2 z(7W?K#Y)yEYCpjAx915^G?9}k;91Chs2_pnEks%IWr)NUNfkzsD%Qv7Ct)9qKUOHaCDCoxC^W&00pl-{W9`2; z#RM~{v@9=>v&~SBK1g2Ur%7-@3MuB**vM?;562SL+qGbPwC)Q0u47MMyGKLk zF%LHu-kY0|Xa9}yJZIU!v+bkJ_6E&WM|kT3vw|qrBs!$wY~4~CmB`Eg@D)3;w$;=T zdTVc^$h!N<^g&o_3KgBE3zYh}Fs!9en))c&!Pz=OA||IWa%&I zbHp!6@i0PRNM^DJ4}%(y(}E|#D9^ZUmPOOPM9?*~Qd%~8&d?%`l@j(+SGt5^oJ$ zO$IBz#xjvQ+7X0&YSZ32*1{?L(aI^=Ha#3nMTG@lb>R4^R5DJ+zZ%SO7~JV#^J|>+ zo?PZ_ET7Wvf9mZ(SH!$uwh2ux#<)nu>TY-mgiv;H4(+UKlAwn7^}^HRG1rCJiY)nI zKuQHe5P8lsqkFJ;2yY>G;q2NsZO&`)=A6S_hMU_n;%*<4Y4r=e<^JBjN@0}t71LbF zM!y{RmAO{aySFPrPq2?o@Bt+hg<}=9`uiWkqEZ37|dTEfrRTsmLZ_38j8D3 zI=IJG{YDD~pV^Exl^2LTHJjZF5b4$hd>SNEweT|=rPb!H=QC5cD*YwRV}Tj)Dr~F7f@>rpF8od%!T~ao3E3 zgC=x$-Bp`9I72-wr;AIoH zX{43+5x-_`iD*0Ht+>B{_jH|G2ULcce_ z0^Ic&J+-$^S=}ro8W|%rvkn3`xc`;1di!C?Ka_EhuBW*iATbK%c&CC4=zms?xBU?R za*>lX1a-6g=6-FwD?I`+sbtEbL~&fspg95_d9yj-Mf!|<-i(jBEqfDccRdQ|X$;|K zY_M;IU3Vv-(nRNTb+?%P+bTi%otJ_5iBhkv6%HWT-h0F*ODHx+eS(+s@r#UhqEmn= zS-sxQ`Zj-&{F3Ls7p!}qP!;H8CxdXftxqjw + + + + \ No newline at end of file From 65d8232edb6af8db46befde176a86b0bb47b99ab Mon Sep 17 00:00:00 2001 From: OleksandrSobol Date: Tue, 4 May 2021 13:59:44 +0300 Subject: [PATCH 12/28] CAKE-317 | changed app's logo --- .../app/src/main/res/drawable/ic_launcher.png | Bin 2022 -> 4299 bytes .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2594 -> 6868 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1730 -> 4289 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3442 -> 9169 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4833 -> 14896 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6770 -> 18062 bytes assets/images/2.0x/cake_logo.png | Bin 1885 -> 6397 bytes assets/images/3.0x/cake_logo.png | Bin 2685 -> 9349 bytes assets/images/app_logo.png | Bin 23662 -> 131092 bytes assets/images/cake_logo.png | Bin 1047 -> 3120 bytes 10 files changed, 0 insertions(+), 0 deletions(-) diff --git a/android/app/src/main/res/drawable/ic_launcher.png b/android/app/src/main/res/drawable/ic_launcher.png index f7ada2c75bce34828af5649020bc8cde560a7236..769440f55e4305de67415bef55ba0955cc781d77 100755 GIT binary patch literal 4299 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 JyJv!n`4>>YSXKZ4 literal 2022 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 qkv;7@@+=arS+fjj}vQu3E-2?0*1BGmg~& literal 2594 zcmV+-3f=XIP)ARz(55JG?=6&Y$NSkZwxqKs9bilueR2(5jBc6iUU*wP1D zXWEKXZNSngP^6=l)(2FyJd8vH!YhHi2}wvc&%Ni@-_33|n`H0ZbMNlL(BV7xkDb|j z&z{dc=l46m-|w6aLqzz0RM^e#K&W&Z>{io_03$Q5>w&6HXz0N<1)KsHgGdgE;gDu! zqaqtZKexT{X}&xKL&SO$MQlcie&A`BW>k5GBGToPv-0k!kF1J+cCwdY`A8v9W$ zFOD&Z7X&aT;`VCXbY4_;1>Trjy$GeXxU*JyFqLg8;3np0pkOE4@bPlx*!2LL@hzH~ zyX$dpgYtu1_FNv1v>3oM4@Ty+wGvmK6+IyiU1;<+Um&AZN+((-NY6}@VAq|vUafla;8g+SemwLrQR@@=dr2I9RE%~UI+S-19_*l+>K zuJ)9ep#r~P6t>Iz_o8TcYpTUNk8&t@@EW|=qVfz;9hp|A`W36C2l3t{R@fiHbH>&e zSn};6BND!1a0Ys$2S#D;mW#5(RbYpMU$7)c3{ZXCim%rBPd91K(JJz3I~GUd(sY&> z?rvd8rb#51^uQ<=J})<1WLJAj2B;Lo*X!_KMl6$5)($_tfGe_KTrjEwdSH|hOSVGZ z!eduN_2Lyg)@G(R?Fu|!g{!h*LUf>PnqZxZ?20@y0muisK9ir=USpEVB`3nRE4X?T zC1n^lHFp43-)Jaba+_0~&f^Un4%88UnDRaxeayS=_S@zjJM%emFCp<=bF;tpPNm z`te9s+W%^(wR@5<&TK7J6YONW|2~mFejs(gXB-?n$g>hy55ntpQfw}&1l8BO@9#x; zw;2{B%RKEvzQJf=t(K^zmBd0yzl%TRfL7zF##(pi1p#izZw zW}r_hmo9h1hzP0943TfJ>rN@dNcZ~5tHYu}Z~3%0FT2vzHQi=)c`#jqad-Jv{${|qAk$n($naOWe1ytfzy!f@&(!Vs|q!=iPakIJXEyatKx4HNr9+v)wj)J1h%H?T}K)e>N} zxOohE7TJ$l(c7btF3RoS?r%anAN1hdM7@Z_uQb7CCrLF*$>^^t#kzd=pk+tG%Qet# zd`R9MTp+nC4g#S99k5&*D~^FOi6s9QmvC7o=GfGJWLVj^vQ!6XHegUS+6GJ0Lss)3 zJ(AAL+Why>p}?}w#9LFiE9IOV!B6s_Q0UF>DmHe!!y`Xn6Jprn47NkA za!NOS_p~T)!`~Eg&xRPelSk6%Qjfk}>V&3V)n~H)O^H!9A2qha&G=B6QroRI`B0ho z>m(jweBAt}EgK8??s~-`?F#-_jqf)rFO27N2Ja`NM5x=D`l9K#`GVMT2|Wqn{zhC> zCTQG@viS$gie&5Z`S;HlaNrdkF!!jKn}lof_{;>UeX^Ebq&M>XMNu~_McC7T4}Kzc zPvSl^Q7uU&nyW^#J@sk<)R5k8!nd20aZxZonaxUM6a=OWKB?C$@N5S~oA{5bc%Tt= zVs09@`N!2c87*CAlmesp{ZB=fk`EQ5?wfSlK^Ok~k~+6&4WP8m-nY3-9OrGZ>Kd##8sI3WTFDO#M+V*J&3L{o-3@aAMLv(Oo+dEB4Ew~kX! z{Fv`r!20(!oPR>>E#dmd5Wr|L=joCBS}(3Ue>4AsKvB*Ue6zLUcPIq(t8zkm?l*VF0Z6%O28k8d`Lk6H}`P00~3Cy6ac zVfXtx1}N2;0H61%f++TrJi2(B6F+XnPuk#&Lruo&y79WxjcT{3|3=ERvOGH!MYCyf zY-|)5Jus)E(EiPe0@m3{bcOUseCzff<8C$G2D{btKPr^yp`bNx2mk;807*qoM6N<$ Ef_~Z%6951J diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 83a98b56d3f22dfd25ad677b2cc324e8f9871db6..b76508e838155952fc286d3ce6f0a8b47443a7aa 100644 GIT binary patch literal 4289 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 CmTdq4 delta 1725 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 literal 3442 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 U*N{u_?EnA(07*qoM6N<$f?P|V5C8xG diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index c4352f5793aa69f323b7170a180b617077cef453..d5b7374a7c376f1e57489a0ef16efa25cac5a263 100644 GIT binary patch literal 14896 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 G=>Gw@&qrSX literal 4833 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 Hu0mjf8t+dX diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 73fe0423492369f3ff44bf101707cef8948379f7..af40ea947bb70039c836f7d4eb37af57852e4309 100644 GIT binary patch literal 18062 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 Wn3vF4_x@5&KuleuvqYe3P z6yLNyM!>fyI>Ei`$7qnn2=Z#&L8KmnXamq~xIiKh9YI9{{2jc+CXL{c<^+i?A=-w* zlk}1IP9I_P0)Ok*j^F|Rf-Fvm40Oy^)58y~7jVFzAQvV?7G6%_hsRj|Vh9WT2qHd0 z2hW}TgHJ;2Vm;VFP22@J2zz}01ecQ`!n3tH)?zQnK3hYe_t+|yak&{GVrzL2^h`Fk z6C@Gi@KP<2Dh!uUeL)V+mO;Vc#X3$)3`A+64q_P;U4Kn61jV1cauZV~%jBwxp|OMe z!EV)NW=lq5jGOw+mGT+07>Xg7Et#9qQ@(Gb86+1O@~2KGZN&T2B-ZG57ONqKP%X&8 z`4-=A!7KWRzwrQp8sK|+SGuWK=T}&TjyN%d+{~A3O)-S>CFB3}+UKmdhX-^5TlVtf@iJ8K@6c-kXI6K=nibr{DmmoEUa*y@_R=S zSI*RG$$t1f*t)cOi6!lo~9LX2N&3BAA!(5pY;|(9lYtatZQe87+5oV2r8KME^1#$HqT5sWg zrfMbrLCe|7V=SZfE^gPacT_PSx(8elx2L}lF$AJ6eh+uxnR!7-J%SB7F2>a?vR&$P1-_2%jF{0krm@D3p5c!$N7ri z29y5ye#CK$(of-uv>=*RVFTf4{+)Gq=Kmvn;G^hEl!!QdPsJr2wnn?9o+0By$TG83 z{nSITj;!C1sMCiiBF3GZSVYJBbS7gVR(}QK5$@6J)H4C{kCv+_MPej$@SD58nhGKg z6*kqdOdTURvvdkKw-u#ajD!~Kmi!D;LB``YY#{EG&7utoI(0=c5hLEWdrM?02$5Z_ zl=LwD7BR&;9l@-9+DL$PmCl5XdHJz<{27ol}*kjqMXxaff((|_sm+W1ye!JTSM3o zW`em8?@V8sE6R5>5oq1yklZ8TsUSCO)undoVUQEXm%h9pjkn5_-4ncNUuKPu&Os=m z)I0rBCJ2*C)*rgZeU$0@kSZ5D5q|}r3O*)cjB&y(l78yB7WLssI{mjTEQirrt)aJ5 zE(+)69#REUoEH^|v82peuMT9Ksg3`n;!wLY<$p&>3v@A1){ zof(y)@{NM!S020-|F0+(`H%fyRS(CIv>?}l0awhPqdqc$DAn|I3DJLHIe)+SeS_l` zpiV?vNP5YLW6dUOrVw}N_Vo1VPJ=BkN3IZE(yOsxJ}}dI06WA=x~XSY_>2>Bpw$$b z&nmacsZ*C_-eI^Dngy*lxxShfRdN>1<>xXlq$nsfI-*Dpg7`DP_4#Y&*C7Pcmkm*Pd zG}ryFnj)4$w9*p4bWpyOj@efXaE52Or`BY~zQ^C>QEqRjCMAM6P5>mBO%aQaY2oWs zd=heKUNs|2reU7j9t&GFFjeT@Ioc%zv0g5=#3zJGcoG zkB5dE?E1Qub8n4Z4IxKD!CR~F<8I{=u|8M&Uss9~Pa&Q!$Cs!nP7&(VY%N4FOI!}3 zy?A7)36g8*IH}B3?=hKCb*!b<6va#s3D(Xy3#G*rdc9La6tkMD1ZxrJCAyh0rp6KH zyKgpJQ!m$#gP*{22!Fmn3@oKy)jb}u44cnjo5JAo5c?~tvIDc19j}*%NLBQ{0K3j@l;M&%&&SC=h2oYaYji) zjf+O_)r+h1`yoZdz6N*WYh{SqACotUeA}5VlV6vSk*)Y_Aqk*5#(ORtc@|-o{{c@Z V9NLJ$WB&jE002ovPDHLkV1j6RZrlI> diff --git a/assets/images/3.0x/cake_logo.png b/assets/images/3.0x/cake_logo.png index 5da47a5399752f68b5b3307cd1cec315cc89fdc2..87dd05ce2e715cf07698797e86b1e5799a7c29a9 100644 GIT binary patch literal 9349 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 XU1Ph6X53$Y|HYAgt0Y+_ZXEbO5LrbF delta 2676 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